50 lines
1.6 KiB
Python
50 lines
1.6 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.auth import login_required
|
|
|
|
record = APIBlueprint('record', __name__)
|
|
|
|
|
|
@record.post('/')
|
|
@record.input(BodyRecordIn)
|
|
@record.doc(summary='添加身体记录', description='添加身体记录', tags=['身体记录'])
|
|
@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)
|
|
@record.doc(summary='查询单条身体记录', description='查询单条身体记录', tags=['身体记录'])
|
|
@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)
|
|
@record.doc(summary='查询身体记录列表', description='查询身体记录列表', tags=['身体记录'])
|
|
@login_required
|
|
def get_records(query_data):
|
|
try:
|
|
result = rpc.body_record.get_all_by_user(query_data['user_id'])
|
|
except Exception as e:
|
|
raise BodyRecordNotFound()
|
|
return result
|