Sistema_Gestion_Transporte/project/api/views.py

43 lines
1.3 KiB
Python

import jwt
from django.contrib.auth.models import User
from rest_framework.response import Response
from rest_framework import viewsets
from .serializers import ProjectSerializer, AgencySerializer, RouteSerializer
from .serializers import UserSerializer, AuthSerializer
from .models import Project, Agency, Route
# Create your views here.
class ProjectViewSet(viewsets.ModelViewSet):
queryset = Project.objects.all()
serializer_class = ProjectSerializer
class AgencyViewSet(viewsets.ModelViewSet):
queryset = Agency.objects.all()
serializer_class = AgencySerializer
class RouteViewSet(viewsets.ModelViewSet):
queryset = Route.objects.all()
serializer_class = RouteSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
"""
Metodos de generacion de jwt en forma manual
"""
class AuthViewSet(viewsets.ViewSet):
serializer_class = AuthSerializer
def list(self, request):
return Response()
def create(self, request):
username = request.data.get('username')
user = User.objects.filter(username = username).first()
private_key = 'lapalabrasecreta'
payload = {
'user_id': user.username
}
token = jwt.encode(payload, private_key, algorithm="HS256")
return Response({ 'token': token })