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

57 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from apiflask import APIBlueprint
from flask import session
from app import rpc
from app.api.v1.exception.interaction import AddInteractionError
from app.api.v1.schema.interaction import (InteractionIn, InteractionBriefIn, InteractionListIn,
InteractionBriefOut, InteractionListOut)
from app.util.auth import login_required
interaction = APIBlueprint('interaction', __name__)
@interaction.post('/')
@interaction.doc(summary='添加互动记录', description='添加互动记录category 类型int1:点赞2:加油3:评论')
@interaction.input(InteractionIn, location='json')
@login_required
def add_interaction(json_data):
try:
is_existed = rpc.interaction.add(**{
'sender': session['user_id'],
'receiver': json_data['receiver_id'],
'category': json_data['category'],
'related_party': json_data.get('related_party_id'),
'comment': json_data.get('comment')
})
except Exception as e:
raise AddInteractionError(extra_data={'error_docs': str(e)})
if is_existed:
return {'msg': '已经提交过,不能再次提交~', 'code': 401}
return {'msg': 'add interaction successfully', 'code': 200}
@interaction.get('/brief')
@interaction.doc(summary='查询互动简要数据', description='查询互动简要数据')
@interaction.input(InteractionBriefIn, location='query')
@interaction.output(InteractionBriefOut)
@login_required
def get_interaction_brief(query_data):
current_date = query_data.get('current_date', None)
results = rpc.interaction.get_interaction_brief(session['user_id'],
current_date=current_date)
return results
@interaction.get('/list')
@interaction.doc(summary='查询互动列表数据', description='查询互动列表数据')
@interaction.input(InteractionListIn, location='query')
@interaction.output(InteractionListOut)
@login_required
def get_interaction_list(query_data):
current_date = query_data.get('current_date', None)
results = rpc.interaction.get_interaction_list(session['user_id'],
category=query_data['category'],
current_date=current_date)
return {'interactions': results}