--- a/server/ammico/urls.py Thu Jun 04 20:05:54 2015 +0200
+++ b/server/ammico/urls.py Thu Jun 04 20:07:25 2015 +0200
@@ -1,11 +1,10 @@
from django.conf.urls import patterns, url, include
-from django.views.generic.base import TemplateView
-from ammico.views import ListBooks, InfoBook, ListSlides, InfoSlide, SlidesOrder, PublicBooks
+from ammico.views import ListBooks, InfoBook, ListSlides, InfoSlide, SlidesOrder, PublicBooks, AmmicoView
urlpatterns = patterns('',
- url(r'^$', TemplateView.as_view(template_name="index.html"), name='index'),
+ url(r'^$', AmmicoView.as_view(), name='index'),
url(r'^books$', ListBooks.as_view()),
url(r'^books/(?P<idBook>[0-9]+)$', InfoBook.as_view()),
url(r'^books/(?P<idBook>[0-9]+)/order$', SlidesOrder.as_view()),
--- a/server/ammico/views.py Thu Jun 04 20:05:54 2015 +0200
+++ b/server/ammico/views.py Thu Jun 04 20:07:25 2015 +0200
@@ -5,16 +5,20 @@
from django.contrib.auth import get_user_model
from django.http import HttpResponse
+from django.shortcuts import render
from django.utils.dateparse import parse_datetime
import requests
from rest_framework import status
from rest_framework.authentication import TokenAuthentication
+from rest_framework.authtoken.models import Token
from rest_framework.permissions import IsAuthenticated, AllowAny
from rest_framework.response import Response
from rest_framework.views import APIView
from ammico.models import Book, Slide
-from ammico.serializers import BookSerializer, SlideSerializer
+from ammico.serializers.ammico import BookSerializer, SlideSerializer
+from config import AUTH_JAMESPOT
+import jwt
from settings import URL_JAMESPOT
@@ -64,6 +68,22 @@
'date' : parse_datetime(str(datetime.strptime(step['DATE'] + " " + step['TIME'], "%d/%m/%Y %H:%M:%S")))
}
)
+
+class AmmicoView(APIView):
+ permission_classes = (AllowAny,)
+
+ def get(self, request):
+ key = ''
+ if ('k' in request.GET):
+ payload = jwt.decode(request.GET['k'], AUTH_JAMESPOT, algorithms=['HS256'])
+ if (('email' and 'idUser') in payload):
+ user, _ = User.objects.get_or_create(email = payload['email'], idUser = payload['idUser'])
+ populateVisit(user)
+ token, _ = Token.objects.get_or_create(user=user)
+ key = str(token.key)
+
+ return render(request, 'index.html', {'token': key})
+
class PublicBooks(APIView):
"""
@@ -118,7 +138,6 @@
new_book.id = None
new_book.save()
for i in book.slides.all():
- print (i)
new_slide = deepcopy(i)
new_slide.id = None
new_slide.book = new_book
@@ -132,6 +151,7 @@
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
+
class InfoBook(APIView):
"""
@@ -250,7 +270,6 @@
"""
Add a slide
"""
- print (request.data)
if 'book' in request.data:
try:
book = Book.objects.get(user = request.user.id, id=request.data['book'])
@@ -296,7 +315,6 @@
if (slide.book.idArticle):
return Response(status=status.HTTP_403_FORBIDDEN)
-
serializer = SlideSerializer(slide, data=request.data)
if serializer.is_valid():
serializer.save()