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
from app.api.v1.views.orders_view import DeliveryOrders, DeliveryOrder, DeliveryOrderUpdate
from app.api.v1.views.users_view import UserOrders

version1 = Blueprint('sendit', __name__, url_prefix="/api/v1")
Expand All @@ -9,4 +9,5 @@

api.add_resource(DeliveryOrders, '/parcels')
api.add_resource(DeliveryOrder, '/parcels/<parcelId>')
api.add_resource(DeliveryOrderUpdate, '/parcels/<parcelId>/cancel')
api.add_resource(UserOrders, '/users/<int:userId>/parcels')
12 changes: 12 additions & 0 deletions app/api/v1/models/orders_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"sender": 1
}]


class OrdersModel(object):

def __init__(self):
Expand Down Expand Up @@ -60,6 +61,17 @@ def get_order(self, order_id):

return result

def cancel_order(self, order_id):
result = {"message": "order unknown"}

for order in orders:
if order['order no'] == order_id:
order['status'] = "canceled"
result = order
break

return result

def get_user_orders(self, user_id):
user_orders = [order for order in orders if order['sender'] == user_id]

Expand Down
15 changes: 15 additions & 0 deletions app/api/v1/views/orders_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,20 @@ def get(self, parcelId):
result = self.db.get_order(parcelId)

return make_response(jsonify(result))

def put(self, parcelId):
result = self.db.cancel_order(parcelId)

return make_response(jsonify(result))

class DeliveryOrderUpdate(Resource, OrdersModel):

def __init__(self):
self.db = OrdersModel()

def put(self, parcelId):
result = self.db.cancel_order(parcelId)

return make_response(jsonify({"message": "order " + parcelId + " is canceled!", "Order " + parcelId: result}))