Exemplo n.º 1
0
def todo_change_status():
    if 'todo_id' not in request.values:
        return json_response(
            status=400,
            success=False,
            message=
            'The identifier of the task is required to update the status.')

    todo_id = request.values.get('todo_id')
    if not TodoService.exists_by_id(todo_id):
        return json_response(
            status=404,
            success=False,
            message="There isn't a task with the identifier provided.")

    if not TodoService.exists_by_user_id(todo_id, current_user.id):
        return json_response(
            status=401,
            success=False,
            message="You don't have access to the requested task.")

    entity = TodoService.find_by_id(todo_id)
    entity.mark_completed = not entity.mark_completed
    TodoService.update(entity)

    return json_response(success=True,
                         message="The task's status has been updated.")
Exemplo n.º 2
0
def todos_POST():
    current_page = request.values.get('page', 1)

    form = TodoCreateForm(request.form)
    if form.validate_on_submit():
        markup = Markup(form.description.data)
        description = markup.striptags()
        TodoService.save(description)
        flash('The task "{}" has been successfully added.'.format(description))
    else:
        for error in form.errors['description']:
            flash(error)

    return redirect('/todo?page={}'.format(current_page))
Exemplo n.º 3
0
    def get(self):
        with TodoService() as task_service:
            res_task = task_service.get_tasks()

        if not res_task:
            return self.json_output(data={})
        return self.json_output(data=res_task)
Exemplo n.º 4
0
def todo_delete(id, page):
    deleted_entity = TodoService.delete_by_id(id)

    flash('The task "{}" has been successfully deleted.'.format(
        deleted_entity.description))

    return redirect('/todo?page={}'.format(page))
Exemplo n.º 5
0
    def __init__(self):
        super().__init__()
        api = TypicodeTodoApiClient(settings.TYPECODE_URI)
        users_repo = UsersRepository(db)
        # repository handling the db open/close itself
        words_repo = WordsRepository(settings.REPLACEMENTS_DB)
        service = TodoService(api, users_repo, words_repo)

        TodoEndpoints(self, response, service)
Exemplo n.º 6
0
    def get(self):
        if not request.args:
            raise InvalidAPIUsage(message='Request data type is error!')

        parser = reqparse.RequestParser()
        parser.add_argument('task_id',
                            type=str,
                            required=True,
                            help="task_id cannot be blank!",
                            location='args')
        args = parser.parse_args()

        task_id = args.get
        with TodoService() as task_service:
            res_task = task_service.get_task_by_id(task_id=task_id)

        if not res_task:
            # raise InvalidAPIUsage(message='task_id for {task_id} is not exist!'.format(task_id=task_id))
            return self.json_output(data={})
        return self.json_output(data=res_task)
Exemplo n.º 7
0
    def post(self):
        if not request.data:
            raise InvalidAPIUsage(message='Request data type is error!')

        parser = reqparse.RequestParser()
        parser.add_argument('title',
                            type=str,
                            required=True,
                            help="title cannot be blank!",
                            location='json')
        parser.add_argument('content',
                            type=str,
                            required=True,
                            help="content cannot be blank!",
                            location='json')
        args = parser.parse_args()

        with TodoService() as task_service:
            new_task = task_service.create_task(**args)

        return self.json_output(data=new_task)
Exemplo n.º 8
0
def todo_json(id):
    entity = TodoService.find_by_id(id)
    return TodoService.dump_json(entity)
Exemplo n.º 9
0
def todos(page=-1):
    if page == -1:
        page = request.values.get('page', 1)

    entities = TodoService.paginate(current_page=int(page))
    return render_template('todos.html', todos=entities, form=TodoCreateForm())
Exemplo n.º 10
0
def todo(id, page):
    entity = TodoService.find_by_id(id)
    return render_template('todo.html', todo=entity, page=page)