Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified workshop/api/__pycache__/models.cpython-310.pyc
Binary file not shown.
Binary file added workshop/api/__pycache__/serializers.cpython-310.pyc
Binary file not shown.
Binary file modified workshop/api/__pycache__/urls.cpython-310.pyc
Binary file not shown.
Binary file modified workshop/api/__pycache__/views.cpython-310.pyc
Binary file not shown.
4 changes: 2 additions & 2 deletions workshop/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
# Create your models here
class Task(models.Model):
name = models.CharField(max_length=20)
description = models.TextField(max_length=100)
due_to = models.DateTimeField(blank=True, auto_now=False)
description = models.TextField(max_length=100, blank=True, null=True)
due_to = models.DateTimeField(blank=True, auto_now=False, null=True)
is_completed = models.BooleanField()

def __str__(self):
Expand Down
9 changes: 9 additions & 0 deletions workshop/api/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from rest_framework import serializers
from .models import Task

class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = '__all__'


5 changes: 3 additions & 2 deletions workshop/api/urls.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.urls import path
from .views import BaseView
from .views import TasksView, SingleTaskView

urlpatterns = [
path('', BaseView.as_view())
path('tasks/', TasksView.as_view()),
path('tasks/<id>/', SingleTaskView.as_view())
]
40 changes: 37 additions & 3 deletions workshop/api/views.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,43 @@
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Task
from django.shortcuts import get_object_or_404
from rest_framework import status
from .serializers import TaskSerializer

class BaseView(APIView):
class TasksView(APIView):
def get(self, request):
return Response("Hello World")

tasks = Task.objects.all()
serializer = TaskSerializer(tasks, many=True)
return Response(serializer.data)


def post(self, request):
serializer = TaskSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response({"status": "success", "data": {"note": serializer.data}}, status=status.HTTP_201_CREATED)
else:
return Response({"status": "fail", "message": serializer.errors}, status=status.HTTP_400_BAD_REQUEST)


class SingleTaskView(APIView):
def get(self, request, id):
task = get_object_or_404(Task, pk=id)
serializer = TaskSerializer(task)
return Response(serializer.data)


def put(self, request, id):
task = get_object_or_404(Task, pk=id)
serializer = TaskSerializer(task, data=request.data)
if serializer.is_valid():
serializer.save()
return Response({"status": "success", "data": {"note": serializer.data}}, status=status.HTTP_201_CREATED)
else:
return Response({"status": "fail", "message": serializer.errors}, status=status.HTTP_400_BAD_REQUEST)

def delete(self, request, id):
task = get_object_or_404(Task, pk=id)
task.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
Binary file modified workshop/db.sqlite3
Binary file not shown.