From 0b0e4f99f84f3b41203493ad33822fd9d2c5f880 Mon Sep 17 00:00:00 2001 From: Niklas Fondberg Date: Mon, 31 Jan 2022 10:24:19 +0100 Subject: [PATCH] Remove order model (#45) * Add environment name * Remove orders models --- api/core.py | 4 -- api/models/__init__.py | 8 --- api/models/order.py | 106 -------------------------------- api/resources/order_rows.py | 35 ----------- api/resources/orders.py | 24 -------- cloudformation/ecs-service.yaml | 3 + docker-compose.yml | 2 +- docs/README.md | 1 - docs/orders.md | 19 +----- 9 files changed, 6 insertions(+), 196 deletions(-) delete mode 100644 api/models/order.py delete mode 100644 api/resources/order_rows.py delete mode 100644 api/resources/orders.py diff --git a/api/core.py b/api/core.py index 3ad3c4b..89a1d7f 100644 --- a/api/core.py +++ b/api/core.py @@ -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 diff --git a/api/models/__init__.py b/api/models/__init__.py index 85a5b6c..fffe503 100644 --- a/api/models/__init__.py +++ b/api/models/__init__.py @@ -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 diff --git a/api/models/order.py b/api/models/order.py deleted file mode 100644 index 4d6e0fe..0000000 --- a/api/models/order.py +++ /dev/null @@ -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, - } diff --git a/api/resources/order_rows.py b/api/resources/order_rows.py deleted file mode 100644 index d03c9e0..0000000 --- a/api/resources/order_rows.py +++ /dev/null @@ -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("//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"} - ) diff --git a/api/resources/orders.py b/api/resources/orders.py deleted file mode 100644 index 799dbef..0000000 --- a/api/resources/orders.py +++ /dev/null @@ -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("//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()) diff --git a/cloudformation/ecs-service.yaml b/cloudformation/ecs-service.yaml index be0da06..5123021 100644 --- a/cloudformation/ecs-service.yaml +++ b/cloudformation/ecs-service.yaml @@ -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" diff --git a/docker-compose.yml b/docker-compose.yml index 75ee833..818d0cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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 diff --git a/docs/README.md b/docs/README.md index 894bc7b..ad915b7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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 diff --git a/docs/orders.md b/docs/orders.md index 9d3027a..adff03e 100644 --- a/docs/orders.md +++ b/docs/orders.md @@ -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