Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SRCT
roomlist
Commits
20ad550e
Commit
20ad550e
authored
Oct 23, 2016
by
Daniel W Bond
Browse files
Merge branch 'issue83' into 'amherst'
Issue83 * Completes issue#83 * Adds public API caching See merge request
!33
parents
2d7bf092
ef4cd46c
Changes
1
Hide whitespace changes
Inline
Side-by-side
roomlist/api/urls.py
View file @
20ad550e
...
...
@@ -3,6 +3,7 @@ from __future__ import absolute_import, print_function
# core django imports
from
django.conf.urls
import
patterns
,
include
,
url
from
django.views.generic
import
RedirectView
from
django.views.decorators.cache
import
cache_page
# imports from your apps
from
.views
import
BuildingList
,
BuildingRetrieve
,
FloorRetrieve
,
RoomRetrieve
,
\
MajorList
,
MajorRetrieve
,
APIRoot
...
...
@@ -12,24 +13,31 @@ from .views import BuildingList, BuildingRetrieve, FloorRetrieve, RoomRetrieve,\
# API v1
# separate out major and building patterns
building_urls
=
patterns
(
''
,
url
(
r
'^$'
,
BuildingList
.
as_view
(),
name
=
'api_list_buildings'
),
url
(
r
'^(?P<building_name>[\w-]+)/$'
,
BuildingRetrieve
.
as_view
(),
name
=
'api_detail_building'
),
url
(
r
'^$'
,
cache_page
(
60
*
60
)(
BuildingList
.
as_view
()),
name
=
'api_list_buildings'
),
url
(
r
'^(?P<building_name>[\w-]+)/$'
,
cache_page
(
60
*
60
)(
BuildingRetrieve
.
as_view
()),
name
=
'api_detail_building'
),
# the naming here and for floors is a little obnoxious
url
(
r
'^(?P<building__building_name>[\w-]+)/(?P<floor_num>\d+)/$'
,
FloorRetrieve
.
as_view
(),
name
=
'api_detail_floor'
),
url
(
r
'^(?P<building__building_name>[\w-]+)/(?P<floor_num>\d+)/$'
,
cache_page
(
60
*
60
)(
FloorRetrieve
.
as_view
()),
name
=
'api_detail_floor'
),
# list all the floors still?
url
(
r
'^(?P<floor__building__building_name>[\w-]+)/(?P<floor__floor_num>\d+)/(?P<room_num>\d+)/$'
,
RoomRetrieve
.
as_view
(),
name
=
'api_detail_room'
),
url
(
r
'^(?P<floor__building__building_name>[\w-]+)/(?P<floor__floor_num>\d+)/(?P<room_num>\d+)/$'
,
cache_page
(
60
*
60
)(
RoomRetrieve
.
as_view
()),
name
=
'api_detail_room'
),
# list all the rooms still?
)
major_urls
=
patterns
(
''
,
url
(
r
'^$'
,
MajorList
.
as_view
(),
name
=
'api_list_majors'
),
url
(
r
'^(?P<slug>[\w-]+)/$'
,
MajorRetrieve
.
as_view
(),
name
=
'api_detail_major'
),
url
(
r
'^$'
,
cache_page
(
60
*
60
)(
MajorList
.
as_view
()),
name
=
'api_list_majors'
),
url
(
r
'^(?P<slug>[\w-]+)/$'
,
cache_page
(
60
*
60
)(
MajorRetrieve
.
as_view
()),
name
=
'api_detail_major'
),
)
# Added API Caching
urlpatterns
=
patterns
(
''
,
url
(
r
'^v1/housing/'
,
include
(
building_urls
)),
url
(
r
'^v1/majors/'
,
include
(
major_urls
)),
url
(
r
'^v1/$'
,
APIRoot
.
as_view
(),
name
=
'api_root'
),
url
(
r
'^v1/$'
,
cache_page
(
60
*
60
)(
APIRoot
.
as_view
()),
name
=
'api_root'
),
url
(
r
'^$'
,
RedirectView
.
as_view
(
pattern_name
=
'api_root'
)),
)
...
...
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