Commit f320a8d1 by Bill Filler

initial journal REST Api

parent 3ecf35e7
from rest_framework.pagination import PageNumberPagination
class LargeResultsSetPagination(PageNumberPagination):
page_size = 100
"""Journal API Serializers"""
from rest_framework import serializers
from course_discovery.apps.journal.models import Journal
class JournalSerializer(serializers.HyperlinkedModelSerializer):
"""Serializer for the ``Journal`` model."""
price = serializers.DecimalField(
decimal_places=Journal.PRICE_FIELD_CONFIG['decimal_places'],
max_digits=Journal.PRICE_FIELD_CONFIG['max_digits']
)
currency = serializers.SlugRelatedField(read_only=True, slug_field='code')
sku = serializers.CharField()
expires = serializers.DateTimeField()
# @classmethod
#def prefetch_queryset(cls):
# return Journal.objects.all().select_related('currency')
class Meta(object):
model = Journal
# TODO - add partner
fields = ('uuid', 'title', 'price', 'currency', 'sku', 'expires')
"""
Root API URLs.
All API URLs should be versioned, so urlpatterns should only
contain namespaces for the active versions of the API.
"""
from django.conf.urls import include, url
urlpatterns = [
url(r'^v1/', include('course_discovery.apps.journal.api.v1.urls', namespace='v1')),
]
""" API v1 URLs. """
from rest_framework.routers import DefaultRouter
from .views import JournalViewSet
router = DefaultRouter()
router.register(r'journals', JournalViewSet, base_name='journal')
urlpatterns = router.urls
'''JournalViewSet'''
from rest_framework import viewsets
from course_discovery.apps.journal.models import Journal
from course_discovery.apps.journal.api.serializers import JournalSerializer
class JournalViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows journals to be viewed or edited.
"""
queryset = Journal.objects.all()
serializer_class = JournalSerializer
from django.conf.urls import include, url
urlpatterns = [
url(r'^api/', include('course_discovery.apps.journal.api.urls', namespace='api')),
]
......@@ -43,6 +43,7 @@ urlpatterns = auth_urlpatterns + [
url(r'^health/$', core_views.health, name='health'),
url('^$', QueryPreviewView.as_view()),
url(r'^publisher/', include('course_discovery.apps.publisher.urls', namespace='publisher')),
url(r'^journal/', include('course_discovery.apps.journal.urls', namespace='journal')),
url(
r'^publisher/comments/', include(
'course_discovery.apps.publisher_comments.urls', namespace='publisher_comments'
......
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