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)
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)
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)
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'])
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)
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})