Ejemplo n.º 1
0
def api_mod_account(request):
    log_request(request)
    try:
        name = getp(request.POST.get('name'), nullable=False, para_intro='姓名')
        sex = getp(request.POST.get('sex'), nullable=True, para_intro='性别')
        area_id = getp(request.POST.get('area_id'), nullable=True, para_intro='地区id')
        area_name = getp(request.POST.get("area_name"), u"地域名称", nullable=True)
        manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True)
        institution = getp(request.POST.get('institution'), nullable=True, para_intro='机构')
        position = getp(request.POST.get('position'), nullable=True, para_intro='职务')

        region_id = getp(request.POST.get('region_id'), nullable=True, para_intro='区域id')
        email = getp(request.POST.get('email'), nullable=True, para_intro='区域id')

        is_self_reg = getp(request.POST.get('is_self_reg'), nullable=True, para_intro='是否自主注册')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = services.api_mod_account(request, name, sex, area_id, area_name, manage_direct, institution, position, region_id, email, is_self_reg)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 2
0
def api_mod_user(request):
    log_request(request)
    try:
        user_id = getp(request.POST.get("user_id"), u"用户ID", nullable=False)
        username = getp(request.POST.get("username"), u"用户名", nullable=True, default='')  # 暂不允许修改用户名,修改用户视为删除旧用户,增加新用户,但你非要改我也能支持liukai
        name = getp(request.POST.get("name"), u"名称", nullable=False)
        sex = getp(request.POST.get("sex"), u"性别", nullable=False)
        # area_name = getp(request.POST.get("area_name"), u"地区", nullable=False)
        # current_user_id = getp(request.POST.get("current_user_id"), u'当前用户', nullable=False)
        # manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True)

        area_id = getp(request.POST.get("area_id"), u"区域ID", nullable=True)
        direct_area_id = getp(request.POST.get("direct_area_id"), u"哪一个区域直属", nullable=True)
        institution = getp(request.POST.get("institution"), u"组织名称", nullable=True)
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)

    try:
        result = services.mod_user(request.user, user_id, username, name, sex, area_id, direct_area_id, institution)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 3
0
def api_group_create(request):
    if getattr(request, 'limited', False):
        return net_helper.response_ratelimit()
    try:
        group_name = get_parameter(request.POST.get('group_name'),
                                   para_intro=u'群组名称')
        invite_users = get_parameter(request.POST.get('invite_users'),
                                     allow_null=True,
                                     default='')
    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)
    try:
        # 仅支持教师操作群组
        if request.user.type != USER_TYPE_TEACHER:
            raise BusinessException(ONLY_TEACHER_CAN_HANDLE_GRP)
        new_grp = create_grp(group_name, request.user)
        invite_who = tools.cut_last_char(invite_users).split(';')
        invite_user(request.user, new_grp, invite_who)
        return net_helper.response200({
            'c': SUCCESS[0],
            'm': SUCCESS[1],
            'd': {
                'group_id': str(new_grp.id)
            }
        })
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
Ejemplo n.º 4
0
def api_list_expert_user(request):
    log_request(request)
    try:
        # cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户的id", nullable=False)
        name = getp(request.POST.get("name"), u"姓名", nullable=True)
        area_id = getp(request.POST.get("area_id"), u"地域id", nullable=True)
        manage_direct = getp(request.POST.get("manage_direct"),
                             u"直属标志",
                             nullable=True)
        is_show_store = getp(request.POST.get("is_show_store"),
                             u"是否在专家库显示",
                             nullable=True)
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.list_expert_user(request.user, None, name, area_id,
                                           manage_direct, is_show_store)
        # result = paging_with_request(request, result)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    if result['c'] == SUCCESS[0]:
        result = paging_with_request(request, result)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 5
0
def api_login(request):
    log_request(request)
    try:
        username = getp(request.POST.get("username"), u"用户名", nullable=True)
        password = getp(request.POST.get("password"), u"密码", nullable=True)
        confirm_code = getp(request.GET.get('confirm_code'),
                            nullable=True,
                            para_intro='用户确认码')
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        if confirm_code:
            # 如果传了confirm_code则直接用确认码进行登陆
            if services.api_confirmcode_login(request, confirm_code):
                return response200({"c": SUCCESS[0], "m": SUCCESS[1]})
            else:
                return response200({
                    "c": ERR_LOGIN_FAIL[0],
                    "m": ERR_LOGIN_FAIL[1]
                })

        if services.login(request, username=username, password=password):
            result = {"c": SUCCESS[0], "m": SUCCESS[1]}
            log_response(request, result)
            response = response200(result)
            return response
        else:
            result = {"c": ERR_LOGIN_FAIL[0], "m": ERR_LOGIN_FAIL[1]}
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 6
0
def api_delete_expert_user(request):
    log_request(request)
    try:
        cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户的id")
        expert_id_list = getp(request.POST.get("expert_id_list"),
                              u"专家的id列表",
                              nullable=True)
        name = getp(request.POST.get("name"), u"姓名", nullable=True)
        area_id = getp(request.POST.get("area_id"), u"地域id", nullable=True)
        manage_direct = getp(request.POST.get("manage_direct"),
                             u"直属标志",
                             nullable=True)
        del_all_expert = getp(request.POST.get("del_all_expert"),
                              u"是否删除所有专家",
                              nullable=True)

    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.delete_expert_user(request.user, cur_user_id,
                                             expert_id_list, name, area_id,
                                             manage_direct, del_all_expert)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 7
0
def wx_update_scan_status(request):
    """
    功能说明: 更新用户扫码状态
    """
    log_request(request)
    try:
        confirm_code = getp(request.GET.get('confirm_code'),
                            nullable=False,
                            para_intro='用户确认码')
        confirm_status = getp(request.GET.get('confirm_status'),
                              nullable=False,
                              para_intro='用户确认状态')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = agents.wx_update_scan_status(request, confirm_code,
                                              confirm_status)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 8
0
def api_upload_voice(request):
    try:
        is_secure = get_parameter(request.POST.get('is_secure'),
                                  allow_null=True,
                                  default='0',
                                  para_intro=u'是否需要认证访问',
                                  valid_check=INTEGER_NONNEGATIVE)
        duration = get_parameter(request.POST.get('duration'),
                                 allow_null=True,
                                 default='0',
                                 para_intro=u'语音持续时长',
                                 valid_check=INTEGER_NONNEGATIVE)
        voice_file = get_parameter(request.FILES.get('voice'),
                                   para_intro=u'语音文件',
                                   valid_check=VOICE)
    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)
    if not voice_file:
        return net_helper.response400({
            'c': REQUEST_PARAM_ERROR[0],
            'm': REQUEST_PARAM_ERROR[1]
        })
    result = services.upload_voice(voice_file, duration, request.user, '0')
    return net_helper.response200({
        'c': SUCCESS[0],
        'm': SUCCESS[1],
        'd': result
    })
Ejemplo n.º 9
0
def api_stu_info(request):
    try:
        account_id = get_parameter(request.POST.get('account_id'),
                                   para_intro=u'用户账号',
                                   allow_null=True)
        user_type_id = get_parameter(request.POST.get('user_type_id'),
                                     para_intro=u'用户类型ID',
                                     valid_check=INTEGER_POSITIVE,
                                     allow_null=True)
        school_id = get_parameter(request.POST.get('school_id'),
                                  para_intro=u'用户所在学校ID',
                                  valid_check=INTEGER_POSITIVE,
                                  allow_null=True)
    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)
    try:
        result = services.get_student_simple_info(request, account_id,
                                                  user_type_id, school_id)
    except Exception as e:
        logger.exception(e)
        return net_helper.response_exception(e)
    return net_helper.response200({
        'c': SUCCESS[0],
        'm': SUCCESS[1],
        'd': result
    })
Ejemplo n.º 10
0
def api_practice_pinyin(request):
    """
    功能说明: 下载拼音练习EXCEL
    """
    log_request(request)
    try:
        has_hanzi = getp(request.GET.get('has_hanzi'),
                         nullable=True,
                         para_intro='仅显示汉字拼音,不要格式')  # 勾上为on,不勾不会传这个参数
        words = getp(request.GET.get('words'),
                     nullable=False,
                     para_intro='中文单词列表')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        excel_filename = r'temp/%s.xls' % uuid.uuid1()
        result = get_pinyin_excel(words, excel_filename, has_hanzi)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)

    file = open(excel_filename, 'rb')
    response = HttpResponse(file)
    response['Content-Type'] = 'application/octet-stream'  #设置头信息,告诉浏览器这是个文件
    response['Content-Disposition'] = 'attachment;filename="quiz.xls"'
    return response
Ejemplo n.º 11
0
def page_practice_list_answer_his(request):
    """
    功能说明: 查看历史答题记录页面
    """
    log_request(request)
    try:
        user_name = getp(request.GET.get('username'),
                         nullable=True,
                         para_intro='用户姓名',
                         default='')
        days = getp(request.GET.get('days'),
                    nullable=False,
                    para_intro='最近天数',
                    default='7')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        params = services.get_practice_list_answer_his(request, user_name,
                                                       days)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, params)
    return render_to_response('html/practice/answer_his.html', params)
Ejemplo n.º 12
0
def api_check_username(request):
    log_request(request)
    try:
        username = getp(request.POST.get("username"), u"用户名", nullable=False)
    except InvalidHttpParaException as ex:
        return response_parameter_error(ex)
    try:
        result = services.check_username(request.user, username)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 13
0
def api_get_current_user(request):
    log_request(request)
    try:
        area_id = getp(request.POST.get("area_id"), u"地域的id", nullable=True)
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.get_current_user(request.user, area_id)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 14
0
def api_display_expert(request):
    log_request(request)
    try:
        area_id = getp(request.POST.get("area_id"), u"地域id")
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.display_expert(request.user, area_id)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 15
0
def api_get_activity_user(request):
    # 查询某活动中,用户的角色。
    log_request(request)
    try:
        activity_id = getp(request.POST.get("activity_id"), u"活动id", nullable=False)
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.api_get_activity_user(request.user, activity_id)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 16
0
def api_reset_own_password(request):
    log_request(request)
    try:
        old_password = getp(request.POST.get('old_password'), u"原密码")
        new_password = getp(request.POST.get('new_password'), u"新密码")
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.reset_own_password(user=request.user, old_password=old_password, new_password=new_password)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 17
0
def api_config_user(request):
    log_request(request)
    try:
        account_id = getp(request.POST.get("account_id"), u"account_id", nullable=False)
        activity_mask = getp(request.POST.get("activity_mask"), u"可配置的活动掩码", nullable=False)
        area_id = getp(request.POST.get("area_id"), u"创建活动的区域id", nullable=False)
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.config_user(request.user, account_id, activity_mask, area_id)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 18
0
def api_mobile_smscode_verify(request):
    if getattr(request, 'limited', False):
        return response_ratelimit()
    try:
        smscode = get_parameter(request.POST.get('smscode'),
                                para_intro=u'短信验证码')
        mobile = get_parameter(request.POST.get('mobile'), para_intro=u'手机号')
    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)
    try:
        smscheck_verify(mobile, smscode)
        return response200({'c': SUCCESS[0], 'm': SUCCESS[1]})
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
Ejemplo n.º 19
0
def api_qry_area_dropdowndetail(request):
    log_request(request)
    try:
        area_id = getp(request.POST.get("area_id"), u"地区id", nullable=False)

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = services.api_qry_area_dropdowndetail(request.user, area_id)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 20
0
def api_send_smsverifycode(request):
    log_request(request)
    try:
        mobile = getp(request.POST.get('mobile'), nullable=False, para_intro='电话号码')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = services.api_send_smsverifycode(request.user, mobile)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 21
0
def api_update_area_fullname(request):
    log_request(request)
    try:
        area_id = getp(request.POST.get('area_id'), nullable=True, para_intro='地区id', default='')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = services.api_update_area_fullname(area_id)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 22
0
def api_del_account_right(request):
    log_request(request)
    try:
        ids = getp(request.POST.get('ids'), nullable=False, para_intro='ids')  # 英文半角逗号分隔

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = services.api_del_account_right(request, ids)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 23
0
def api_import_activity_user(request):
    try:
        file_obj = request.FILES['file']
        activity_id = getp(request.POST.get("activity_id"), u"活动的id", nullable=False)
        cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户id", nullable=False)
        user_flag = getp(request.POST.get("user_flag"), u"被导入用户的标识(0:普通用户,1:管理员,2:专家)", nullable=True)
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)

    try:
        dictResp = services.import_activity_user(user=request.user, file_obj=file_obj, activity_id=activity_id, user_flag=user_flag, cur_user_id=cur_user_id)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    return response200(dictResp)
Ejemplo n.º 24
0
def api_mobile_smscode_send(request):
    if getattr(request, 'limited', False):
        return response_ratelimit(msg=u'24小时之内短信验证码只能发送5次')
    try:
        mobile = get_parameter(
            request.GET.get('mobile'),
            para_intro=u'手机号',
        )
    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)
    try:
        smscheck_send(mobile)
        return response200({'c': SUCCESS[0], 'm': SUCCESS[1]})
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
Ejemplo n.º 25
0
def api_add_expert_user(request):
    """
    添加专家用户。一般此接口只有其它接口调用,前端不会直接调用。
    当前逻辑为任何用户可以随意添加专家,也可以添加任意地区的专家。
    :param request:
    :return:
    """
    log_request(request)
    try:
        # cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户id")
        username = getp(request.POST.get("username"), u"用户名")
        name = getp(request.POST.get("name"), u"姓名")
        sex = getp(request.POST.get("sex"), u"性别")
        # area_name = getp(request.POST.get("area_name"), u"地域名称", nullable=True)
        institution = getp(request.POST.get("institution"),
                           u"组织名称",
                           nullable=True)
        # manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True)
        area_id = getp(request.POST.get("area_id"), u"区域ID", nullable=True)
        direct_area_id = getp(request.POST.get("direct_area_id"),
                              u"哪一个区域直属",
                              nullable=True)

        image_id = getp(request.POST.get("image_id", ""),
                        u"头像图片",
                        nullable=True)
        position = getp(request.POST.get("position", ""),
                        u"职位信息",
                        nullable=True)
        introduction = getp(request.POST.get("introduction", ""),
                            u"个人介绍",
                            nullable=True)

    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.add_expert_user(request.user, username, name, sex,
                                          institution, image_id, position,
                                          introduction, area_id,
                                          direct_area_id)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 26
0
def api_add_account_right(request):
    log_request(request)
    try:
        account_id = getp(request.POST.get('account_id'), nullable=False, para_intro='帐户ID')
        area_id = getp(request.POST.get('area_id'), nullable=False, para_intro='地区ID')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = services.api_add_account_right(request, account_id, area_id)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 27
0
def api_reset_others_password(request):
    log_request(request)
    try:
        account_id = getp(request.POST.get('account_id'), u"用户id", nullable=False)
        admin_password = getp(request.POST.get('admin_password'), u"管理员密码")
        new_password = getp(request.POST.get('new_password'), u"新密码")
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.reset_others_password(user=request.user, account_id=account_id, admin_password=admin_password,
                                                new_password=new_password)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 28
0
def api_list_sub_area(request):
    log_request(request)
    try:
        cur_user_id = getp(request.POST.get('cur_user_id'), u"当前用户的id", nullable=True)
        area_id = getp(request.POST.get("area_id"), u"地域id", nullable=True)
        manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True)  # 1只查直属,0只查非直属,不传或传空则不限制。
        area_name = getp(request.POST.get("area_name"), u"区域名称", nullable=True)  # 过滤条件,模糊匹配
        is_school = getp(request.POST.get("is_school"), u"是否学校", nullable=True)  # 1只查学校,0只查非学校,不传或传空则不限制。
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.list_sub_area(request.user, cur_user_id, area_id, manage_direct, area_name, is_school)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)
Ejemplo n.º 29
0
def api_reset_forget_password(request):
    log_request(request)
    try:
        mobile = getp(request.POST.get('mobile'), nullable=False, para_intro='电话号码')
        smscode = getp(request.POST.get('smscode'), nullable=False, para_intro='短信验证码')
        new_password = getp(request.POST.get('new_password'), nullable=False, para_intro='新密码')

    except InvalidHttpParaException as ihpe:
        logger.exception(ihpe)
        return response_parameter_error(ihpe)

    try:
        result = services.api_reset_forget_password(request.user, mobile, smscode, new_password)
    except Exception as e:
        logger.exception(e)
        return response_exception(e)
    log_response(request, result)
    return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
Ejemplo n.º 30
0
def api_add_account(request):
    log_request(request)
    try:
        username = getp(request.POST.get("username"), u"用户名", nullable=False)
        name = getp(request.POST.get("name"), u"姓名", nullable=False)
        sex = getp(request.POST.get("sex"), u"性别", nullable=False)
        activity_mask = getp(request.POST.get("activity_mask"), u"创建活动的掩码", nullable=True)
        area_id = getp(request.POST.get("area_id"), u"区域的id", nullable=True)
    except InvalidHttpParaException as ex:
        logger.exception(ex)
        return response_parameter_error(ex)
    try:
        result = services.add_account(request.user, username, name, sex, activity_mask, area_id)
    except Exception as ex:
        logger.exception(ex)
        return response_exception(ex, ex.message)
    log_response(request, result)
    return response200(result)