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
13 changes: 13 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
language: python

python:
- "3.6.7"

install:
- pip install -r requirements.txt

script:
- pytest

after_success:
- coveralls
1 change: 1 addition & 0 deletions app/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

def create_app():
app = Flask(__name__)
app.config.from_pyfile('config.py')
app.register_blueprint(v1)

return app
3 changes: 2 additions & 1 deletion app/api/v1/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from flask_restful import Api, Resource
from flask import Blueprint
from app.api.v1.views.orders_view import DeliveryOrders, DeliveryOrder, DeliveryOrderUpdate, DeliveryOrderDeliveryUpdate
from app.api.v1.views.users_view import UserOrders, UserDeliveredOrders
from app.api.v1.views.users_view import UserOrders, UserDeliveredOrders, UserOrdersInTransit

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

Expand All @@ -13,3 +13,4 @@
api.add_resource(DeliveryOrderDeliveryUpdate, '/parcels/<parcelId>/change-delivery')
api.add_resource(UserOrders, '/users/<int:userId>/parcels')
api.add_resource(UserDeliveredOrders, '/users/<int:userId>/delivered')
api.add_resource(UserOrdersInTransit, '/users/<int:userId>/in-transit')
14 changes: 6 additions & 8 deletions app/api/v1/models/orders_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,11 @@ def get_user_orders(self, user_id):
return user_orders

def get_delivered_orders(self, user_id):
user_orders = []
for order in orders:
if order['sender'] == user_id and order['status'] == 'delivered':
for user in self.users:
if user['user id'] == order['sender']:
order['sender'] = user['username']
break
user_orders.append(order)
user_orders = [order for order in orders if (order['sender'] == user_id and order['status'] == 'delivered')]

return len(user_orders)

def get_orders_in_transit(self, user_id):
user_orders = [order for order in orders if (order['sender'] == user_id and order['status'] == 'in transit')]

return len(user_orders)
12 changes: 12 additions & 0 deletions app/api/v1/views/users_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,15 @@ def get(self, userId):
result = self.orders.get_delivered_orders(userId)

return make_response(jsonify({"Delivered orders for " + user['username'] : result}))

class UserOrdersInTransit(Resource, UsersModel, OrdersModel):

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

def get(self, userId):
user = self.db.get_user(userId)
result = self.orders.get_orders_in_transit(userId)

return make_response(jsonify({"Orders in-transit for " + user['username'] : result}))
4 changes: 4 additions & 0 deletions app/config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
class Config(object):
DEBUG = True # Turns on debugging features in Flask
CSRF_ENABLED = True
SECRET_KEY = "mnswalehsentit"
Empty file removed config.py
Empty file.
8 changes: 8 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,15 @@ astroid==2.0.4
atomicwrites==1.2.1
attrs==18.2.0
autopep8==1.4.2
certifi==2018.10.15
chardet==3.0.4
Click==7.0
coverage==4.5.1
coveralls==1.5.1
docopt==0.6.2
Flask==1.0.2
Flask-RESTful==0.3.6
idna==2.7
isort==4.3.4
itsdangerous==1.1.0
Jinja2==2.10
Expand All @@ -19,7 +25,9 @@ pycodestyle==2.4.0
pylint==2.1.1
pytest==3.10.0
pytz==2018.7
requests==2.20.0
six==1.11.0
typed-ast==1.1.0
urllib3==1.24.1
Werkzeug==0.14.1
wrapt==1.10.11