Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app/api/v1/__init__.py
Original file line number Diff line number Diff line change
@@ -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")
Expand All @@ -10,4 +10,5 @@
api.add_resource(DeliveryOrders, '/parcels')
api.add_resource(DeliveryOrder, '/parcels/<parcelId>')
api.add_resource(DeliveryOrderUpdate, '/parcels/<parcelId>/cancel')
api.add_resource(DeliveryOrderDeliveryUpdate, '/parcels/<parcelId>/change-delivery')
api.add_resource(UserOrders, '/users/<int:userId>/parcels')
11 changes: 11 additions & 0 deletions app/api/v1/models/orders_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
11 changes: 11 additions & 0 deletions app/api/v1/views/orders_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}))