Files
api2/api/resources/order_rows.py
T

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"}
)