basedata.py 2.2 KB
from flask import jsonify, request
from app.models import Basedata
from app.api.auths import Auth
from app import common
from app import db
from app.api import bp
from app.api.errors import bad_request

# def init_api(app):
@bp.route('/basedata', methods=['POST'])
def create_basedata():
    """
    创建配置
    :return: json
    """
    data = request.get_json()
    if not data:
        return bad_request('You must post JSON data.')
    message = {}
    if 'device_model' not in data or not data.get('device_model'):
        message['device_model'] = 'device_model is required.'
    if message:
        return bad_request(message)
    basedata = Basedata()
    basedata.from_dict(data)
    db.session.add(basedata)
    db.session.commit()
    response = jsonify(basedata.to_dict())
    response.status_code = 201
    # HTTP协议要求201响应包含一个值为新资源URL的Location头部
    # response.headers['Location'] = url_for('api.get_post', id=post.id)
    return response

# @bp.route('/basedatas/', methods=['GET'])
# def get_basedatas():
#     '''返回配置'''
#     page = request.args.get('page', 1, type=int)
#     per_page = min(
#         request.args.get(
#             'per_page', 10, type=int), 100)
#     data = Product.to_collection_dict(
#         Product.query.order_by(Product.testtime.desc()), page, per_page,
#         'api.get_products')
#     return jsonify(data)

@bp.route('/basedatas/<int:id>', methods=['GET'])
def get_basedata(id):
    '''返回配置'''
    basedata = Basedata.query.get_or_404(id)
    # post.views += 1
    # db.session.add(post)
    # db.session.commit()
    return jsonify(basedata.to_dict())

@bp.route('/basedatas/<int:id>', methods=['PUT'])
def update_basedata(id):
    '''修改配置'''
    basedata = Basedata.query.get_or_404(id)
    # if g.current_user != post.author:
    #     return error_response(403)
    data = request.get_json()
    if not data:
        return bad_request('You must post JSON data.')
    message = {}
    if 'device_model' not in data or not data.get('device_model'):
        message['device_model'] = 'device_model is required.'
    if message:
        return bad_request(message)

    basedata.from_dict(data)
    db.session.commit()
    return jsonify(basedata.to_dict())