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