From b12a31651fac81a9467e95d5e4a4f5f50de67615 Mon Sep 17 00:00:00 2001 From: felixfaisal Date: Fri, 21 May 2021 13:21:27 +0530 Subject: [PATCH 1/4] Removed redundant API routes --- backend/API/urls.py | 12 +++++------- backend/API/views.py | 19 ------------------- 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/backend/API/urls.py b/backend/API/urls.py index 8abe56c..8e53d8b 100644 --- a/backend/API/urls.py +++ b/backend/API/urls.py @@ -3,21 +3,19 @@ from . import views urlpatterns = [ - path('oauth2/', views.index, name='index'), path('oauth2/logout/', views.discord_logout, name='logout'), path('oauth2/login/', views.discord_login, name='login'), path('oauth2/login/redirect/', views.discord_login_redirect, name='loginredirect'), - path('api/form/list', views.formlist, name='formlist'), - path('api/responses/', views.responselist, name='responselist'), - path('api/form/create/', views.formcreateresponse, name='formcreateresponse'), + path('api/form/list', views.formlist, name='formlist'), + path('api/form/create/', views.formcreateresponse, name='formcreateresponse'), path('api/form/response/', views.formresponse, name='formresponse'), path('api/user/create/', views.userCreate, name='userCreate'), path('api/user/login/', views.userLogin, name='userLogin'), path('api/user/logout/', views.userLogout, name='userLogout'), - path('api/user/server/', views.userServers, name='userServer'), + path('api/user/server/', views.userServers, name='userServer'), path('api/user/channels/', views.serverChannels, name='serverChannels'), - path('api/user/information', views.userInformation, name='userInformation'), - path('api/bot/forms/', views.botFormList, name='botFormList'), + path('api/user/information', views.userInformation, name='userInformation'), + path('api/bot/forms/', views.botFormList, name='botFormList'), path('api/bot/response/', views.botFormResponse, name='botFormResponse'), path('api/user/dashboard', views.dashboardInformation, name='dashboardInformation'), path('api/bot/form/response/', views.botFormResponseList, name='botFormResponseList'), diff --git a/backend/API/views.py b/backend/API/views.py index fb1bbb1..19df73e 100644 --- a/backend/API/views.py +++ b/backend/API/views.py @@ -58,15 +58,6 @@ def discord_login_redirect(request): # oauth2/login/redirect/ #redirect_url_react = 'http://localhost:3000/dashboard?token='+token.key return redirect('http://localhost:3000?user='+str(token.key)) - -@login_required(login_url='login/') -@api_view(["GET"]) -@authentication_classes([TokenAuthentication]) -def index(request): # oauth2/ - print(request.user) - return JsonResponse("Have false", safe=False) - - @api_view(["GET"]) @authentication_classes([TokenAuthentication]) @permission_classes([IsAuthenticated]) @@ -79,16 +70,6 @@ def formlist(request): # api/form/list return Response("You are not logged in!") - -@api_view(["GET"]) -@authentication_classes([TokenAuthentication]) -def responselist(request): # api/responses/ - print(request.user) - response = FormResponse.objects.all() - serializer = FormResponseSerializer(response, many=True) - return Response(serializer.data) - - @api_view(["GET"]) def formresponse(request, FormName): # api/form/response/ form = FormCreate.objects.get(FormName=FormName, userid=request.user) From 2f5fbba87ca64026baf56f030e0b9aac1ebeec8b Mon Sep 17 00:00:00 2001 From: felixfaisal Date: Fri, 21 May 2021 14:32:27 +0530 Subject: [PATCH 2/4] Inline comments for views --- backend/API/views.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/backend/API/views.py b/backend/API/views.py index 19df73e..f5f865f 100644 --- a/backend/API/views.py +++ b/backend/API/views.py @@ -22,15 +22,16 @@ redirect_url_discord = os.getenv("REDIRECT_URL_DISCORD") +''' Redirects to Discord Login Page ''' def discord_login(request): # oauth2/login/redirect/ return redirect(redirect_url_discord) - +''' Route for logging out ''' def discord_logout(request): # oauth2/logout/ logout(request) return JsonResponse("Succesfully Logged out", safe=False) - +''' Redirect route after discord oauth, Obtains access token to interact with Discord API ''' def discord_login_redirect(request): # oauth2/login/redirect/ code = request.GET.get('code') access_token = getAccessToken(code) @@ -58,6 +59,7 @@ def discord_login_redirect(request): # oauth2/login/redirect/ #redirect_url_react = 'http://localhost:3000/dashboard?token='+token.key return redirect('http://localhost:3000?user='+str(token.key)) +''' Provides list of forms present in the database ''' @api_view(["GET"]) @authentication_classes([TokenAuthentication]) @permission_classes([IsAuthenticated]) @@ -70,6 +72,7 @@ def formlist(request): # api/form/list return Response("You are not logged in!") +''' Provides list of responses made by the user ''' @api_view(["GET"]) def formresponse(request, FormName): # api/form/response/ form = FormCreate.objects.get(FormName=FormName, userid=request.user) @@ -77,7 +80,7 @@ def formresponse(request, FormName): # api/form/response/ serializer = FormResponseSerializer(response, many=True) return Response(serializer.data) - +''' To submit a response to a form ''' @api_view(["POST"]) @authentication_classes([TokenAuthentication]) def formcreateresponse(request): # api/form/create/ @@ -96,7 +99,7 @@ def formcreateresponse(request): # api/form/create/ return Response(serializer.data) - +''' Creating user and storing in the database ''' @api_view(['GET', 'POST']) def userCreate(request): # api/user/create/ access_token = request.data.get('access_token') @@ -109,21 +112,21 @@ def userCreate(request): # api/user/create/ atoken = AccessTokenTable(user=discord_user, access_token=access_token) atoken.save() - +''' Custom logging in feature, It's a hacky mechanism ''' @api_view(['GET', 'POST']) @authentication_classes([TokenAuthentication]) def userLogin(request): # api/user/login/ login = LoginTable.objects.get(user=request.user) return JsonResponse(login.loggedIn, safe=False) - +''' Custom logout feature, Also a hacky mechanism ''' @api_view(['GET', 'POST']) @authentication_classes([TokenAuthentication]) def userLogout(request): # api/user/logout/ login = LoginTable.objects.get(user=request.user) return JsonResponse('False', safe=False) - +''' Fetch user information such as avatar and tag ''' @api_view(['GET', 'POST']) @authentication_classes([TokenAuthentication]) def userInformation(request): # api/user/information @@ -137,7 +140,7 @@ def userInformation(request): # api/user/information } return JsonResponse(jsondata, safe=False) - +''' Fetch all the servers user is a part of ''' @api_view(['GET', 'POST']) @authentication_classes([TokenAuthentication]) def userServers(request): # api/user/server/ @@ -145,7 +148,7 @@ def userServers(request): # api/user/server/ servers = getUserServers(access_token) return Response(servers) - +''' Fetch all the responses made by the user ''' @api_view(['GET', 'POST']) @authentication_classes([TokenAuthentication]) def userResponses(request): # api/user/responses @@ -153,7 +156,7 @@ def userResponses(request): # api/user/responses serializer = UserResponseSerializer(responses, many=True) return Response(serializer.data) - +''' Fetch all the channels present in a selected server''' @api_view(['GET', 'POST']) @authentication_classes([TokenAuthentication]) def serverChannels(request, ServerID): # api/user/channels/ @@ -162,14 +165,14 @@ def serverChannels(request, ServerID): # api/user/channels/ channels = getServerChannels(access_token, ServerID) return Response(channels) - +''' List of forms present in a given server ''' @api_view(['GET', 'POST']) def botFormList(request, serverid): # api/bot/forms/ forms = FormCreate.objects.filter(serverid=serverid) serializer = FormBotCreateSerializer(forms, many=True) return Response(serializer.data) - +''' Submit response to a given form ''' @api_view(['GET', 'POST']) def botFormResponse(request): # api/bot/response/ serializer = FormBotResponseSerializer(data=request.data, many=False) @@ -184,7 +187,7 @@ def botFormResponse(request): # api/bot/response/ print(newformresponse) return Response(serializer.data) - +''' Fetch responses for a given form ''' @api_view(['GET', 'POST']) # api/bot/form/response/ def botFormResponseList(request, FormName): form = FormCreate.objects.get(FormName=FormName) @@ -192,7 +195,7 @@ def botFormResponseList(request, FormName): serializer = FormResponseSerializer(responses, many=True) return Response(serializer.data) - +''' Fetch dashboard information for the frontend ''' @api_view(['GET']) @authentication_classes([TokenAuthentication]) # api/user/dashboard def dashboardInformation(request): From 1064829c4b4e7670848633e979f9727b477cc71f Mon Sep 17 00:00:00 2001 From: felixfaisal Date: Sun, 18 Jul 2021 18:40:21 +0530 Subject: [PATCH 3/4] Added nginx proxy --- backend/API/views.py | 2 +- docker-compose.yml | 10 ++++++++++ nginx/default.conf | 9 +++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 nginx/default.conf diff --git a/backend/API/views.py b/backend/API/views.py index f5f865f..f6387a3 100644 --- a/backend/API/views.py +++ b/backend/API/views.py @@ -57,7 +57,7 @@ def discord_login_redirect(request): # oauth2/login/redirect/ atoken.save() print(token.key) #redirect_url_react = 'http://localhost:3000/dashboard?token='+token.key - return redirect('http://localhost:3000?user='+str(token.key)) + return redirect('http://localhost?user='+str(token.key)) ''' Provides list of forms present in the database ''' @api_view(["GET"]) diff --git a/docker-compose.yml b/docker-compose.yml index 4fd97cc..a157b8d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,16 @@ version: "3.0" services: + web: + image: nginx + ports: + - "80:80" + volumes: + - ./nginx/:/etc/nginx/conf.d + depends_on: + - frontend + - backend + frontend: build: ./frontend ports: diff --git a/nginx/default.conf b/nginx/default.conf new file mode 100644 index 0000000..fe2cd10 --- /dev/null +++ b/nginx/default.conf @@ -0,0 +1,9 @@ +server{ + listen 80; + location / { + proxy_pass http://frontend:3000/; + } + location /api { + proxy_pass http://backend:8000/api; + } +} \ No newline at end of file From c28e70c966b0683fbda5b083318261e09db618bc Mon Sep 17 00:00:00 2001 From: felixfaisal Date: Sun, 18 Jul 2021 19:01:32 +0530 Subject: [PATCH 4/4] Adding more nginx routes replacing previous routes --- frontend/src/Utils/constants.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/Utils/constants.js b/frontend/src/Utils/constants.js index a41421e..cad534a 100644 --- a/frontend/src/Utils/constants.js +++ b/frontend/src/Utils/constants.js @@ -1,6 +1,6 @@ -const BASE_URL = "http://localhost:8000"; +const BASE_URL = "http://localhost:80"; -export const LOGIN_URL = `${BASE_URL}/oauth2/login`; +export const LOGIN_URL = `${BASE_URL}/api/oauth2/login`; export const USER_URL = `${BASE_URL}/api/user`; export const USER_INFORMATION_URL = `${USER_URL}/information`;