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.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