From 8f32ef9a6e3dfbd594d007e7a2a3e6c06f8d443d Mon Sep 17 00:00:00 2001 From: Danhia Date: Thu, 17 Feb 2022 13:09:11 +0100 Subject: [PATCH] excluded the API from the i18n patterns --- src/accounts/urls.py | 1 - src/accounts/views/views.py | 20 -------------------- src/api/__init__.py | 0 src/api/admin.py | 3 +++ src/api/apps.py | 6 ++++++ src/api/migrations/__init__.py | 0 src/api/models.py | 3 +++ src/api/tests.py | 3 +++ src/api/urls.py | 6 ++++++ src/api/views.py | 27 +++++++++++++++++++++++++++ src/project/settings.py | 1 + src/project/urls.py | 1 + 12 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 src/api/__init__.py create mode 100644 src/api/admin.py create mode 100644 src/api/apps.py create mode 100644 src/api/migrations/__init__.py create mode 100644 src/api/models.py create mode 100644 src/api/tests.py create mode 100644 src/api/urls.py create mode 100644 src/api/views.py diff --git a/src/accounts/urls.py b/src/accounts/urls.py index 2ba5a2b..abf5ec9 100644 --- a/src/accounts/urls.py +++ b/src/accounts/urls.py @@ -14,5 +14,4 @@ urlpatterns = [ path('connections/connect/discord/authorize', views.connection.authorize, name='connections-connect-discord-authorize'), path('connections/disconnect/discord', views.connection.disconnect, name='connections-disconnect-discord'), path('delete_account/', views.delete_account, name='delete_account'), - path('api/bot/', views.api_bot, name='api_bot'), ] diff --git a/src/accounts/views/views.py b/src/accounts/views/views.py index f81a05b..ad2dffe 100644 --- a/src/accounts/views/views.py +++ b/src/accounts/views/views.py @@ -182,24 +182,4 @@ def rank(request, token): break rank += 1 data = {"rank": rank} - return JsonResponse(data) - -def api_bot(request): - if request.method != 'GET': - return JsonResponse({'error':'bad request'}) - - token = request.GET.get('token') - auth_token = os.getenv('BOT_TOKEN') - - if (token != auth_token or not auth_token): - return JsonResponse({'error':'not authorized'}) - - all_users = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username') - data = {} - rank = 1 - for user in all_users: - if user.discord_id: - data[user.discord_id] = rank - rank += 1 - return JsonResponse(data) \ No newline at end of file diff --git a/src/api/__init__.py b/src/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/api/admin.py b/src/api/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/src/api/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/src/api/apps.py b/src/api/apps.py new file mode 100644 index 0000000..66656fd --- /dev/null +++ b/src/api/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ApiConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'api' diff --git a/src/api/migrations/__init__.py b/src/api/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/api/models.py b/src/api/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/src/api/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/src/api/tests.py b/src/api/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/src/api/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/api/urls.py b/src/api/urls.py new file mode 100644 index 0000000..2a5ad61 --- /dev/null +++ b/src/api/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('bot/discord', views.discord_bot, name='discord_bot'), +] diff --git a/src/api/views.py b/src/api/views.py new file mode 100644 index 0000000..4e15d74 --- /dev/null +++ b/src/api/views.py @@ -0,0 +1,27 @@ +from django.shortcuts import render +from accounts.models import UserProfileInfo +from django.http import JsonResponse +import os + +# Create your views here. + + +def discord_bot(request): + if request.method != 'GET': + return JsonResponse({'error':'bad request'}) + + token = request.GET.get('token') + auth_token = os.getenv('BOT_TOKEN') + + if (token != auth_token or not auth_token): + return JsonResponse({'error':'not authorized'}) + + all_users = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username') + data = {} + rank = 1 + for user in all_users: + if user.discord_id: + data[user.discord_id] = rank + rank += 1 + + return JsonResponse(data) \ No newline at end of file diff --git a/src/project/settings.py b/src/project/settings.py index 3452bf9..21eb2ce 100644 --- a/src/project/settings.py +++ b/src/project/settings.py @@ -38,6 +38,7 @@ INSTALLED_APPS = [ 'scoreboard.apps.ScoreboardConfig', 'resources.apps.ResourcesConfig', 'django.contrib.sites', + 'api.apps.ApiConfig', ] MIDDLEWARE = [ diff --git a/src/project/urls.py b/src/project/urls.py index 0f70920..a3e30db 100644 --- a/src/project/urls.py +++ b/src/project/urls.py @@ -24,6 +24,7 @@ urlpatterns = [ path('', include('home.urls')), path('set_lang/', home.views.set_language, name="set_language"), path('dashboard/secret/admin', admin.site.urls), + path('api/', include('api.urls')) ] urlpatterns += i18n_patterns(