Skip to content

Commit

Permalink
"lecture 11+12"
Browse files Browse the repository at this point in the history
  • Loading branch information
mdhayath64 committed Jul 11, 2023
1 parent bc8060a commit 7ae1a25
Show file tree
Hide file tree
Showing 17 changed files with 3,057 additions and 5,529 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
Read+Django/music_app/music_controller/frontend/node_modules/
Read+Django/music_app/music_controller/frontend/static/frontend/main.js
Read+Django/music_app/music_controller/frontend/static/frontend/main.js.LICENSE.txt
Read+Django/music_app/music_controller/api/__pycache__
Read+Django/music_app/music_controller/music_controller/__pycache__

1 change: 1 addition & 0 deletions Read+Django/References.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ npm install @material-ui/core --force
npm install @babel/plugin-proposal-class-properties --force
npm install react-router-dom --force
npm install @material-ui/icons --force
npm install @material-ui/lab


************TO start the react engine
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
7 changes: 7 additions & 0 deletions Read+Django/music_app/music_controller/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,10 @@ class CreateRoomSerializer(serializers.ModelSerializer):
class Meta:
model = Room
fields = ('guest_can_pause', 'votes_to_skip')

class UpdateRoomSerializer(serializers.ModelSerializer):
code = serializers.CharField(validators=[])

class Meta:
model = Room
fields = ('guest_can_pause', 'votes_to_skip', 'code')
7 changes: 5 additions & 2 deletions Read+Django/music_app/music_controller/api/urls.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
from django.urls import path
from .views import RoomView, CreateRoomView, GetRoom, JoinRoom
from .views import RoomView, CreateRoomView, GetRoom, JoinRoom, UserInRoom, LeaveRoom, UpdateRoom

urlpatterns = [
path('room', RoomView.as_view()),
path('create-room', CreateRoomView.as_view()),
path('get-room', GetRoom.as_view()),
path('join-room', JoinRoom.as_view())
path('join-room', JoinRoom.as_view()),
path('user-in-room', UserInRoom.as_view()),
path('leave-room', LeaveRoom.as_view()),
path('update-room', UpdateRoom.as_view()),
]
53 changes: 51 additions & 2 deletions Read+Django/music_app/music_controller/api/views.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from django.shortcuts import render
from rest_framework import generics, status
from .serializers import RoomSerializer, CreateRoomSerializer
from .serializers import RoomSerializer, CreateRoomSerializer, UpdateRoomSerializer
from .models import Room
from rest_framework.views import APIView
from rest_framework.response import Response
from django.http import JsonResponse

# Create your views here.
class RoomView(generics.ListAPIView):
Expand Down Expand Up @@ -68,4 +69,52 @@ def post(self, request, format=None):

return Response({'Bad Request': 'Invaled Data...'}, status=status.HTTP_400_BAD_REQUEST)


class UserInRoom(APIView):
def get(self, request, format=None):
if not self.request.session.exists(self.request.session.session_key):
self.request.session.create()

data = {
'code': self.request.session.get('room_code')
}
return JsonResponse(data, status=status.HTTP_200_OK)

class LeaveRoom(APIView) :
def post(self, request, format=None):
if 'room_code' in self.request.session:
self.request.session.pop('room_code')
host_id = self.request.session.session_key
room_results = Room.objects.filter(host=host_id)
if len(room_results) > 0:
room = room_results[0]
room.delete()

return Response({ 'Message': 'Success'}, status=status.HTTP_200_OK)


class UpdateRoom(APIView):
serializer_class = UpdateRoomSerializer
def patch(self, request, format=None):
serializer = self.serializer_class(data=request.data)

if serializer.is_valid():
guest_can_pause = serializer.data.get('guest_can_pause')
votes_to_skip = serializer.data.get('votes_to_skip')
code = serializer.data.get('code')

queryset = Room.objects.filter(code=code)
if not queryset.exists():
return Response({'messsage': 'Room not found.'}, status=status.HTTP_404_NOT_FOUND)

room = queryset[0]
user_id = self.request.session.session_key

if room.host != user_id:
return Response({'message': 'you are not the host.'}, status=status.HTTP_403_FORBIDDEN)

room.guest_can_pause = guest_can_pause
room.votes_to_skip = votes_to_skip
room.save(update_fields=['guest_can_pause','votes_to_skip'])
return Response(RoomSerializer(room).data,status=status.HTTP_200_OK)

return Response({'Bad Request':"Invalid Data....."},status=status.HTTP_400_BAD_REQUEST)
Binary file modified Read+Django/music_app/music_controller/db.sqlite3
Binary file not shown.
108 changes: 0 additions & 108 deletions Read+Django/music_app/music_controller/frontend/dist/main.js

This file was deleted.

Loading

0 comments on commit 7ae1a25

Please sign in to comment.