Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CS123-Canteeneo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Willard Torres
CS123-Canteeneo
Commits
3aacfcdf
Commit
3aacfcdf
authored
Nov 24, 2016
by
Willard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert back to using functions for routes
parent
1bc3b7fe
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
80 additions
and
88 deletions
+80
-88
api.py
canteeneo/api.py
+80
-88
No files found.
canteeneo/api.py
View file @
3aacfcdf
...
...
@@ -93,98 +93,90 @@ def get_auth_token():
token
=
generate_token
(
g
.
user
)
return
jsonify
({
'token'
:
token
.
decode
(
'ascii'
),
'duration'
:
600
})
class
DishFavoriteResource
(
MethodView
):
decorators
=
[
auth
.
login_required
]
def
get
(
self
,
dish_id
):
return
str
(
Dish
.
query
.
get
(
dish_id
)
in
g
.
user
.
dish_favorites
)
def
post
(
self
,
dish_id
):
dish
=
Dish
.
query
.
get
(
dish_id
)
@
app
.
route
(
'/api/dishes/<int:dish_id>/favorites'
,
methods
=
[
'GET'
,
'POST'
])
@
auth
.
login_required
def
dish_favorite
(
dish_id
):
dish
=
Dish
.
query
.
get
(
dish_id
)
if
request
.
method
==
'POST'
:
favorited
=
request
.
form
[
'favorited'
]
==
u'1'
if
dish
not
in
g
.
user
.
dish_
f
avorites
and
favorited
:
g
.
user
.
dish_
f
avorites
.
append
(
dish
)
if
dish
not
in
g
.
user
.
dish_
F
avorites
and
favorited
:
g
.
user
.
dish_
F
avorites
.
append
(
dish
)
elif
dish
in
g
.
user
.
dish_favorites
and
not
favorited
:
g
.
user
.
dish_favorites
.
remove
(
dish
)
db
.
session
.
commit
()
return
str
(
dish
in
g
.
user
.
dish_favorites
)
class
DishReviewResource
(
MethodView
):
decorators
=
[
auth
.
login_required
]
def
get
(
self
,
dish_id
):
review
=
DishReview
.
query
.
filter_by
(
user_id
=
g
.
user
.
id
,
dish_id
=
dish_id
)
.
first
()
print
(
g
.
user
.
id
,
dish_id
)
return
self
.
review_json
(
review
)
def
post
(
self
,
dish_id
):
user_id
=
g
.
user
.
id
title
=
request
.
form
[
'title'
]
body
=
request
.
form
[
'body'
]
rating
=
int
(
request
.
form
[
'rating'
])
review
=
DishReview
(
title
,
body
,
rating
,
user_id
,
dish_id
)
db
.
session
.
add
(
review
)
db
.
session
.
commit
()
return
self
.
review_json
(
review
)
def
review_json
(
self
,
review
):
if
review
is
None
:
return
''
review
=
{
'title'
:
review
.
title
,
'body'
:
review
.
body
,
'rating'
:
review
.
rating
,
'user_id'
:
review
.
user_id
,
'dish_id'
:
review
.
dish_id
}
return
jsonify
(
review
)
class
StallFavoriteResource
(
MethodView
):
decorators
=
[
auth
.
login_required
]
def
get
(
self
,
stall_id
):
return
str
(
Stall
.
query
.
get
(
stall_id
)
in
g
.
user
.
stall_favorites
)
def
post
(
self
,
stall_id
):
stall
=
Stall
.
query
.
get
(
stall_id
)
return
str
(
dish
in
g
.
user
.
dish_favorites
)
@
app
.
route
(
'/api/dishes/<int:dish_id>/reviews'
,
methods
=
[
'POST'
])
@
auth
.
login_required
def
create_dish_review
(
dish_id
):
user_id
=
g
.
user
.
id
title
=
request
.
form
[
'title'
]
body
=
request
.
form
[
'body'
]
rating
=
int
(
request
.
form
[
'rating'
])
review
=
DishReview
(
title
,
body
,
rating
,
user_id
,
dish_id
)
db
.
session
.
add
(
review
)
db
.
session
.
commit
()
return
jsonify
(
review_obj
(
review
))
@
app
.
route
(
'/api/dishes/<int:dish_id>/reviews'
,
methods
=
[
'GET'
])
def
dish_reviews
(
dish_id
):
reviews
=
Dish
.
query
.
get
(
dish_id
)
.
reviews
.
all
()
data
=
[]
for
review
in
reviews
:
data
.
append
(
review_obj
(
review
))
return
jsonify
(
data
)
@
app
.
route
(
'/api/dishes/<int:dish_id>/reviews/<int:review_id>'
,
methods
=
[
'GET'
])
def
dish_review
(
dish_id
,
review_id
):
review
=
Dish
.
query
.
get
(
dish_id
)
.
reviews
.
filter_by
(
id
=
review_id
)
.
first
()
return
jsonify
(
review_obj
(
review
))
@
app
.
route
(
'/api/stalls/<int:stall_id>/favorites'
,
methods
=
[
'GET'
,
'POST'
])
@
auth
.
login_required
def
stall_favorite
(
stall_id
):
stall
=
Stall
.
query
.
get
(
stall_id
)
if
request
.
method
==
'POST'
:
favorited
=
request
.
form
[
'favorited'
]
==
u'1'
if
stall
not
in
g
.
user
.
stall_favorites
and
favorited
:
g
.
user
.
stall_favorites
.
append
(
stall
)
elif
stall
in
g
.
user
.
stall_favorites
and
not
favorited
:
g
.
user
.
stall_favorites
.
remove
(
stall
)
db
.
session
.
commit
()
return
str
(
stall
in
g
.
user
.
stall_favorites
)
class
StallReviewResource
(
MethodView
):
decorators
=
[
auth
.
login_required
]
def
get
(
self
,
stall_id
):
review
=
StallReview
.
query
.
filter_by
(
user_id
=
g
.
user
.
id
,
stall_id
=
stall_id
)
.
first
()
return
self
.
review_json
(
review
)
def
post
(
self
,
stall_id
):
user_id
=
g
.
user
.
id
title
=
request
.
form
[
'title'
]
body
=
request
.
form
[
'body'
]
rating
=
int
(
request
.
form
[
'rating'
])
review
=
StallReview
(
title
,
body
,
rating
,
user_id
,
stall_id
)
db
.
session
.
add
(
review
)
g
.
user
.
stall_favorites
.
append
(
dish
)
elif
dish
in
g
.
user
.
dish_favorites
and
not
favorited
:
g
.
stall
.
stall_favorites
.
remove
(
dish
)
db
.
session
.
commit
()
return
self
.
review_json
(
review
)
def
review_json
(
self
,
review
):
if
review
is
None
:
return
''
review
=
{
'title'
:
review
.
title
,
'body'
:
review
.
body
,
'rating'
:
review
.
rating
,
'user_id'
:
review
.
user_id
,
'dish_id'
:
review
.
dish_id
}
return
jsonify
(
review
)
app
.
add_url_rule
(
'/api/dishes/<int:dish_id>/favorites'
,
view_func
=
DishFavoriteResource
.
as_view
(
'dish_favorite'
))
app
.
add_url_rule
(
'/api/dishes/<int:dish_id>/reviews'
,
view_func
=
DishReviewResource
.
as_view
(
'dish_review'
))
app
.
add_url_rule
(
'/api/stalls/<int:stall_id>/favorites'
,
view_func
=
StallFavoriteResource
.
as_view
(
'stall_favorite'
))
app
.
add_url_rule
(
'/api/stalls/<int:stall_id>/reviews'
,
view_func
=
StallReviewResource
.
as_view
(
'stall_review'
))
\ No newline at end of file
return
str
(
dish
in
g
.
user
.
stall_favorites
)
@
app
.
route
(
'/api/stalls/<int:stall_id>/reviews'
,
methods
=
[
'POST'
])
@
auth
.
login_required
def
create_stall_review
(
stall_id
):
user_id
=
g
.
user
.
id
title
=
request
.
form
[
'title'
]
body
=
request
.
form
[
'body'
]
rating
=
int
(
request
.
form
[
'rating'
])
review
=
StallReview
(
title
,
body
,
rating
,
user_id
,
stall_id
)
db
.
session
.
add
(
review
)
db
.
session
.
commit
()
return
jsonify
(
review_obj
(
review
))
@
app
.
route
(
'/api/stalls/<int:stall_id>/reviews'
,
methods
=
[
'GET'
])
def
stall_reviews
(
stall_id
):
reviews
=
Stall
.
query
.
get
(
stall_id
)
.
reviews
.
all
()
data
=
[]
for
review
in
reviews
:
data
.
append
(
review_obj
(
review
))
return
jsonify
(
data
)
@
app
.
route
(
'/api/stalls/<int:stall_id>/reviews/<int:review_id>'
,
methods
=
[
'GET'
])
def
stall_review
(
stall_id
,
review_id
):
review
=
Stall
.
query
.
get
(
stall_id
)
.
reviews
.
filter_by
(
id
=
review_id
)
.
first
()
return
jsonify
(
review_obj
(
review
))
def
review_obj
(
review
):
if
review
is
None
:
return
''
review
=
{
'title'
:
review
.
title
,
'body'
:
review
.
body
,
'rating'
:
review
.
rating
,
'user_id'
:
review
.
user_id
,
'dish_id'
:
review
.
dish_id
}
return
review
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment