@@ -37,8 +37,6 @@ def create_app(config_name="config"):
|
||||
designers,
|
||||
categories,
|
||||
prices,
|
||||
orders,
|
||||
order_rows,
|
||||
markets,
|
||||
)
|
||||
|
||||
@@ -46,8 +44,6 @@ def create_app(config_name="config"):
|
||||
app.register_blueprint(designers.mod)
|
||||
app.register_blueprint(categories.mod)
|
||||
app.register_blueprint(prices.mod)
|
||||
app.register_blueprint(orders.mod)
|
||||
app.register_blueprint(order_rows.mod)
|
||||
app.register_blueprint(markets.mod)
|
||||
|
||||
return app
|
||||
|
||||
@@ -5,12 +5,4 @@ from .category import Category
|
||||
from .contract_customer import ContractCustomer
|
||||
from .inquiry import Inquiry
|
||||
from .product import Material, Product, Currencies, PrintProduct
|
||||
from .order import (
|
||||
Order,
|
||||
OrderField,
|
||||
OrderRow,
|
||||
OrderRowField,
|
||||
OrderRowDetail,
|
||||
OrderOrderField,
|
||||
)
|
||||
from .market import Market
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
# coding=UTF-8
|
||||
|
||||
from datetime import datetime
|
||||
from api.extensions import db
|
||||
from flask_sqlalchemy import BaseQuery
|
||||
|
||||
|
||||
class Order(db.Model):
|
||||
__tablename__ = "order-orders"
|
||||
id = db.Column("orderid", db.Integer, primary_key=True)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
fields = db.relationship("OrderOrderField", backref="order", lazy="dynamic")
|
||||
rows = db.relationship("OrderRow", backref="order", lazy="dynamic")
|
||||
|
||||
|
||||
class OrderFieldQuery(BaseQuery):
|
||||
def by_name(self, name):
|
||||
return self.filter(OrderField.name == name).first()
|
||||
|
||||
|
||||
class OrderField(db.Model):
|
||||
__tablename__ = "order-fields"
|
||||
|
||||
query_class = OrderFieldQuery
|
||||
|
||||
id = db.Column("fieldid", db.Integer, primary_key=True)
|
||||
name = db.Column(db.String)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
|
||||
|
||||
class OrderOrderField(db.Model):
|
||||
__tablename__ = "order-orders_fields"
|
||||
|
||||
orderid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-orders.orderid"), nullable=False
|
||||
)
|
||||
fieldid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-fields.fieldid"), nullable=False
|
||||
)
|
||||
value = db.Column(db.String, nullable=False)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
field = db.relationship("OrderField", uselist=False)
|
||||
|
||||
__table_args__ = (db.PrimaryKeyConstraint(orderid, fieldid),)
|
||||
|
||||
def to_json(self):
|
||||
return {
|
||||
"orderid": self.orderid,
|
||||
"fieldid": self.fieldid,
|
||||
"value": self.value,
|
||||
"inserted": self.inserted,
|
||||
}
|
||||
|
||||
|
||||
class OrderRow(db.Model):
|
||||
__tablename__ = "order-rows"
|
||||
|
||||
id = db.Column("rowid", db.Integer, primary_key=True)
|
||||
orderid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-orders.orderid"), nullable=False
|
||||
)
|
||||
details = db.relationship("OrderRowDetail", backref="OrderRow", lazy="dynamic")
|
||||
|
||||
|
||||
class OrderRowFieldQuery(BaseQuery):
|
||||
def by_name(self, name):
|
||||
return self.filter(OrderRowField.name == name).first()
|
||||
|
||||
|
||||
class OrderRowField(db.Model):
|
||||
__tablename__ = "order-row_fields"
|
||||
|
||||
query_class = OrderRowFieldQuery
|
||||
|
||||
id = db.Column("fieldid", db.Integer, primary_key=True, nullable=False)
|
||||
name = db.Column(db.String)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
|
||||
class OrderRowDetail(db.Model):
|
||||
__tablename__ = "order-rows_details"
|
||||
|
||||
rowid = db.Column(db.Integer, db.ForeignKey("order-rows.rowid"), nullable=False)
|
||||
fieldid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-row_fields.fieldid"), nullable=False
|
||||
)
|
||||
value = db.Column(db.String)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
field = db.relationship("OrderRowField", uselist=False)
|
||||
|
||||
__table_args__ = (db.PrimaryKeyConstraint(rowid, fieldid),)
|
||||
|
||||
def to_json(self):
|
||||
return {
|
||||
"rowid": self.rowid,
|
||||
"fieldid": self.fieldid,
|
||||
"value": self.value,
|
||||
"inserted": self.inserted,
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
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"}
|
||||
)
|
||||
@@ -1,24 +0,0 @@
|
||||
from flask import Blueprint, jsonify, abort, request
|
||||
from api import db
|
||||
from api.helpers import check_api_key
|
||||
from api.models import Order, OrderField, OrderOrderField
|
||||
|
||||
mod = Blueprint("orders", __name__, url_prefix="/orders")
|
||||
|
||||
mod.before_request(check_api_key)
|
||||
|
||||
|
||||
@mod.route("/<int:order_id>/pwinty_id", methods=["POST"])
|
||||
def save_pwinty_id(order_id):
|
||||
data = request.json
|
||||
order = Order.query.get_or_404(order_id)
|
||||
field = OrderField.query.by_name(name="pwinty_id")
|
||||
order_field = order.fields.filter_by(fieldid=field.id).first()
|
||||
if not order_field:
|
||||
order_field = OrderOrderField(orderid=order.id, fieldid=field.id)
|
||||
|
||||
setattr(order_field, "value", data["value"])
|
||||
db.session.add(order_field)
|
||||
db.session.commit()
|
||||
|
||||
return jsonify(order_field.to_json())
|
||||
@@ -124,6 +124,9 @@ Resources:
|
||||
PortMappings:
|
||||
- ContainerPort: !Ref ContainerPort
|
||||
# Define which parameters should be fetched
|
||||
Environment:
|
||||
- Name: ENVIRONMENT_NAME
|
||||
Value: !Ref EnvironmentName
|
||||
Secrets:
|
||||
- Name: "SQLALCHEMY_DATABASE_URI"
|
||||
ValueFrom: !Sub "arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/${EnvironmentName}/SQLALCHEMY_DATABASE_URI"
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ services:
|
||||
ports:
|
||||
- "1881:80"
|
||||
environment:
|
||||
- SQLALCHEMY_DATABASE_URI=postgresql://fondberg:@docker.for.mac.localhost/photowall
|
||||
- SQLALCHEMY_DATABASE_URI=postgresql://photowall:photowall@docker.for.mac.localhost/photowall
|
||||
- API_KEYS=[]
|
||||
- DEBUG=True
|
||||
# - SQLALCHEMY_TRACK_MODIFICATIONS=True # change in prestart.sh
|
||||
|
||||
@@ -7,7 +7,6 @@ Welcome to the documentation for Photowall API 2.
|
||||
* [Categories](categories.md)
|
||||
* [Designers](designers.md)
|
||||
* [Prices](prices.md)
|
||||
* [Orders](orders.md)
|
||||
* [Markets](markets.md)
|
||||
|
||||
## Authentication
|
||||
|
||||
+2
-17
@@ -1,19 +1,4 @@
|
||||
# Orders
|
||||
|
||||
## Update pwinty_id
|
||||
|
||||
```
|
||||
curl -X POST https://api.photowall.com/orders/1/pwinty_id -H "Content-Type: application/json" -d '{"value": 123}'
|
||||
```
|
||||
|
||||
## Update pwinty_image_id
|
||||
|
||||
```
|
||||
curl -X POST https://api.photowall.com/order-rows/1/pwinty_image_id -H "Content-Type: application/json" -d '{"value": 123}'
|
||||
```
|
||||
|
||||
## Send a notification that the order-row has been delivered
|
||||
|
||||
```
|
||||
curl -X POST https://api.photowall.com/order-rows/1/send'
|
||||
```
|
||||
## Removed
|
||||
Moved toi photowall php repo
|
||||
|
||||
Reference in New Issue
Block a user