Commit 20ad550e authored by Daniel W Bond's avatar Daniel W Bond

Merge branch 'issue83' into 'amherst'

Issue83

* Completes issue#83
* Adds public API caching

See merge request !33
parents 2d7bf092 ef4cd46c
......@@ -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')),
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment