def get_simple_list(): '''基于一组id的主题 只查询存在的id,不存在的则不返回结果 :arg /theme?ids=id1,id2,id3,... :return: 一组theme模型 ''' ids = IDCollectionValidator().validate_for_api().ids.data themes = Theme.query.filter(Theme.id.in_(ids)).all() return Success({'items': themes})
def add_Task(): form = TaskForm().validate_for_api() if Task.is_name_exist(form.name.data): raise RepeatFailed() else: task = Task() task.add_task(form.name.data,form.description.data,form.request_header.data) return Success()
def bookinfo(id): """书籍详情信息""" bookinfo = BookInfo.check_to_book(id=id) if bookinfo and bookinfo.get('longIntro') is not None: datas = bookinfo else: spider = Spider(id) datas = spider.bookinfo_spider() return Success(data=datas)
def book_chapter_list(id): """书籍目录""" books = BookChapter.check_to_book_chapter(id) if books: data = books else: spider = Spider(id=id) data = spider.book_chapter_spider() return Success(data=data)
def create_error_feedback(): """创建错误反馈""" form = ErrorFeedbackForm().validate_for_api() with db.auto_commit(): obj_error_feedback = ErrorFeedback() obj_error_feedback.set_attrs(form.data) obj_error_feedback.author_id = g.user.uid db.session.add(obj_error_feedback) return Success()
def get_user_book_index(): """小程序首页api""" bookinfo = [] spf = SpiderPluginFilter() books = UserBookCase.query.filter_by(openid=g.user.openid).all() for book in books: bookinfo.append(spf.check_bookinfo(temp={'_id': book.bookid})) data = {"recommend": current_app.config['RECOMMEND'], "books": bookinfo} return Success(data=data)
def create_client(): form = ClientForm().validate_for_api() #实例化validators的forms客户端表单验证类 promise = { ClientTypeEnum.USER_EMAIL: __register_user_by_email, ClientTypeEnum.USER_WX: __register_user_by_wx } #获取登陆类型的枚举对象 promise[form.type.data]() return Success()
def upload_file(): '''文件上传''' form = UploadPDFValidator().validate_for_api() origin_file = request.files[form.origin.name] origin_file.save(os.path.join(current_app.config['UPLOAD_FOLDER'], origin_file.filename)) comparer_file = request.files[form.comparer.name] comparer_file.save(os.path.join(current_app.config['UPLOAD_FOLDER'], comparer_file.filename)) return Success(error_code=1)
def order_confirm(oid): uid = g.user.uid order = Order.query.filter( and_(Order.user_id == uid, Order.order_no == oid, Order.status == 3)).first_or_404() with db.auto_commit(): order.status = 4 order.update() return Success()
def login(): form = LoginForm().validate_for_api().data_ username = form['username'] password = form['password'] user = User.get_by_id(username) if user is None or user.password != password: raise AuthFailed('登录失败,用户名或密码错误') login_user(user, remember=False) raise Success('登录成功')
def create_client(): # 注册 # 参数校验:WTForms 验证表单 form = ClientForm().validate_for_api() promise = { ClientTypeEnum.USER_EMAIL: __register_user_by_email } promise[form.type.data]() return Success()
def appeal(): data = request.json with db.auto_commit(): url = Url.query.filter_by(id=int(data['id'])).first_or_404() if data['false_positive'] == 'T': url.false_positive = url.false_positive + 1 else: url.false_negative = url.false_negative + 1 return Success()
def add_graduateresult(): jsonData = request.get_json() for excres in jsonData['data']: Graduateresult.add_result_to_graduate( excres['s_id'], excres['vl_id'], excres['g_agreenum'], excres['g_disagreenum'], excres['g_abstained'], excres['d_agreenum'], excres['d_disagreenum'], excres['d_abstained']) return Success(msg='初始化毕业生毕业授予学位投票结果成功', error_code=201)
def add_excellentresult(): jsonData = request.get_json() for excres in jsonData['data']: Excellentresult.add_result_to_excellent(excres['s_id'], excres['vl_id'], excres['agreenum'], excres['disagreenum'], excres['abstained']) return Success(msg='初始化优秀毕业生投票结果成功', error_code=201)
def create_client(): #客户端提交数据的方式是多样的,有xml json 表单 form = ClientForm().validate_for_api() promise = {ClientEnums.USER_EMAIL: register_by_email} print(form.type.data) promise[form.type.data]() return Success()
def create_client(): form = ClientForm().validate_for_api() promise = {ClientTypeEnum.USER_MINA: __register_user_by_mina} promise[form.type.data]() # 可以预知的异常 APIException # 我们没有意识到的异常 全剧异常 AOP return Success()
def get_order_list(): '''查询订单列表''' page, size = paginate() time_validator = TimeIntervalValidator().nt_data paged_orders = OrderDao.get_summary(page=page, size=size, start=time_validator.start, end=time_validator.end) return Success(paged_orders)
def get_all_group_by_league_id(): league_id = request.args.get('league_id') data = db.session.query(Group).filter(Group.league_id == league_id) returnDatas = [] for d in data: tempdata = d.to_json() tempdata['schedule_process'] = 1 returnDatas.append(tempdata) return Success(msg='查询成功', data=returnDatas)
def delete_load_type(): data = request.get_json() load_type = LoadType.objects.filter(id=data["load_type_id"]).first() lines = Line.objects.filter(load_type_id=data["load_type_id"]).all() load_type.delete() if lines: for line in lines: line.load_type_id = None line.save() return Success()
def line_status(): """ 设备线路详情 :return: """ device_id = request.args.get("device_id") lines = Line.objects(device_id=device_id).all() result = Monitor.device_status(device_id, lines) result.pop(0) return Success(result)
def send_command(): """ 发送指令 :return: """ device_id = request.args.get("device_id") command = request.args.get("command") socket = Deviceservice.search_device_socket(device_id) Deviceservice.send_command(socket, command) return Success(msg="指令发送成功")
def register_by_mina(wx_open_id): user = User.query.filter_by(wx_open_id=wx_open_id).first() if user: raise Forbidden(msg='openid has been registered') else: with db.auto_commit(): user = User() user.wx_open_id = wx_open_id db.session.add(user) return Success()
def operate_device(): """ 操控设备线路 :return: """ data = request.get_json() device_id = data["device_id"] socket = Deviceservice.search_device_socket(device_id) multiple_run(3, Deviceservice.operate, args=(data["line"], data["type"], socket), sleep=0.5) return Success()
def get_category_list(): '''查询「产品类别」列表''' page, size = paginate() paginator = Category.query.filter_by().paginate(page=page, per_page=size, error_out=False) return Success({ 'total': paginator.total, 'current_page': paginator.page, 'items': paginator.items })
def get_school_admin(): school_id = request.args.get('school_id') school_admin = School_admin.query.filter_by(school_id=school_id) schools = [] for sc in school_admin: schools.append(sc.to_json()) return Success(msg='查找管理员成功', data=schools)
def reset_password(): token = request.args['token'] data = verify_token(token) if data['type'] == 100: with db.auto_commit(): user = User.query.filter_by(email=data['email']).first_or_404() user.password = data['secret'] db.session.add(user) return Success()
def update_role(id): """ 用户关联用户组 """ form = RoleGroupForm().validate_for_api() with db.auto_commit(): data = User.query.filter_by(id=id).first() data.role_id = form.role.data db.session.add(data) return Success(message="用户组修改成功!")
def create_client(): form = ClientForm() form.validate_for_api() promise = { ClientTypeEnum.USER_EMAIL:__register_user_by_email } promise[form.type.data]() # 我们可以预知 return Success()
def answer_discussion(topic_answer_id): topic_answer = DiscussionAnswer.query.get_or_404(topic_answer_id) form = TopicAnswerForm().validate_for_api() with db.auto_commit(): answer = DiscussionAnswer(content=form.content.data, topic_id=topic_answer.topic_id, reply_id=topic_answer.id, author_id=g.user['gid']) db.session.add(answer) return Success()
def get_campaigns(): # user_id = request.values.get('user_id') # token = request.values.get('token') validator = PaginateValidator().validate_for_api() page_number = validator.page.data items_per_page = validator.size.data paging_orders = Campaign.get_campaigns(page=page_number, size=items_per_page) return Success(paging_orders)