Skip to content

Commit

Permalink
feat(task): start api view
Browse files Browse the repository at this point in the history
  • Loading branch information
radimsuckr committed Nov 30, 2024
1 parent 6423a12 commit 583bc1d
Showing 1 changed file with 39 additions and 34 deletions.
73 changes: 39 additions & 34 deletions comrade/comrade_core/views.py
Original file line number Diff line number Diff line change
@@ -1,40 +1,28 @@
import asyncio
import datetime
import json
import random
from typing import AsyncGenerator, Callable

import redis
from allauth.socialaccount.adapter import (
get_adapter as get_socialaccount_adapter,
)
from allauth.socialaccount.models import SocialApp

from comrade_core.models import Task
from comrade_core.serializers import GroupSerializer, TaskSerializer, UserSerializer
from django.conf import settings
from django.contrib.auth.models import Group, User
from django.http import HttpResponse, StreamingHttpResponse
from allauth.socialaccount.models import SocialApp
from django.contrib.auth import authenticate
from django.shortcuts import render
from django_async_stream import AsyncStreamingHttpResponse
from django_eventstream import send_event
from redis import asyncio as aioredis
from rest_framework import permissions, viewsets
from rest_framework import generics, status
from rest_framework.authtoken.models import Token
from rest_framework.decorators import api_view
from rest_framework.permissions import IsAuthenticated
# from adrf.views import APIView
from rest_framework.renderers import BaseRenderer, JSONRenderer
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.views import APIView

from .serializers import UserDetailSerializer


def index(request):
return render(request, "index.html")


def google(request):
try:
provider = get_socialaccount_adapter().get_provider(
request, "google"
)
provider = get_socialaccount_adapter().get_provider(request, "google")
context = {
"client_id": provider.app.client_id,
}
Expand All @@ -44,11 +32,10 @@ def google(request):
}
return render(request, "google.html", context=context)


def map(request):
return render(request, "map.html")

from rest_framework import generics
from .serializers import UserDetailSerializer

class UserDetailView(generics.RetrieveAPIView):
serializer_class = UserDetailSerializer
Expand All @@ -57,18 +44,36 @@ class UserDetailView(generics.RetrieveAPIView):
def get_object(self):
return self.request.user # Return the currently authenticated user

from django.contrib.auth import authenticate
from rest_framework.response import Response
from rest_framework.authtoken.models import Token
from rest_framework import status
from rest_framework.decorators import api_view

@api_view(['POST'])
@api_view(["POST"])
def login_view(request):
username = request.data.get('username')
password = request.data.get('password')
username = request.data.get("username")
password = request.data.get("password")
user = authenticate(username=username, password=password)
if user is not None:
token, created = Token.objects.get_or_create(user=user)
return Response({'token': token.key}, status=status.HTTP_200_OK)
return Response({'error': 'Invalid Credentials'}, status=status.HTTP_401_UNAUTHORIZED)
return Response({"token": token.key}, status=status.HTTP_200_OK)

return Response(
{"error": "Invalid Credentials"}, status=status.HTTP_401_UNAUTHORIZED
)


# POST /task/{taskId}/start
class MyPostView(APIView):
permission_classes = [IsAuthenticated]

def post(self, request: Request):
taskId = request.query_params["taskId"]
task = None
try:
task = Task.objects.get(pk=taskId)
except Task.DoesNotExist as e:
raise e

task.start(request.user)

return Response(
{"message": "Task started!"},
status=status.HTTP_200_OK,
)

0 comments on commit 583bc1d

Please sign in to comment.