Skip to content
Merged
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
5 changes: 4 additions & 1 deletion app/api/v1/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
from flask import Blueprint
from flask_restful import Api

from .views import ParcelList, IndividualParcel

version1 = Blueprint('v1', __name__, url_prefix="/api/v1")

api = Api(version1)

api.add_resource(ParcelList, '/parcels')
api.add_resource(IndividualParcel, '/parcels/<int:id>')
37 changes: 37 additions & 0 deletions app/api/v1/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

parcels = []

class Parcels:
"""
Class with CRUD functionalities on the Parcels resource
"""
def __init__(self):
self.db = parcels

def create_order(self, item, pickup, dest, pricing):
"""
instance method to generate new entry into delivery orders list
"""
payload = {
"id" : len(self.db) + 1,
"itemName" : item,
"pickupLocation" : pickup,
"destination" : dest,
"pricing" : pricing
}
self.db.append(payload)

def order_list(self):
"""
retrieves entire list of delivery orders
"""
return self.db

def retrieve_single_order(self, parcelID):
"""
retrive a single order by id
"""
order_by_id = [parc for parc in self.db if parc['id'] == parcelID][0]
return order_by_id


48 changes: 42 additions & 6 deletions app/api/v1/views.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,55 @@
from flask_restful import Resource
from flask import make_response, jsonify, request
from .models import Parcels

order = Parcels()

class ParcelList(Resource):

"""
class for Create order and retrieve list of orders API endpoints
"""
def post(self):
pass
"""
post method to add new order to list of orders
"""
data = request.get_json()
item = data['item']
pickup = data['pickup']
dest = data['dest']
pricing = data['pricing']

order.create_order(item, pickup, dest, pricing)
orders = order.db
return make_response(jsonify({
"message" : "delivery order created successfully",
"orders" : orders
}), 201)

def get(self):
pass
"""
get method to retrieve list of all orders
"""
resp = order.order_list()
return make_response(jsonify({
"message" : "ok",
"Delivery Orders" : resp
}), 200)

class IndividualParcel(Resource):

"""
class for API endpoints for retrieving single order and cancelling particular order
"""
def get(self, id):
pass
"""
get method to retrieve order by id
"""
single = order.retrieve_single_order(id)
return make_response(jsonify({
"message" : "Ok",
"order" : single
}), 200)


def put(self, id):
pass
pass