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, BodyRecordsOut from app.util.auth import login_required record = APIBlueprint('record', __name__) @record.post('/') @record.input(BodyRecordIn) @record.doc(summary='添加身体记录', description='添加身体记录') @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.output(BodyRecordOut) @record.doc(summary='查询单条身体记录', description='查询单条身体记录') @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.output(BodyRecordsOut) @record.doc(summary='查询身体记录列表', description='查询身体记录列表') @login_required def get_records(): try: results = rpc.body_record.get_all_by_user(session['user_id']) except Exception as e: raise BodyRecordNotFound() return {'records': results}