From c4c1d5a9cbb9a05798795a9d59de17cfe76b6032 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Mon, 10 Jun 2024 15:42:54 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/conf.env | 4 ++++ server/proj/audio/views.py | 17 ++++++++++------- server/proj/conf/settings/base.py | 6 ++++-- 3 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 server/conf.env diff --git a/server/conf.env b/server/conf.env new file mode 100644 index 0000000..fe23e3d --- /dev/null +++ b/server/conf.env @@ -0,0 +1,4 @@ +SECRET_KEY = 'django-insecure-z242=*-knp4h=0l1*o-nyid^y0bwt4bvg3tf*wvr(qszj&!8$c' +API_KEY = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" +DEBUG = True +URL_PROD = http://82.97.242.49:10084 \ No newline at end of file diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index f7aa425..462a111 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -6,6 +6,8 @@ from rest_framework import status from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned from django.shortcuts import get_object_or_404, get_list_or_404 from rest_framework.permissions import IsAuthenticated +from decouple import config +from urllib.parse import urljoin import requests from .schemas import SongSchema, DeleteSongSchema @@ -20,8 +22,11 @@ class SongViewSet(GenericViewSet): } def list(self, request): - songs_pk = FavoriteSong.objects.filter(user=request.user, song__isnull=False).values_list('song_id', flat=True) - queryset = Song.objects.filter(id__in=songs_pk) + try: + songs_pk = FavoriteSong.objects.filter(user=request.user, song__isnull=False).values_list('song_id', flat=True) + queryset = Song.objects.filter(id__in=songs_pk) + except ObjectDoesNotExist: + return Response({"error": 'Объекта не существует'}, status=status.HTTP_404_NOT_FOUND) serializer = SongSerializer(queryset, many=True) return Response(serializer.data) @@ -31,8 +36,6 @@ class SongViewSet(GenericViewSet): queryset = FavoriteSong.objects.get(user=request.user.pk, song=song_obj) except ObjectDoesNotExist: return Response({"error": 'Объекта не существует'}, status=status.HTTP_404_NOT_FOUND) - except MultipleObjectsReturned: - return Response({"error": 'Найдено более одного объекта'}, status=status.HTTP_400_BAD_REQUEST) serializer = FavoriteSongSerializer(queryset) return Response(serializer.data) @@ -48,10 +51,10 @@ class SongViewSet(GenericViewSet): } #Если трека нету в базе else: - file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{request.data['azura_id']}" - api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" + file_url = urljoin(config('URL_PROD'), f'/api/station/it-radio/file/{request.data['azura_id']}') + API_KEY = config('API_KEY') headers = { - "Authorization": f"Bearer {api_key}" + "Authorization": f"Bearer {API_KEY}" } response = requests.get(file_url, headers=headers) data = request.data diff --git a/server/proj/conf/settings/base.py b/server/proj/conf/settings/base.py index 01920ee..a3c2b0e 100644 --- a/server/proj/conf/settings/base.py +++ b/server/proj/conf/settings/base.py @@ -1,5 +1,7 @@ from pathlib import Path import os +from decouple import config + # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent ROOT_DIR = BASE_DIR.parent.parent.parent @@ -14,10 +16,10 @@ MEDIA_URL = 'media/' STATIC_ROOT = PROJECT_DIR / 'static' STATIC_URL = 'static/' # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-z242=*-knp4h=0l1*o-nyid^y0bwt4bvg3tf*wvr(qszj&!8$c' +SECRET_KEY = config('SECRET_KEY') # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = config('DEBUG', cast=bool) ALLOWED_HOSTS = ['*'] CORS_ORIGIN_ALLOW_ALL = True