def upgrade_user(): ApiResponse = api_response.ApiResponse() Sex = request.form.get("Sex", type=int, default=0) if Sex == 0: raise custom_error.CustomFlaskErr(status_code=500, message="性别不能为空") Name = request.form.get("Name", type=str, default=None) if Name == None: raise custom_error.CustomFlaskErr(status_code=500, message="真实姓名不能为空") Address = request.form.get("Address", type=str, default=None) if Address == None: raise custom_error.CustomFlaskErr(status_code=500, message="地址不能为空") ServiceId = request.form.get("ServiceId", type=str, default=None) if ServiceId == None or ServiceId == "": raise custom_error.CustomFlaskErr(status_code=500, message="服务不能为空") ServiceAreaId = request.form.get("ServiceAreaId", type=str, default=None) if ServiceAreaId == None or ServiceAreaId == "": raise custom_error.CustomFlaskErr(status_code=500, message="服务区域不能为空") Email = request.form.get("Email", type=str, default=None) if Email == None: raise custom_error.CustomFlaskErr(status_code=500, message="邮箱不能为空") Experience = request.form.get("Experience", type=str, default=None) if Experience == None: raise custom_error.CustomFlaskErr(status_code=500, message="资历不能为空") IDCard = request.form.get("IDCard", type=str, default=None) if IDCard == None: raise custom_error.CustomFlaskErr(status_code=500, message="身份证不能为空") IDCardPic = request.form.get("IDCardPic", type=str, default=None) if IDCardPic == None: raise custom_error.CustomFlaskErr(status_code=500, message="身份证正面不能为空") IDCardBackPic = request.form.get("IDCardBackPic", type=str, default=None) if IDCardBackPic == None: raise custom_error.CustomFlaskErr(status_code=500, message="身份证反面不能为空") userId = request_helper.current_user_mush_login()["Id"] nicheng = request_helper.current_user_mush_login()["Name"] if nicheng is None: nicheng = Name data_exists = mysql.get_list(user_upgrade.select_exists_upgrade, (userId)) if len(data_exists): raise custom_error.CustomFlaskErr(status_code=500, message="你已经存在申请过注册规划师") argData = [(userId, Sex, Name, Address, ServiceId, ServiceAreaId, Email, Experience, IDCardPic, userId, IDCardBackPic, IDCard), (nicheng, userId)] argSql = (user_upgrade.insert_upgrade_user, user_upgrade.update_user_info_name) data_register = mysql.operate__many(argSql, argData) if data_register > 0: ApiResponse.message = "申请成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse) raise custom_error.CustomFlaskErr(status_code=500, message="申请失败")
def agree_join_team(): ApiResponse = api_response.ApiResponse() userId = request_helper.current_user_mush_login()["Id"] NoticeId = request.form.get("NoticeId", type=str, default=None) if NoticeId is None or NoticeId == '': raise custom_error.CustomFlaskErr(status_code=500, message="团队通知id不能为空") exists_team = mysql.get_object(team_sql.exists_team_peoper_bynoticeid, (NoticeId)) if exists_team is not None and exists_team["IsAdmin"] != 1: raise custom_error.CustomFlaskErr(status_code=500, message="您不是团队管理员") if exists_team is None or exists_team["Status"] != 1: raise custom_error.CustomFlaskErr(status_code=500, message="您没有需要审核的团队消息") sql_list = [ team_sql.insert_team_member, team_sql.update_team_admin_notice, team_sql.update_team_notice, team_sql.update_planner_statistics ] args_list = [(exists_team["TeamId"], exists_team["duUserId"], userId), (userId, NoticeId), (userId, exists_team["UnionId"]), (exists_team["TeamId"], userId, exists_team["duUserId"])] resultInt = mysql.operate__many(sql_list, args_list) if resultInt <= 0: raise custom_error.CustomFlaskErr(status_code=500, message="审批失败") ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def quit_team(): ApiResponse = api_response.ApiResponse() userId = request_helper.current_user_mush_login()["Id"] TeamId = request.form.get("TeamId", type=str, default=None) if TeamId is None or TeamId == '': raise custom_error.CustomFlaskErr(status_code=500, message="团队id不能为空") is_team_admin = mysql.get_object(team_sql.is_team_admin, (TeamId, userId)) if (is_team_admin["total"] > 0): # 是团队管理员,解散团队 sql_list = [ team_sql.disband_team1, team_sql.disband_team2, team_sql.update_planner_statistics_null, team_sql.delete_team_notice_admin ] args_list = [(userId, TeamId, userId), (userId, TeamId), (userId), (TeamId)] resultInt = mysql.operate__many(sql_list, args_list) else: sql_list = [ team_sql.quit_team, team_sql.update_planner_statistics_null, team_sql.delete_team_notice ] args_list = [(userId, TeamId, userId), (userId), (userId, TeamId)] resultInt = mysql.operate__many(sql_list, args_list) if resultInt <= 0: raise custom_error.CustomFlaskErr(status_code=500, message="退出团队失败") ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def updateuserinfobyupgrade(): ApiResponse = api_response.ApiResponse() Name = request.form.get("Name", type=str, default=None) if Name == None or Name == "": raise custom_error.CustomFlaskErr(status_code=500, message="真实姓名不能为空") Address = request.form.get("Address", type=str, default=None) IDCard = request.form.get("IDCard", type=str, default=None) if IDCard == None or IDCard == "": raise custom_error.CustomFlaskErr(status_code=500, message="个人证件不能为空") IDCardJust = request.form.get("IDCardJust", type=str, default=None) IDCardBack = request.form.get("IDCardBack", type=str, default=None) ChatNo = request.form.get("ChatNo", type=str, default=None) user = request_helper.current_user_mush_login() nicheng = user['Name'] if nicheng is None: nicheng = Name sql_list = [user_info_sql.update_user_info_by_upgrade] args_list = [(Name, Address, IDCard, IDCardJust, IDCardBack, user["Id"], ChatNo, nicheng, user["Id"])] data_result = mysql.operate__many(sql_list, args_list) if data_result != None and data_result > 0: ApiResponse.message = "修改成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse) raise custom_error.CustomFlaskErr(status_code=500, message="修改失败")
def update_browse_service(): ApiResponse = api_response.ApiResponse() Id = request.form.get("Id", type=str, default=None) if Id == None or Id == "": raise custom_error.CustomFlaskErr(status_code=500, message="请选择需要修改的需求") Name = request.form.get("Name", type=str, default=None) if Name == None or Name == "": raise custom_error.CustomFlaskErr(status_code=500, message="名称不能为空") TimeStart = request.form.get("TimeStart", type=str, default=None) TimeEnd = request.form.get("TimeEnd", type=str, default=None) if TimeStart == None or TimeStart == "" or TimeEnd == None or TimeEnd == "": raise custom_error.CustomFlaskErr(status_code=500, message="起止时间不能为空") PriceStart = request.form.get("PriceStart", type=float, default=0.0) PriceEnd = request.form.get("PriceEnd", type=float, default=0.0) Description = request.form.get("Description", type=str, default=None) if Description == None or Description == "": raise custom_error.CustomFlaskErr(status_code=500, message="需求描述不能为空") ServiceTypeId = request.form.get("ServiceId", type=int, default=0) ServiceAreaId = request.form.get("ServiceAreaId", type=int, default=0) if ServiceAreaId == 0: raise custom_error.CustomFlaskErr(status_code=500, message="服务区域不能为空") user = request_helper.current_user_mush_login() data = mysql.operate_object( demand_service_sql.update_browse_service, (Name, ServiceAreaId, ServiceTypeId, PriceStart, PriceEnd, TimeStart, TimeEnd, Description, user["Id"], Id, user["Id"])) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def get_login_user(): ApiResponse = api_response.ApiResponse() user = request_helper.current_user_mush_login() if any(user): ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = user return api_response.response_return(ApiResponse) raise custom_error.CustomFlaskErr(status_code=600, message="请先登录")
def insert_dynanic(): ApiResponse = api_response.ApiResponse() content = request.form.get("content", type=str, default=None) imageUrl = request.form.get("imageUrl", type=str, default=None) user = request_helper.current_user_mush_login() data = dynamic_logic.insert_dynanic(user["Id"], content, imageUrl) ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def update_system_notice_status(): userId = request_helper.current_user_mush_login()["Id"] ApiResponse = api_response.ApiResponse() noticeId = request.form.get("Id", type=str, default=None) if noticeId is None or noticeId == '': raise custom_error.CustomFlaskErr(status_code=500, message="消息id不能为空") mysql.operate_object(system_notice_sql.update_system_notice_status, (userId, noticeId)) ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def select_user_team(): ApiResponse = api_response.ApiResponse() userid = request.form.get("userid", type=str, default=None) if userid == None or userid == "": userid = request_helper.current_user_mush_login()["Id"] teamId = team_logic.select_user_team(userid) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = teamId return api_response.response_return(ApiResponse)
def unfollow(): ApiResponse = api_response.ApiResponse() user = request_helper.current_user_mush_login() plannerId = request.form.get("plannerId", type=str, default=None) if any(user) and plannerId != None: count = mysql.operate_object(planner_sql.planner_unfollw, (user["Id"], plannerId)) ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def get_service_notice_list(): userId = request_helper.current_user_mush_login()["Id"] UserType = request_helper.current_user_mush_login()["UserType"] ApiResponse = api_response.ApiResponse() size = request.form.get("size", type=int, default=10) page = request.form.get("page", type=int, default=1) if page <= 0: page = 1 if size <= 0: size = 10 if UserType == 1: data = mysql.get_list(service_notice_sql.select_service_notice_list2, (userId, (page - 1) * size, size)) else: data = mysql.get_list(service_notice_sql.select_service_notice_list1, (userId, (page - 1) * size, size)) if len(data) > 0: for item in data: if item["OrderStatus"] == 1: item["OrderStatusStr"] = "通知后台" continue if item["OrderStatus"] == 2: item["OrderStatusStr"] = "客服回访" continue if item["OrderStatus"] == 3: item["OrderStatusStr"] = "拟定合同" continue if item["OrderStatus"] == 4: item["OrderStatusStr"] = "线下签约" continue if item["OrderStatus"] == 5: item["OrderStatusStr"] = "平台审查" continue if item["OrderStatus"] == 6: item["OrderStatusStr"] = "付款确认" continue if item["OrderStatus"] == 7: item["OrderStatusStr"] = "服务完成" continue ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def updateheadimage(): ApiResponse = api_response.ApiResponse() headimage = request.form.get("headimage", type=str, default=None) user = request_helper.current_user_mush_login() data_register = mysql.operate_object(user_info_sql.update_user_headimage, (headimage, user["Id"], user["Id"])) if data_register > 0: ApiResponse.message = "修改成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse) raise custom_error.CustomFlaskErr(status_code=500, message="修改失败")
def browse(): ApiResponse = api_response.ApiResponse() user = request_helper.current_user_mush_login() demandServiceId = request.form.get("demandServiceId", type=str, default=None) if any(user) and demandServiceId != None and demandServiceId != "": count = mysql.operate_object(demand_service_sql.demand_service_browse, (user["Id"], demandServiceId)) ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def delete_society(): ApiResponse = api_response.ApiResponse() Id = request.form.get("Id", type=str, default=None) if Id == None or Id == "": raise custom_error.CustomFlaskErr(status_code=500, message="请选择需要修改的社会背景") user = request_helper.current_user_mush_login() data = mysql.operate_object(planner_sql.delete_society, (user["Id"], Id, user["Id"])) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def delete_album(): ApiResponse = api_response.ApiResponse() Id = request.form.get("Id", type=int, default=0) if Id <= 0: raise custom_error.CustomFlaskErr(status_code=500, message="请选择需要删除的照片") user = request_helper.current_user_mush_login() data = mysql.operate_object(planner_sql.delete_album, (user["Id"], Id, user["Id"])) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def get_user_info(): ApiResponse = api_response.ApiResponse() userid = request.form.get("userid", type=str, default=None) if userid == None or userid == "": userid = request_helper.current_user_mush_login()["Id"] if userid == None or userid == "": raise custom_error.CustomFlaskErr(status_code=500, message="参数userid不能为空") userinfo = mysql.get_object(user_info_sql.select_userinfo_by_id, (userid)) if userinfo != None and any(userinfo): ApiResponse.data = userinfo return api_response.response_return(ApiResponse) raise custom_error.CustomFlaskErr(status_code=500, message="用户不存在")
def get_system_notice_list(): userId = request_helper.current_user_mush_login()["Id"] ApiResponse = api_response.ApiResponse() size = request.form.get("size", type=int, default=10) page = request.form.get("page", type=int, default=1) if page <= 0: page = 1 if size <= 0: size = 10 data = mysql.get_list(system_notice_sql.select_system_notice_list, (userId, (page - 1) * size, size)) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def collection(): ApiResponse = api_response.ApiResponse() user = request_helper.current_user_mush_login() demandServiceId = request.form.get("demandServiceId", type=str, default=None) sql_list = (demand_service_sql.demand_service_collection, demand_service_sql.add_demand_service_count) args = [(user["Id"], demandServiceId), (demandServiceId)] if any(user) and demandServiceId != None and demandServiceId != "": count = mysql.operate__many(sql_list, args) ApiResponse.message = "收藏成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def join_team(): ApiResponse = api_response.ApiResponse() userId = request_helper.current_user_mush_login()["Id"] user_info = mysql.get_object(user_sql.select_user_by_id, (userId)) if user_info is None or user_info["UserType"] == 1: raise custom_error.CustomFlaskErr(status_code=500, message="你还不是规划师") TeamId = request.form.get("TeamId", type=str, default=None) if TeamId is None or TeamId == '': raise custom_error.CustomFlaskErr(status_code=500, message="团队id不能为空") exists_team = mysql.get_object(team_sql.exists_team_peoper, (userId)) if exists_team is not None and exists_team["Status"] == 1: raise custom_error.CustomFlaskErr(status_code=500, message="您已经申请过加入该团队,请耐心等待审核") if exists_team is not None and exists_team["Status"] == 2: raise custom_error.CustomFlaskErr(status_code=500, message="您已经是团队成员") team_detail = mysql.get_object(team_sql.select_team_adminid, (TeamId)) if team_detail is None: raise custom_error.CustomFlaskErr(status_code=500, message="您所申请的团队不存在") guid = str(uuid.uuid1()) sql_list = [team_sql.insert_team_notice, team_sql.insert_team_notice] args_list = [(userId, TeamId, "您正在申请加入 " + team_detail["Name"] + " 团队", 1, 2, userId, guid), (team_detail["AdminUserId"], TeamId, "用户 " + request_helper.current_user_mush_login()["Name"] + " 正在申请加入团队", 1, 1, userId, guid)] data_register = mysql.operate__many(sql_list, args_list) ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def select_user_file(): ApiResponse = api_response.ApiResponse() size = request.form.get("size", type=int, default=10) page = request.form.get("page", type=int, default=1) user = request_helper.current_user_mush_login() if page <= 0: page = 1 if size <= 0: size = 10 data = mysql.get_list(user_info_sql.select_sys_file, ((page - 1) * size, size)) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def order_list(): ApiResponse = api_response.ApiResponse() size = request.form.get("size", type=int, default=10) page = request.form.get("page", type=int, default=1) if page <= 0: page = 1 if size <= 0: size = 10 complete_order_list = order_logic.select_planner_order_list( request_helper.current_user_mush_login()["Id"], page, size) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = complete_order_list return api_response.response_return(ApiResponse)
def collection_list(): ApiResponse = api_response.ApiResponse() size = request.form.get("size", type=int, default=10) page = request.form.get("page", type=int, default=1) user = request_helper.current_user_mush_login() if page <= 0: page = 1 if size <= 0: size = 10 data = mysql.get_list(demand_service_sql.select_collection_demand_service, (user["Id"], (page - 1) * size, size)) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def insert_album(): ApiResponse = api_response.ApiResponse() PhotoName = request.form.get("PhotoName", type=str, default=None) if PhotoName == None or PhotoName == "": raise custom_error.CustomFlaskErr(status_code=500, message="照片名称不能为空") Url = request.form.get("Url", type=str, default=None) if Url == None or Url == "": raise custom_error.CustomFlaskErr(status_code=500, message="照片地址不能为空") Sort = request.form.get("Sort", type=int, default=0) user = request_helper.current_user_mush_login() data = mysql.operate_object( planner_sql.insert_album, (user["Id"], PhotoName, Url, Sort, user["Id"], user["Id"])) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def replay_evaluate(): ApiResponse = api_response.ApiResponse() orderId = request.form.get("orderId", type=str, default=None) if orderId == None or orderId=="": raise custom_error.CustomFlaskErr(status_code=500, message="请选择需要评论的订单") content = request.form.get("content", type=str, default=None) if content == None or content=="": raise custom_error.CustomFlaskErr(status_code=500, message="请输入评价内容") sort = request.form.get("sort", type=int, default=0) user= request_helper.current_user_mush_login() data = order_logic.replay_evaluate(orderId, user["Id"], content, sort) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def insert_chat(): SendUserId = request_helper.current_user_mush_login()["Id"] ApiResponse = api_response.ApiResponse() ReceiveUserId = request.form.get("ReceiveUserId", type=str, default=None) Content = request.form.get("Content", type=str, default=None) if ReceiveUserId is None or ReceiveUserId == '': raise custom_error.CustomFlaskErr(status_code=500, message="接收者id不能为空") if Content is None or Content == '': raise custom_error.CustomFlaskErr(status_code=500, message="消息内容不能为空") user_info = mysql.get_object(chat_notice_sql.select_user_info, (SendUserId)) if user_info is None: raise custom_error.CustomFlaskErr(status_code=500, message="该用户不存在") chat_main = mysql.get_object( chat_notice_sql.select_chat_main, (SendUserId, ReceiveUserId, ReceiveUserId, SendUserId)) guid = str(uuid.uuid1()) if chat_main == None: mysql.operate_object( chat_notice_sql.insert_chat_main, (guid, SendUserId, ReceiveUserId, Content, SendUserId)) else: guid = chat_main["Id"] mysql.operate_object(chat_notice_sql.update_chat_main, (Content, SendUserId, guid)) system_content = user_info["Name"] + " 发来一条消息" mysql.operate_object(chat_notice_sql.insert_chat_content, (guid, SendUserId, Content, SendUserId)) existx_chat = mysql.get_object(chat_notice_sql.existx_chat_notice, (guid, ReceiveUserId)) if existx_chat["total"] == 0: mysql.operate_object( chat_notice_sql.insert_chat_notice, (ReceiveUserId, system_content, SendUserId, guid, SendUserId)) else: mysql.operate_object(chat_notice_sql.update_chat_notice, (system_content, SendUserId, guid, ReceiveUserId)) ApiResponse.message = "成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse)
def updateuserinfo(): ApiResponse = api_response.ApiResponse() name = request.form.get("name", type=str, default=None) sex = request.form.get("sex", type=int, default=0) age = request.form.get("age", type=int, default=0) education = request.form.get("education", type=str, default=None) address = request.form.get("address", type=str, default=None) email = request.form.get("email", type=str, default=None) user = request_helper.current_user_mush_login() data_register = mysql.operate_object( user_info_sql.update_user_info, (name, sex, age, education, address, email, user["Id"], user["Id"])) if data_register > 0: ApiResponse.message = "修改成功" ApiResponse.status = 200 return api_response.response_return(ApiResponse) raise custom_error.CustomFlaskErr(status_code=500, message="修改失败")
def insert_society(): ApiResponse = api_response.ApiResponse() TimeStart = request.form.get("TimeStart", type=str, default=None) TimeEnd = request.form.get("TimeEnd", type=str, default=None) if TimeStart == None or TimeStart == "" or TimeEnd == None or TimeEnd == "": raise custom_error.CustomFlaskErr(status_code=500, message="起止时间不能为空") Description = request.form.get("Description", type=str, default=None) if Description == None or Description == "": raise custom_error.CustomFlaskErr(status_code=500, message="社会背景不能为空") Sort = request.form.get("Sort", type=int, default=0) user = request_helper.current_user_mush_login() guid = str(uuid.uuid1()) data = mysql.operate_object(planner_sql.insert_society, (guid, user["Id"], TimeStart, TimeEnd, Description, Sort, user["Id"], user["Id"])) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def user_album(): ApiResponse = api_response.ApiResponse() size = request.form.get("size", type=int, default=10) page = request.form.get("page", type=int, default=1) userid = request.form.get("userid", type=str, default=None) if userid == None or userid == "": userid = request_helper.current_user_mush_login()["Id"] if userid == None or userid == "": raise custom_error.CustomFlaskErr(status_code=500, message="参数userid不能为空") if page <= 0: page = 1 if size <= 0: size = 10 data = mysql.get_list(user_info_sql.select_user_album, (userid, (page - 1) * size, size)) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def follow_list(): ApiResponse = api_response.ApiResponse() size = request.form.get("size", type=int, default=10) page = request.form.get("page", type=int, default=1) user = request_helper.current_user_mush_login() if page <= 0: page = 1 if size <= 0: size = 10 data = mysql.get_list(planner_sql.select_follw_planner, (user["Id"], (page - 1) * size, size)) if data and len(data): for i in range(len(data)): if data[i]["Lables"] is not None: lablesArray = data[i]["Lables"].split(",") data[i]["Lables"] = lablesArray ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)
def update_society(): ApiResponse = api_response.ApiResponse() Id = request.form.get("Id", type=str, default=None) if Id == None or Id == "": raise custom_error.CustomFlaskErr(status_code=500, message="请选择需要修改的社会背景") TimeStart = request.form.get("TimeStart", type=str, default=None) TimeEnd = request.form.get("TimeEnd", type=str, default=None) if TimeStart == None or TimeStart == "" or TimeEnd == None or TimeEnd == "": raise custom_error.CustomFlaskErr(status_code=500, message="起止时间不能为空") Description = request.form.get("Description", type=str, default=None) if Description == None or Description == "": raise custom_error.CustomFlaskErr(status_code=500, message="社会背景不能为空") user = request_helper.current_user_mush_login() data = mysql.operate_object( planner_sql.update_society, (TimeStart, TimeEnd, Description, user["Id"], Id, user["Id"])) ApiResponse.message = "成功" ApiResponse.status = 200 ApiResponse.data = data return api_response.response_return(ApiResponse)