Skip to content

Commit 7dea84c

Browse files
committed
added urls, views and serializers for challenges
1 parent 2a9113a commit 7dea84c

File tree

4 files changed

+47
-2
lines changed

4 files changed

+47
-2
lines changed

api/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
url(admin_root_url, admin.site.urls),
88
url(r'^services/api/', include('accounts.urls')),
99
url(r'^services/api/', include('profile.urls')),
10+
url(r'^services/api/', include('challenges.urls')),
1011
]

challenges/serializers.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from rest_framework_json_api import serializers
2+
from .models import Challenge
3+
from accounts.models import User
4+
from accounts.serializers import UserSerializer
5+
from rest_framework_json_api.relations import ResourceRelatedField
6+
7+
class ChallengeSerializer(serializers.ModelSerializer):
8+
class Meta:
9+
model = Challenge
10+
fields = ('user', 'created_at', 'updated_at', 'title', 'short_title', 'owner', 'difficulty',
11+
'challenge_type', 'priority', 'description', 'short_description',
12+
'extra_points', 'technical_notes', 'procedure', 'code_tips')
13+
14+
included_serializers = {
15+
'user': UserSerializer,
16+
}
17+
18+
user = ResourceRelatedField(
19+
queryset=User.objects
20+
)
21+
22+
class JSONAPIMeta:
23+
included_resources = ['user',]

challenges/urls.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from django.conf.urls import url, include
2+
from . import views
3+
from rest_framework import routers
4+
5+
router = routers.DefaultRouter(trailing_slash=False)
6+
router.register(r'challenges', views.ChallengesViewSet, base_name='Challenges')
7+
8+
urlpatterns = [
9+
url(r'^', include(router.urls)),
10+
]

challenges/views.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1-
from django.shortcuts import render
1+
from rest_framework import viewsets
2+
from .models import Challenge
3+
from .serializers import ChallengeSerializer
24

3-
# Create your views here.
5+
class ChallengesViewSet(viewsets.ModelViewSet):
6+
7+
def get_queryset(self):
8+
queryset = Challenge.objects.all()
9+
pk = self.request.query_params.get('pk', None)
10+
if pk is not None:
11+
queryset = queryset.filter(pk=pk)
12+
return queryset
13+
14+
serializer_class = ChallengeSerializer

0 commit comments

Comments
 (0)