From 2842358aeb958d1b5d1a3d00b27274f1ce755a58 Mon Sep 17 00:00:00 2001
From: Zamil Majdy <z.majdy1996@gmail.com>
Date: Fri, 17 Mar 2017 14:30:45 +0700
Subject: [PATCH] [#140382397] #7 Add so swag~ swagger plugin

---
 kape/settings.py   |  1 +
 kape/urls.py       |  9 +++++++--
 kape/views/user.py | 10 ++++++++++
 requirements.txt   |  3 ++-
 4 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/kape/settings.py b/kape/settings.py
index 510448f6..9e2e86df 100644
--- a/kape/settings.py
+++ b/kape/settings.py
@@ -35,6 +35,7 @@ INSTALLED_APPS = [
     'core',
     'rest_framework',
     'django_nose',
+    'rest_framework_swagger'
 ]
 
 MIDDLEWARE = [
diff --git a/kape/urls.py b/kape/urls.py
index 600d3a4d..cfb46d1b 100644
--- a/kape/urls.py
+++ b/kape/urls.py
@@ -13,17 +13,22 @@ Including another URLconf
     1. Import the include() function: from django.conf.urls import url, include
     2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
 """
-from django.conf.urls import url, include
+from django.conf.urls import include
+from django.conf.urls import url
 from django.contrib import admin
 from rest_framework import routers
+from rest_framework_swagger.views import get_swagger_view
+
 from kape.views.user import UserViewSet
 
+schema_view = get_swagger_view()
 router = routers.DefaultRouter()
 router.register(r'users', UserViewSet)
 
 urlpatterns = [
+    url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework')),
+    url(r'^api/$', schema_view),
     url(r"^api/", include(router.urls)),
     url(r'^admin/', admin.site.urls),
     url(r'', include('core.urls')),
-    url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework'))
 ]
diff --git a/kape/views/user.py b/kape/views/user.py
index d8f82994..e7342905 100644
--- a/kape/views/user.py
+++ b/kape/views/user.py
@@ -1,5 +1,7 @@
 from django.contrib.auth.models import User
 from rest_framework import serializers, viewsets
+from rest_framework.decorators import list_route
+from rest_framework.response import Response
 
 
 # Serializers define the API representation.
@@ -13,3 +15,11 @@ class UserSerializer(serializers.HyperlinkedModelSerializer):
 class UserViewSet(viewsets.ModelViewSet):
     queryset = User.objects.all()
     serializer_class = UserSerializer
+
+    @list_route(methods=['get'])
+    def me(self, request):
+        user = self.request.user
+        serializer = UserSerializer(user, context={"request": request})
+        return Response(serializer.data)
+
+
diff --git a/requirements.txt b/requirements.txt
index aaf64df7..61e714c7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,4 +8,5 @@ pyparsing==2.1.10
 six==1.10.0
 gunicorn
 django-nose
-coverage
\ No newline at end of file
+coverage
+django-rest-swagger
\ No newline at end of file
-- 
GitLab