Skip to content

Commit

Permalink
Add new controllers and start work on suggestions endpoint.
Browse files Browse the repository at this point in the history
  • Loading branch information
kodek16 committed Nov 16, 2019
1 parent 1429a5b commit 073e115
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 7 deletions.
19 changes: 15 additions & 4 deletions server/app.py
@@ -1,7 +1,9 @@
import json
from flask import Flask, request
from flask import Flask, abort, request
from flask_restful import Api, Resource
from controllers.challenge import ChallengeController
from controllers.suggestion import SuggestionController
from controllers.product import ProductController

app = Flask(__name__)

Expand Down Expand Up @@ -41,11 +43,20 @@ def post(self):


class ProductSuggestions(Resource):
def get(self):
def get(self, product_id):
try:
pass
session = Session()
product = ProductController().get_product(product_id, session)
if not product:
abort(404)
suggestions = SuggestionController().get_suggestions(
product, session)


except Exception as e:
pass
finally:
session.close()


class Purchase(Resource):
Expand All @@ -58,7 +69,7 @@ def post(self):

api.add_resource(Challenge, '/challenge')
api.add_resource(GreenList, '/greenList')
api.add_resource(ProductSuggestions, '/productSuggestions')
api.add_resource(ProductSuggestions, '/productSuggestions/<product_id>')
api.add_resource(Purchase, '/purchases')

if __name__ == '__main__':
Expand Down
18 changes: 18 additions & 0 deletions server/controllers/product.py
@@ -0,0 +1,18 @@
from model import Product, Session


class ProductController:
def get_product(self, product_id, session=None):
own_session = False
if not session:
session = Session()
own_session = True

product = (session
.query(Product)
.filter(Product.id == product_id)
.first())

if own_session:
session.close()
return product
Expand Up @@ -2,8 +2,11 @@


class SuggestionController:
def get_suggestions(self, product):
session = Session()
def get_suggestions(self, product, session=None):
own_session = False
if not session:
session = Session()
own_session = True

bigger_sizes = (self._session
.query(Product, ProductSize)
Expand All @@ -18,5 +21,6 @@ def get_suggestions(self, product):
.filter(Product.product_id != product.product_id)
.all())

session.close()
if own_session:
session.close()
return bigger_sizes + same_class

0 comments on commit 073e115

Please sign in to comment.