pzx-web-api/app/api/v1/record.py

47 lines
1.3 KiB
Python

from apiflask import APIBlueprint
from flask import session
from app import rpc
from app.api.v1.exception.record import AddBodyRecordError, BodyRecordNotFound
from app.api.v1.schema.record import BodyRecordIn, BodyRecordOut, BodyRecordsIn, BodyRecordsOut
from app.util.common import login_required
record = APIBlueprint('record', __name__)
@record.post('/')
@record.input(BodyRecordIn)
@login_required
def add_record(json_data):
try:
rpc.body_record.add(user_obj_id=session['user_id'],
height=json_data['height'],
weight=json_data['weight'],
bmi=json_data['bmi'])
except Exception as e:
raise AddBodyRecordError()
return {'msg': 'add body record success'}
@record.get('/<record_id>')
@record.output(BodyRecordOut)
@login_required
def get_record(record_id):
try:
result = rpc.body_record.get_one(record_id)
except Exception as e:
raise BodyRecordNotFound()
return result
@record.get('/list')
@record.input(BodyRecordsIn, location='query')
@record.output(BodyRecordsOut)
@login_required
def get_record(query_data):
try:
result = rpc.body_record.get_all_by_user(query_data['user_id'])
except Exception as e:
raise BodyRecordNotFound()
return result