Beispiel #1
0
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})
Beispiel #2
0
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()
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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()
Beispiel #6
0
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)
Beispiel #7
0
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()
Beispiel #8
0
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)
Beispiel #9
0
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()
Beispiel #10
0
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('登录成功')
Beispiel #11
0
def create_client():
    # 注册
    # 参数校验:WTForms 验证表单
    form = ClientForm().validate_for_api()
    promise = {
        ClientTypeEnum.USER_EMAIL: __register_user_by_email
    }
    promise[form.type.data]()
    return Success()
Beispiel #12
0
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()
Beispiel #13
0
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)
Beispiel #14
0
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)
Beispiel #15
0
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()
Beispiel #16
0
def create_client():
    form = ClientForm().validate_for_api()
    promise = {ClientTypeEnum.USER_MINA: __register_user_by_mina}
    promise[form.type.data]()

    # 可以预知的异常  APIException
    # 我们没有意识到的异常 全剧异常 AOP

    return Success()
Beispiel #17
0
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)
Beispiel #18
0
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)
Beispiel #19
0
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()
Beispiel #20
0
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)
Beispiel #21
0
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="指令发送成功")
Beispiel #22
0
 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()
Beispiel #23
0
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()
Beispiel #24
0
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
    })
Beispiel #25
0
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)
Beispiel #26
0
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()
Beispiel #27
0
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="用户组修改成功!")
Beispiel #28
0
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()
Beispiel #30
0
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)