コード例 #1
0
ファイル: timer.py プロジェクト: sandelete/TaskTracker
    def stop_timer(self, task: TaskModel):
        if not self._stop_timer(task):
            return response(status_code=status.HTTP_200_OK,
                            message='timer already stopped')

        return response(status_code=status.HTTP_202_ACCEPTED,
                        message='Session stopped')
コード例 #2
0
ファイル: task.py プロジェクト: sandelete/TaskTracker
    def put(self):
        body = get_task_info()
        user = token_auth.current_user()

        if TaskModel.query.filter_by(name=body.name, user_id=user.id).first():
            return response(status_code=status.HTTP_409_CONFLICT, message='Task with this name already exists')

        task = TaskModel(name=body.name, color=body.color, user=user)

        db.session.add(task)
        db.session.commit()

        return response(status_code=status.HTTP_201_CREATED, data=task.as_dict())
コード例 #3
0
ファイル: task.py プロジェクト: sandelete/TaskTracker
    def get(self):
        user = token_auth.current_user()  # type: UserModel
        tasks = TaskModel.query.filter_by(user_id=user.id)

        return response(
            status_code=status.HTTP_200_OK,
            data=[t.as_dict() for t in tasks])
コード例 #4
0
ファイル: user.py プロジェクト: sandelete/TaskTracker
    def post():
        body = get_user_info()
        if UserModel.query.filter_by(username=body.username).first():
            return response(status_code=status.HTTP_409_CONFLICT,
                            message='User with this name already exists')

        user = UserModel(name=body.username, password=body.password)
        db.session.add(user)
        db.session.commit()

        data = user.as_dict()
        data[TOKEN] = encode_token(user.as_dict())

        return response(status_code=status.HTTP_200_OK,
                        data=data,
                        message='Successfully registered')
コード例 #5
0
ファイル: task.py プロジェクト: sandelete/TaskTracker
    def delete(self, task_id):
        user = token_auth.current_user()  # type: UserModel
        task = self.try_find_task(task_id, user)

        db.session.delete(task)
        db.session.commit()

        return response(status_code=status.HTTP_200_OK, message='Task: {} deleted'.format(task.name))
コード例 #6
0
ファイル: timer.py プロジェクト: sandelete/TaskTracker
    def start_timer(self, task: TaskModel):
        self._stop_timer(task)
        session = SessionModel(task_id=task.id)

        db.session.add(session)
        db.session.commit()

        return response(status_code=status.HTTP_200_OK, data=session.as_dict())
コード例 #7
0
ファイル: session.py プロジェクト: sandelete/TaskTracker
    def delete(self, session_id):
        user = token_auth.current_user()  # type: UserModel
        session = self.try_find_session(session_id, user)

        db.session.delete(session)
        db.session.commit()

        return response(status_code=status.HTTP_200_OK,
                        message='Session: {} deleted'.format(session.name))
コード例 #8
0
ファイル: session.py プロジェクト: sandelete/TaskTracker
    def patch(self, session_id):
        user = token_auth.current_user()  # type: UserModel

        session = self.try_find_session(session_id, user)
        if not session.active():
            raise_error_response(status_code=status.HTTP_403_FORBIDDEN,
                                 message='session already stopped')

        session.end = datetime.now()

        db.session.commit()
        return response(status_code=status.HTTP_202_ACCEPTED,
                        message='Session stopped'.format(session))
コード例 #9
0
ファイル: session.py プロジェクト: sandelete/TaskTracker
    def get(self):
        user = token_auth.current_user()  # type: UserModel
        body = get_session_request()

        end_date = dateparser.parse(body.end_date) or date.max
        start_date = dateparser.parse(body.begin_date) or date.min

        sessions = db.session.query(SessionModel).join(TaskModel)\
            .filter(
                TaskModel.user_id == user.id,
                SessionModel.start >= start_date.strftime('%Y-%m-%d'),
                SessionModel.start <= end_date.strftime('%Y-%m-%d')).all()

        return response(status_code=status.HTTP_200_OK,
                        data=[s.as_dict() for s in sessions])
コード例 #10
0
ファイル: user.py プロジェクト: sandelete/TaskTracker
 def delete(self):
     user = token_auth.current_user()
     db.session.delete(user)
     db.session.commit()
     return response(status_code=status.HTTP_200_OK,
                     message='User: {} deleted'.format(user.username))
コード例 #11
0
ファイル: user.py プロジェクト: sandelete/TaskTracker
 def get(self):
     user = token_auth.current_user()
     return response(status_code=status.HTTP_200_OK, data=user.as_dict())
コード例 #12
0
ファイル: user.py プロジェクト: sandelete/TaskTracker
 def post(self):
     usr = basic_auth.current_user()
     return response(status_code=status.HTTP_202_ACCEPTED,
                     data={TOKEN: encode_token(usr.as_dict())})