2022-12-15 17:29:35 -05:00
|
|
|
from django.urls import path, re_path
|
2022-12-07 19:09:05 -05:00
|
|
|
from .api import api
|
2022-12-15 17:29:35 -05:00
|
|
|
from .views import *
|
2022-12-16 01:08:10 -05:00
|
|
|
from .models import *
|
|
|
|
|
2022-12-24 01:28:24 -05:00
|
|
|
app_name = 'catalog'
|
|
|
|
|
2022-12-16 01:08:10 -05:00
|
|
|
|
|
|
|
def _get_all_url_paths():
|
|
|
|
paths = ['item']
|
|
|
|
for cls in Item.__subclasses__():
|
|
|
|
p = getattr(cls, 'url_path', None)
|
|
|
|
if p:
|
|
|
|
paths.append(p)
|
|
|
|
res = "|".join(paths)
|
|
|
|
return res
|
2022-12-15 17:29:35 -05:00
|
|
|
|
2022-12-07 19:09:05 -05:00
|
|
|
|
|
|
|
urlpatterns = [
|
2022-12-27 14:52:03 -05:00
|
|
|
re_path(r'^item/(?P<item_uid>[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12})?$', retrieve_by_uuid, name='retrieve_by_uuid'),
|
2022-12-24 01:28:24 -05:00
|
|
|
re_path(r'^(?P<item_path>' + _get_all_url_paths() + ')/(?P<item_uuid>[A-Za-z0-9]{21,22})$', retrieve, name='retrieve'),
|
|
|
|
re_path(r'^(?P<item_path>' + _get_all_url_paths() + ')/(?P<item_uuid>[A-Za-z0-9]{21,22})/reviews', review_list, name='review_list'),
|
|
|
|
re_path(r'^(?P<item_path>' + _get_all_url_paths() + ')/(?P<item_uuid>[A-Za-z0-9]{21,22})/marks(?:/(?P<following_only>\\w+))?', mark_list, name='mark_list'),
|
2022-12-16 01:08:10 -05:00
|
|
|
path("api/", api.urls),
|
2022-12-07 19:09:05 -05:00
|
|
|
]
|