42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from flask import Blueprint, request, jsonify
|
|
from api import db, tasks
|
|
from api.models import Designer
|
|
from api.validators import validate_keys_exists
|
|
|
|
|
|
mod = Blueprint('designers', __name__, url_prefix='/designers')
|
|
|
|
|
|
@mod.route("/", methods=["GET"])
|
|
def list():
|
|
designers = Designer.query.all()
|
|
return jsonify(designers=[d.to_json() for d in designers])
|
|
|
|
|
|
@mod.route("/", methods=["POST"])
|
|
def create():
|
|
data = request.json
|
|
validate_keys_exists(data, 'username', 'name', 'territory', 'currency')
|
|
designer = Designer(**data)
|
|
db.session.add(designer)
|
|
db.session.commit()
|
|
return jsonify(designer.to_json())
|
|
|
|
|
|
@mod.route("/<int:id>", methods=["GET"])
|
|
def show(id):
|
|
designer = Designer.query.get_or_404(id)
|
|
return jsonify(designer.to_json())
|
|
|
|
|
|
@mod.route("/<id>", methods=["PUT"])
|
|
def update(id):
|
|
designer = Designer.query.get_or_404(id)
|
|
data = request.json
|
|
for k, v in data.items():
|
|
setattr(designer, k, v)
|
|
db.session.add(designer)
|
|
db.session.commit()
|
|
tasks.esales.update_designer(designer)
|
|
return jsonify(designer.to_json())
|