36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from flask import Blueprint, jsonify, abort, request
|
|
from api import db, bernard
|
|
from api.helpers import check_api_key
|
|
from api.models import OrderRow, OrderRowField, OrderRowDetail
|
|
|
|
mod = Blueprint("order_rows", __name__, url_prefix="/order-rows")
|
|
|
|
mod.before_request(check_api_key)
|
|
|
|
|
|
@mod.route("/<int:row_id>/pwinty_image_id", methods=["POST"])
|
|
def save_pwinty_image_id(row_id):
|
|
data = request.json
|
|
row = OrderRow.query.get_or_404(row_id)
|
|
field = OrderRowField.query.filter_by(name="pwinty_image_id").first()
|
|
detail = row.details.filter_by(fieldid=field.id).first()
|
|
if not detail:
|
|
detail = OrderRowDetail(rowid=row.id, fieldid=field.id)
|
|
|
|
setattr(detail, "value", data["value"])
|
|
db.session.add(detail)
|
|
db.session.commit()
|
|
|
|
return jsonify(detail.to_json())
|
|
|
|
|
|
@mod.route("/<int:row_id>/send", methods=["POST"])
|
|
def send_order_row(row_id):
|
|
success = bernard.produce("SendOrderRow", {"row_id": row_id})
|
|
if success:
|
|
return jsonify({"status": "ok"})
|
|
else:
|
|
return jsonify(
|
|
{"status": "err", "message": "Message not delivered to Bernard queue"}
|
|
)
|