コード例 #1
0
def tagging_submit():
    '''
    提交任务
    :return:
    '''
    if not request.json:
        return jsonify(code=10001, msg='未传递参数')

    id = request.json.get('id', None)
    user_resp = request.json.get('user_resp', None)
    not_tagging = request.json.get('not_tagging', None)
    edit_submit = request.json.get('edit_submit', None)

    if id is None or (user_resp is None and not_tagging is None):
        return jsonify(code=10001, msg='未传递参数')

    data_dict = request.json

    if data_dict.get('user_resp', None):
        data_dict['user_resp'] = {
            k: [1 for i in v]
            for k, v in user_resp.items()
        }

    resp = requests.post(url=get_url(),
                         cookies=request.cookies,
                         json=request.json,
                         headers=get_headers())

    if resp.status_code != 200:
        return jsonify(resp.content)

    resp_data = json.loads(resp.content)

    if resp_data.get('code') != 200:
        return jsonify(resp_data)

    if edit_submit:
        response = db.session.query(Response).filter(
            Response.response_id == id).first()
        if response is None:
            return jsonify(code=10001, msg='此回答不存在')

        response.user_resp = json.dumps(user_resp)
    else:
        resp_content = json.loads(resp.content)
        if resp_content.get('code') != 200:
            return jsonify(resp_data)

        task = Task.query.filter_by(
            task_id=resp_content.get('task_id')).first()
        if task is None:
            return jsonify(code=10001, msg='此任务不存在')
        response = Response()
        response.response_id = resp_content.get('response')
        response.cache_id = id
        response.object_url = task.object_url
        response.task_id = resp_content.get('task_id')
        response.user_resp = json.dumps(user_resp)
        db.session.add(response)

    db.session.commit()

    return jsonify(resp_data)