Example #1
0
    def put(self):
        """
        Place an order and make a payment.
        ---
        tags:
          - orders
        consumes:
          - application/json
        parameters:
          - in: body
            name: body
            required: true
            description: Json object for an order
            schema:
              type: object
              properties:
                customerEmailAddress:
                  type: string
                  default: [email protected]
                orderItems:
                  type: array
                  items:
                    type: object
                    properties:
                      description:
                        type: string
                        default: Test Item
                      price:
                        type: float
                        default: 10.00
                totalPriceBeforeVat:
                  type: float
                  default: 10.00
                totalVat:
                  type: float
                  default: 2.10
                totalPrice:
                  type: float
                  default: 12.10
        """
        try:
            order = Order(request.get_json())
            order.validate()
        except DataError as e:
            return {'Error': str(e)}, 400

        # Process order
        try:
            order_service = OrdersService()
            order = order_service.create_order(order)
            return {'orderId': order.order_id, 'orderStatus': order.order_status}, 201
        except OrderError:
            return {'Order Failed Reason': 'Error saving order'}, 500
        except Exception as e:
            app.logger.error('Unhandled error: {0}'.format(str(e)))
            return {'Order Failed Reason': 'Unhandled exception'}, 500
Example #2
0
    def __init__(self, data):
        self.order = Order()

        self.order.ws_name = data['ws_name']
        self.order.product_name = data['product_name']
        self.order.sizeNcolor = data['sizeNcolor']
        self.order.updated_time = data['updated_time']
        self.order.created_time = data['created_time']
        self.order.status = data['status']
        self.order.price = data['price']
        self.order.count = data['count']
        self.order.phone = data['phone']
        self.order.oos = data['oos']
        self.order.order_id = data['order_id']
    def save(self, order):
        """
        Save order to database, all orders must be associated with a customer
        :param order: The order to save
        :returns order: Returns the order, with order_id and other meta-data applied
        """

        order = Order(order)

        order_id = str(uuid.uuid4()).upper()[:8]
        order.order_id = order_id
        order.order_date = datetime.now()
        order.order_status = OrderStatus.SUCCESS.name

        try:
            self.orders_table.put_item(Item=order.to_primitive())
        except TypeError as e:
            error_message = "Error occurred attempting to Save order. Exception {0}, Order {1}".format(
                str(e), order.to_primitive()
            )
            raise OrderStoreError(error_message)

        # Get the item which will demonstrate it was successfully created
        return self.get(order.customer_email_address, order.order_id)
Example #4
0
from app.models.orders import Order

order_1 = Order("Steve", "10/03/2021", 3, "Lord of the Rings",
                "Book about hobbits", "J.R.R. Tolkein")
order_2 = Order("Jenny", " 02/02/2021", 1, "Harry Potter", "Book about magic",
                "J.K. Rowling")

orders = [order_1, order_2]