diff --git a/app/api/v1/__init__.py b/app/api/v1/__init__.py index 7998fdb..5929448 100644 --- a/app/api/v1/__init__.py +++ b/app/api/v1/__init__.py @@ -1,6 +1,6 @@ from flask_restful import Api, Resource from flask import Blueprint -from app.api.v1.views.orders_view import DeliveryOrders, DeliveryOrder, DeliveryOrderUpdate +from app.api.v1.views.orders_view import DeliveryOrders, DeliveryOrder, DeliveryOrderUpdate, DeliveryOrderDeliveryUpdate from app.api.v1.views.users_view import UserOrders version1 = Blueprint('sendit', __name__, url_prefix="/api/v1") @@ -10,4 +10,5 @@ api.add_resource(DeliveryOrders, '/parcels') api.add_resource(DeliveryOrder, '/parcels/') api.add_resource(DeliveryOrderUpdate, '/parcels//cancel') +api.add_resource(DeliveryOrderDeliveryUpdate, '/parcels//change-delivery') api.add_resource(UserOrders, '/users//parcels') diff --git a/app/api/v1/models/orders_model.py b/app/api/v1/models/orders_model.py index e20ddd7..036f4e6 100644 --- a/app/api/v1/models/orders_model.py +++ b/app/api/v1/models/orders_model.py @@ -84,6 +84,17 @@ def cancel_order(self, order_id): return result + def change_delivery(self, order_id, delivery_location): + result = {"message": "order unknown"} + + for order in orders: + if order['order no'] == order_id: + order['current location'] = delivery_location + result = order + break + + return result + def get_user_orders(self, user_id): user_orders = [] for order in orders: diff --git a/app/api/v1/views/orders_view.py b/app/api/v1/views/orders_view.py index 4b17d7d..0ca53c7 100644 --- a/app/api/v1/views/orders_view.py +++ b/app/api/v1/views/orders_view.py @@ -52,3 +52,14 @@ def put(self, parcelId): result = self.db.cancel_order(parcelId) return make_response(jsonify({"message": "order " + parcelId + " is canceled!", "Order " + parcelId: result})) + +class DeliveryOrderDeliveryUpdate(Resource, OrdersModel): + + def __init__(self): + self.db = OrdersModel() + + def put(self, parcelId): + data = request.get_json(force=True) + result = self.db.change_delivery(parcelId, data['delivery location']) + + return make_response(jsonify({"message": "order " + parcelId + "Delivery location changed!", "Order " + parcelId: result}))