@@ -37,8 +37,6 @@ def create_app(config_name="config"):
|
|||||||
designers,
|
designers,
|
||||||
categories,
|
categories,
|
||||||
prices,
|
prices,
|
||||||
orders,
|
|
||||||
order_rows,
|
|
||||||
markets,
|
markets,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -46,8 +44,6 @@ def create_app(config_name="config"):
|
|||||||
app.register_blueprint(designers.mod)
|
app.register_blueprint(designers.mod)
|
||||||
app.register_blueprint(categories.mod)
|
app.register_blueprint(categories.mod)
|
||||||
app.register_blueprint(prices.mod)
|
app.register_blueprint(prices.mod)
|
||||||
app.register_blueprint(orders.mod)
|
|
||||||
app.register_blueprint(order_rows.mod)
|
|
||||||
app.register_blueprint(markets.mod)
|
app.register_blueprint(markets.mod)
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
|||||||
@@ -5,12 +5,4 @@ from .category import Category
|
|||||||
from .contract_customer import ContractCustomer
|
from .contract_customer import ContractCustomer
|
||||||
from .inquiry import Inquiry
|
from .inquiry import Inquiry
|
||||||
from .product import Material, Product, Currencies, PrintProduct
|
from .product import Material, Product, Currencies, PrintProduct
|
||||||
from .order import (
|
|
||||||
Order,
|
|
||||||
OrderField,
|
|
||||||
OrderRow,
|
|
||||||
OrderRowField,
|
|
||||||
OrderRowDetail,
|
|
||||||
OrderOrderField,
|
|
||||||
)
|
|
||||||
from .market import Market
|
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:
|
PortMappings:
|
||||||
- ContainerPort: !Ref ContainerPort
|
- ContainerPort: !Ref ContainerPort
|
||||||
# Define which parameters should be fetched
|
# Define which parameters should be fetched
|
||||||
|
Environment:
|
||||||
|
- Name: ENVIRONMENT_NAME
|
||||||
|
Value: !Ref EnvironmentName
|
||||||
Secrets:
|
Secrets:
|
||||||
- Name: "SQLALCHEMY_DATABASE_URI"
|
- Name: "SQLALCHEMY_DATABASE_URI"
|
||||||
ValueFrom: !Sub "arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/${EnvironmentName}/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:
|
ports:
|
||||||
- "1881:80"
|
- "1881:80"
|
||||||
environment:
|
environment:
|
||||||
- SQLALCHEMY_DATABASE_URI=postgresql://fondberg:@docker.for.mac.localhost/photowall
|
- SQLALCHEMY_DATABASE_URI=postgresql://photowall:photowall@docker.for.mac.localhost/photowall
|
||||||
- API_KEYS=[]
|
- API_KEYS=[]
|
||||||
- DEBUG=True
|
- DEBUG=True
|
||||||
# - SQLALCHEMY_TRACK_MODIFICATIONS=True # change in prestart.sh
|
# - SQLALCHEMY_TRACK_MODIFICATIONS=True # change in prestart.sh
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ Welcome to the documentation for Photowall API 2.
|
|||||||
* [Categories](categories.md)
|
* [Categories](categories.md)
|
||||||
* [Designers](designers.md)
|
* [Designers](designers.md)
|
||||||
* [Prices](prices.md)
|
* [Prices](prices.md)
|
||||||
* [Orders](orders.md)
|
|
||||||
* [Markets](markets.md)
|
* [Markets](markets.md)
|
||||||
|
|
||||||
## Authentication
|
## Authentication
|
||||||
|
|||||||
+2
-17
@@ -1,19 +1,4 @@
|
|||||||
# Orders
|
# Orders
|
||||||
|
|
||||||
## Update pwinty_id
|
## Removed
|
||||||
|
Moved toi photowall php repo
|
||||||
```
|
|
||||||
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'
|
|
||||||
```
|
|
||||||
|
|||||||
Reference in New Issue
Block a user