Ejemplo n.º 1
0
async def delete_task(request, task_id):
    errors = ''
    status_code = 202
    async with app.engine.acquire() as conn:
        query = await conn.execute(Tasks.select().where(Tasks.c.id == task_id))
        task = await query.fetchone()
        if task:
            await conn.execute(Tasks.delete().where(Tasks.c.id == task_id))
            await conn.connection.commit()
        else:
            status_code = 404
            errors = 'Not Found'
    return response.json({'errors': errors}, status_code)
Ejemplo n.º 2
0
async def get_task_by_id(request, task_id):
    task = None
    errors = None
    status_code = 200
    async with app.engine.acquire() as conn:
        result = await conn.execute(Tasks.select().where(Tasks.c.id == task_id)
                                    )
        data = await result.fetchone()
        if data:
            task = dict(data)
        else:
            errors = 'Not Found'
            status_code = 404
    return response.json({'task': task, 'errors': errors}, status=status_code)
Ejemplo n.º 3
0
async def sync_tasks_to_keep(request):
    errors = None
    status_code = 200
    async with app.engine.acquire() as conn:
        result = await conn.execute(Tasks.select())
        data = await result.fetchall()
        tasks = [dict(task) for task in data]
        nodes = [(task['title'], True if task['status'] == 'Done' else False)
                 for task in tasks]
        try:
            keep = KeepAPIClient(KEEP_USERNAME, KEEP_PASSWORD)
            await keep.sync_todo_list(nodes)
        except AuthException as err:
            errors = err.args
            status_code = 401
    return response.json({'errors': errors}, status_code)
Ejemplo n.º 4
0
 def test_update_task(self):
     data = {'id': 2, 'title': 'change_title'}
     response = app.test_client.put('/todo/tasks/{}'.format(data['id']),
                                    data=json.dumps(data),
                                    gather_request=False)
     app.engine = create_engine(
         "mysql+pymysql://{user}:{password}@{host}/{db}".format(
             user=app.config.DB_USER,
             db=app.config.DB_NAME,
             host=app.config.DB_HOST,
             password=app.config.DB_PASSWORD))
     with app.engine.connect() as conn:
         res = conn.execute(Tasks.select().where(Tasks.c.id == data['id']))
         result = res.fetchone()
     self.assertEqual(response.status, 200)
     self.assertEqual(result['id'], data['id'])
Ejemplo n.º 5
0
async def update_task(request, task_id):
    errors = ''
    status_code = 200
    form = TaskUpdateForm().load(request.json)
    if not form.errors:
        async with app.engine.acquire() as conn:
            query = await conn.execute(
                Tasks.select().where(Tasks.c.id == task_id))
            task = await query.fetchone()
            if task:
                await conn.execute(Tasks.update().where(Tasks.c.id == task_id). \
                                   values({k: v for k, v in form.data.items()}))
                await conn.connection.commit()
            else:
                errors = 'Not Found'
                status_code = 404
    else:
        status_code = 400
        errors = form.errors
    return response.json({'errors': errors}, status=status_code)
Ejemplo n.º 6
0
async def get_tasks(request):
    async with app.engine.acquire() as conn:
        result = await conn.execute(Tasks.select())
        data = await result.fetchall()
        tasks = [dict(task) for task in data] if data else {}
    return response.json({'tasks': tasks})