From 71bff808ea2b6d7b3af3078904052da3b8f49a04 Mon Sep 17 00:00:00 2001 From: ipaullly Date: Tue, 6 Nov 2018 01:36:11 +0300 Subject: [PATCH 1/2] [starts 161737424]Create RESTful api directory structure --- .gitignore | 3 +++ app/__init__.py | 8 ++++++++ app/api/__init__.py | 0 app/api/v1/__init__.py | 7 +++++++ app/api/v1/models.py | 0 app/api/v1/views.py | 19 +++++++++++++++++++ requirements.txt | 0 run.py | 3 +++ 8 files changed, 40 insertions(+) create mode 100644 .gitignore create mode 100644 app/__init__.py create mode 100644 app/api/__init__.py create mode 100644 app/api/v1/__init__.py create mode 100644 app/api/v1/models.py create mode 100644 app/api/v1/views.py create mode 100644 requirements.txt create mode 100644 run.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e2d16ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*__pycache__ +venv +.vscode diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..80afb5b --- /dev/null +++ b/app/__init__.py @@ -0,0 +1,8 @@ +from flask import Flask, Blueprint +from .api.v1 import version1 + +def create_app(): + app = Flask(__name__) + app.register_blueprint(version1) + + return app \ No newline at end of file diff --git a/app/api/__init__.py b/app/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/__init__.py b/app/api/v1/__init__.py new file mode 100644 index 0000000..af06015 --- /dev/null +++ b/app/api/v1/__init__.py @@ -0,0 +1,7 @@ +from flask import Blueprint +from flask_restful import Api + + +version1 = Blueprint('v1', __name__, url_prefix="/api/v1") + +api = Api(version1) diff --git a/app/api/v1/models.py b/app/api/v1/models.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/v1/views.py b/app/api/v1/views.py new file mode 100644 index 0000000..2842140 --- /dev/null +++ b/app/api/v1/views.py @@ -0,0 +1,19 @@ +from flask_restful import Resource +from flask import make_response, jsonify, request + + +class ParcelList(Resource): + + def post(self): + pass + + def get(self): + pass + +class IndividualParcel(Resource): + + def get(self, id): + pass + + def put(self, id): + pass \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/run.py b/run.py new file mode 100644 index 0000000..0a23b5a --- /dev/null +++ b/run.py @@ -0,0 +1,3 @@ +from app import create_app + +app = create_app() From ea6da1159b20523d7dbf6807a37df715acfa96c3 Mon Sep 17 00:00:00 2001 From: ipaullly Date: Tue, 6 Nov 2018 02:30:22 +0300 Subject: [PATCH 2/2] [starts #161737782] build model and view for parcels POST api --- app/api/v1/__init__.py | 4 +++- app/api/v1/models.py | 21 +++++++++++++++++++++ app/api/v1/views.py | 18 ++++++++++++++++-- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/app/api/v1/__init__.py b/app/api/v1/__init__.py index af06015..62908e1 100644 --- a/app/api/v1/__init__.py +++ b/app/api/v1/__init__.py @@ -1,7 +1,9 @@ from flask import Blueprint from flask_restful import Api - +from .views import ParcelList version1 = Blueprint('v1', __name__, url_prefix="/api/v1") api = Api(version1) + +api.add_resource(ParcelList, '/parcels') \ No newline at end of file diff --git a/app/api/v1/models.py b/app/api/v1/models.py index e69de29..ca04c2f 100644 --- a/app/api/v1/models.py +++ b/app/api/v1/models.py @@ -0,0 +1,21 @@ + +parcels = [] + +class Parcels: + + def __init__(self): + self.db = parcels + + def create_order(self, item, pickup, dest, pricing): + payload = { + "id" : len(self.db) + 1, + "itemName" : item, + "pickupLocation" : pickup, + "destination" : dest, + "pricing" : pricing + } + self.db.append(payload) + + def order(self): + return self.db + \ No newline at end of file diff --git a/app/api/v1/views.py b/app/api/v1/views.py index 2842140..1ed81bc 100644 --- a/app/api/v1/views.py +++ b/app/api/v1/views.py @@ -1,12 +1,26 @@ from flask_restful import Resource from flask import make_response, jsonify, request +from .models import Parcels -class ParcelList(Resource): +class ParcelList(Resource, Parcels): + + def __init__(self): + self.order = Parcels() def post(self): - pass + data = request.get_json() + item = data['item'] + pickup = data['pickup'] + dest = data['dest'] + pricing = data['pricing'] + + self.order.create_order(item, pickup, dest, pricing) + return make_response(jsonify({ + "message" : "delivery order created successfully" + }), 201) + def get(self): pass