openly/backend/api/views.py

46 lines
1.5 KiB
Python

from django.shortcuts import render, get_object_or_404
from rest_framework import status, permissions
from rest_framework.views import APIView
from rest_framework.viewsets import ModelViewSet
from rest_framework.generics import CreateAPIView
from rest_framework.response import Response
from .models import *
from .serializers import *
# Create your views here.
class UserProfileDetail(APIView):
def get(self, request, format=None):
profile = request.user.profile
serializer = ProfileSerializer(profile)
return Response(serializer.data, status=status.HTTP_200_OK)
class UserProfileCreate(CreateAPIView):
model = User
permission_classes = [permissions.AllowAny]
serializer_class = UserCreateSerializer
class EventViewSet(ModelViewSet):
queryset = Event.objects.all()
serializer_class = EventSerializer
class PostDetail(APIView):
def get(self, request, format=None):
profile = request.user.profile
serializer = ProfileSerializer(profile)
return Response(serializer.data, status=status.HTTP_200_OK)
class UserProfileCreate(CreateAPIView):
model = User
permission_classes = [permissions.AllowAny]
serializer_class = UserCreateSerializer
class PostUpvote(APIView):
def post(self, request, format=None):
obj = get_object_or_404(Post, pk=self.kwargs['id'])
user = request.user
if user not in obj.votes.all():
obj.votes.add(user)
return Response(status=status.HTTP_200_OK)