def api_group_dissolve(request): if getattr(request, 'limited', False): return net_helper.response_ratelimit() log_request(request) try: group_id = get_parameter(request.POST.get('group_id'), para_intro=u'自定义群组ID') 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) grp = auth_check.check_get_group(group_id) dissolve_grp(request.user, grp) return net_helper.response200({'c': SUCCESS[0], 'm': SUCCESS[1]}) except Exception as e: logger.exception(e) return response_exception(e)
def api_group_invite(request): if getattr(request, 'limited', False): return net_helper.response_ratelimit() try: group_id = get_parameter(request.POST.get('group_id'), para_intro=u'聊天群组ID', valid_check=INTEGER_POSITIVE) invite_users = get_parameter(request.POST.get('invite_users'), para_intro=u'邀请的账号', valid_check=USER_TUPLES) except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: invite_who = tools.cut_last_char(invite_users).split(';') grp = auth_check.check_get_group(group_id) invite_user(request.user, grp, invite_who) return net_helper.response200({'c': SUCCESS[0], 'm': SUCCESS[1]}) except Exception as e: logger.exception(e) return response_exception(e)
def api_group_edit(request): if getattr(request, 'limited', False): return net_helper.response_ratelimit() try: group_id = get_parameter(request.POST.get('group_id'), para_intro=u'群组ID', valid_check=INTEGER_POSITIVE) group_name = get_parameter(request.POST.get('group_name'), para_intro=u'群组名称') 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) group = auth_check.check_get_group(int(group_id)) edit_grp(group, group_name, request.user) return net_helper.response200({'c': SUCCESS[0], 'm': SUCCESS[1]}) except Exception as e: logger.exception(e) return response_exception(e)
def api_v2_group_invite_available(request): try: group_id = get_parameter(request.GET.get('group_id'), para_intro=u'自定义群组ID', valid_check=INTEGER_POSITIVE) except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: group = auth_check.check_get_group(group_id) teacher = get_type_current_user(request.user) if not isinstance(teacher, Teacher): raise BusinessException(AUTH_WRONG_TYPE) result = v2_get_invite_available(group, teacher) return net_helper.response200({ 'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result }) except Exception as e: logger.exception(e) return response_exception(e)
def api_group_invite_available(request): try: group_id = get_parameter(request.POST.get('group_id'), para_intro=u'自定义群组ID', valid_check=INTEGER_POSITIVE) 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) group = auth_check.check_get_group(group_id) result = get_invite_available(group, request.user) return net_helper.response200({ 'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result }) except Exception as e: logger.exception(e) return response_exception(e)
def api_group_user_delete(request): if getattr(request, 'limited', False): return net_helper.response_ratelimit() try: group_id = get_parameter(request.POST.get('group_id'), para_intro=u'聊天群组ID', valid_check=INTEGER_POSITIVE) delete_users = get_parameter(request.POST.get('delete_users'), para_intro=u'删除的账号', valid_check=USER_TUPLES) 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) group = auth_check.check_get_group(group_id) delete_who = tools.cut_last_char(delete_users).split(';') delete_user(request.user, group, delete_who) return net_helper.response200({'c': SUCCESS[0], 'm': SUCCESS[1]}) except Exception as e: logger.exception(e) return response_exception(e)