diff --git a/account/__pycache__/models.cpython-36.pyc b/account/__pycache__/models.cpython-36.pyc deleted file mode 100644 index e891508..0000000 Binary files a/account/__pycache__/models.cpython-36.pyc and /dev/null differ diff --git a/account/migrations/__pycache__/__init__.cpython-36.pyc b/account/migrations/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index 34563f6..0000000 Binary files a/account/migrations/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/album/migrations/0001_initial.py b/album/migrations/0001_initial.py deleted file mode 100644 index 7e3db98..0000000 --- a/album/migrations/0001_initial.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.0.7 on 2020-06-17 12:26 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('account', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Album', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=255)), - ('description', models.CharField(max_length=255)), - ('image', models.TextField()), - ('url_code', models.CharField(max_length=255)), - ('user', models.ManyToManyField(to='account.Account')), - ], - ), - ] diff --git a/album/migrations/__pycache__/0001_initial.cpython-36.pyc b/album/migrations/__pycache__/0001_initial.cpython-36.pyc deleted file mode 100644 index ee62ff1..0000000 Binary files a/album/migrations/__pycache__/0001_initial.cpython-36.pyc and /dev/null differ diff --git a/album/migrations/__pycache__/__init__.cpython-36.pyc b/album/migrations/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index 53294ff..0000000 Binary files a/album/migrations/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/comment/migrations/0001_initial.py b/comment/migrations/0001_initial.py deleted file mode 100644 index 44c6bf7..0000000 --- a/comment/migrations/0001_initial.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 3.0.7 on 2020-06-17 12:26 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('account', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='UserComment', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('text', models.CharField(max_length=255)), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Account')), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='GuestComment', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('text', models.CharField(max_length=255)), - ('guest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Guest')), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/comment/migrations/__pycache__/0001_initial.cpython-36.pyc b/comment/migrations/__pycache__/0001_initial.cpython-36.pyc deleted file mode 100644 index 0f24819..0000000 Binary files a/comment/migrations/__pycache__/0001_initial.cpython-36.pyc and /dev/null differ diff --git a/comment/migrations/__pycache__/__init__.cpython-36.pyc b/comment/migrations/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index 0c497f5..0000000 Binary files a/comment/migrations/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/migrate.sh b/migrate.sh new file mode 100755 index 0000000..a7bb1ff --- /dev/null +++ b/migrate.sh @@ -0,0 +1,2 @@ +python manage.py makemigrations +python manage.py migrate \ No newline at end of file diff --git a/packages.sh b/packages.sh index 90d8ee7..33bbc06 100644 --- a/packages.sh +++ b/packages.sh @@ -1,7 +1,6 @@ pip install django pip install djangorestframework pip install django-filter -pip install django-rest-swagger pip install django-enumfield pip install pyjwt pip install markdown diff --git a/playlist/migrations/0001_initial.py b/playlist/migrations/0001_initial.py deleted file mode 100644 index 6481787..0000000 --- a/playlist/migrations/0001_initial.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.0.7 on 2020-06-17 12:26 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('song', '0001_initial'), - ('account', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Playlist', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=255)), - ('song', models.ManyToManyField(to='song.Song')), - ('user', models.ManyToManyField(to='account.Account')), - ], - ), - ] diff --git a/playlist/migrations/__pycache__/0001_initial.cpython-36.pyc b/playlist/migrations/__pycache__/0001_initial.cpython-36.pyc deleted file mode 100644 index 702606e..0000000 Binary files a/playlist/migrations/__pycache__/0001_initial.cpython-36.pyc and /dev/null differ diff --git a/playlist/migrations/__pycache__/__init__.cpython-36.pyc b/playlist/migrations/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index 6386126..0000000 Binary files a/playlist/migrations/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/portfolio/__pycache__/settings.cpython-36.pyc b/portfolio/__pycache__/settings.cpython-36.pyc index 1f4600b..9c26ff9 100644 Binary files a/portfolio/__pycache__/settings.cpython-36.pyc and b/portfolio/__pycache__/settings.cpython-36.pyc differ diff --git a/portfolio/__pycache__/urls.cpython-36.pyc b/portfolio/__pycache__/urls.cpython-36.pyc index 2ba2f6d..f9a272a 100644 Binary files a/portfolio/__pycache__/urls.cpython-36.pyc and b/portfolio/__pycache__/urls.cpython-36.pyc differ diff --git a/account/__init__.py b/portfolio/account/__init__.py similarity index 100% rename from account/__init__.py rename to portfolio/account/__init__.py diff --git a/account/__pycache__/__init__.cpython-36.pyc b/portfolio/account/__pycache__/__init__.cpython-36.pyc similarity index 100% rename from account/__pycache__/__init__.cpython-36.pyc rename to portfolio/account/__pycache__/__init__.cpython-36.pyc diff --git a/account/__pycache__/admin.cpython-36.pyc b/portfolio/account/__pycache__/admin.cpython-36.pyc similarity index 100% rename from account/__pycache__/admin.cpython-36.pyc rename to portfolio/account/__pycache__/admin.cpython-36.pyc diff --git a/portfolio/account/__pycache__/models.cpython-36.pyc b/portfolio/account/__pycache__/models.cpython-36.pyc new file mode 100644 index 0000000..89e037e Binary files /dev/null and b/portfolio/account/__pycache__/models.cpython-36.pyc differ diff --git a/portfolio/account/__pycache__/serializers.cpython-36.pyc b/portfolio/account/__pycache__/serializers.cpython-36.pyc new file mode 100644 index 0000000..1213bb2 Binary files /dev/null and b/portfolio/account/__pycache__/serializers.cpython-36.pyc differ diff --git a/portfolio/account/__pycache__/views.cpython-36.pyc b/portfolio/account/__pycache__/views.cpython-36.pyc new file mode 100644 index 0000000..f88df5e Binary files /dev/null and b/portfolio/account/__pycache__/views.cpython-36.pyc differ diff --git a/account/admin.py b/portfolio/account/admin.py similarity index 100% rename from account/admin.py rename to portfolio/account/admin.py diff --git a/account/apps.py b/portfolio/account/apps.py similarity index 100% rename from account/apps.py rename to portfolio/account/apps.py diff --git a/account/migrations/__init__.py b/portfolio/account/migrations/__init__.py similarity index 100% rename from account/migrations/__init__.py rename to portfolio/account/migrations/__init__.py diff --git a/account/models.py b/portfolio/account/models.py similarity index 58% rename from account/models.py rename to portfolio/account/models.py index 3dbece1..f00d2bf 100644 --- a/account/models.py +++ b/portfolio/account/models.py @@ -22,27 +22,42 @@ class AbstractUser(models.Model): class Account(User, AbstractUser): - def register(username, email, password): - if Account.objects.get(username = username) is None and Account.objects.get(email = email) is None: - Account.objects.create_user(username, email, password) - return Response(f'Account created: ') + @staticmethod + def register(userDict) -> object: + account = Account.objects.create_user( + userDict['username'], + userDict['email'], + userDict['password'], + ) + account.ip = userDict['ip'] + account.city = userDict['city'], + account.country = userDict['country'] + account.save() + return account - def login(username, password) -> dict: + def login(self, username, password) -> dict: tryLogin = authenticate(username = username, password = password) if tryLogin is not None: user = Account.objects.get(username = username) token = Token.objects.create(user = user) return token.__dict__ else: - return { error: 'login failed'} + return { 'error': 'login failed'} - def logout(): + def logout(self): pass def update(self, userDict): + if 'password' in userDict: + password = userDict.pop('password') + self.set_password(password) self.fromDict(userDict) - self.save + self.save() + + def set_password(self, raw_password): + return super().set_password(raw_password) class Guest(AbstractUser): - pass \ No newline at end of file + pass + diff --git a/portfolio/account/serializers.py b/portfolio/account/serializers.py new file mode 100644 index 0000000..58a09a6 --- /dev/null +++ b/portfolio/account/serializers.py @@ -0,0 +1,43 @@ +from .models import Account, Guest +from rest_framework import serializers + +from django.core.paginator import Paginator +from django.http import JsonResponse + + +class AccountGetSerializer(serializers.ModelSerializer): + id = serializers.IntegerField(read_only = True) + username = serializers.CharField(max_length = 100) + email = serializers.EmailField() + ip = serializers.CharField(max_length = 12) + city = serializers.CharField(max_length = 255) + country = serializers.CharField(max_length = 255) + + class Meta: + model = Account + fields = ['id', 'username', 'email', 'ip', 'city', 'country'] + + +class AccountSerializer(AccountGetSerializer): + password = serializers.CharField(max_length = 100) + + def create(self, validated_data): + return Account.register(validated_data) + + def update(self, instance, validated_data): + return instance.update(instance, **validated_data) + + class Meta: + model = Account + fields = ['id', 'username', 'password', 'email', 'ip', 'city', 'country'] + + +class GuestSerializer(serializers.HyperlinkedModelSerializer): + id = serializers.IntegerField(read_only = True) + ip = serializers.CharField(max_length = 12) + city = serializers.CharField(max_length = 255) + country = serializers.CharField(max_length = 255) + + class Meta: + model = Guest + fields = ['id', 'ip', 'city', 'country'] \ No newline at end of file diff --git a/account/tests.py b/portfolio/account/tests.py similarity index 100% rename from account/tests.py rename to portfolio/account/tests.py diff --git a/portfolio/account/views.py b/portfolio/account/views.py new file mode 100644 index 0000000..fab2df6 --- /dev/null +++ b/portfolio/account/views.py @@ -0,0 +1,46 @@ +from rest_framework import viewsets +from rest_framework.views import APIView +from rest_framework.decorators import action +from rest_framework import mixins +from rest_framework.response import Response + +from drf_yasg import openapi +from drf_yasg.utils import swagger_auto_schema + +from django.core.paginator import Paginator +from django.http import JsonResponse +from django.shortcuts import get_object_or_404 + +from .models import Account, Guest +from .serializers import AccountSerializer, GuestSerializer, AccountGetSerializer + + +class AccountViewSet(viewsets.ModelViewSet): + + queryset = Account.objects.all() + serializer_class = AccountSerializer + + @swagger_auto_schema(responses={ 200: AccountGetSerializer }) + def retrieve(self, request, pk=None): + print(pk) + account = get_object_or_404(self.queryset, pk=pk) + serializer = AccountGetSerializer(account) + return Response(serializer.data) + + @swagger_auto_schema(responses={ 200: AccountGetSerializer }) + def list(self, request, *args, **kwargs): + serializer = AccountGetSerializer(self.queryset, many=True) + return Response(serializer.data) + + +class GuestViewSet(viewsets.ModelViewSet): + queryset = Guest.objects.all() + serializer_class = GuestSerializer + + + + +# @swagger_auto_schema(request_body = AccountSerializer, responses = { + # 200: openapi.Response("OK", schema = AccountSerializer), + # 400: openapi.Response("Empty") + # }) diff --git a/album/__init__.py b/portfolio/album/__init__.py similarity index 100% rename from album/__init__.py rename to portfolio/album/__init__.py diff --git a/album/__pycache__/__init__.cpython-36.pyc b/portfolio/album/__pycache__/__init__.cpython-36.pyc similarity index 100% rename from album/__pycache__/__init__.cpython-36.pyc rename to portfolio/album/__pycache__/__init__.cpython-36.pyc diff --git a/album/__pycache__/admin.cpython-36.pyc b/portfolio/album/__pycache__/admin.cpython-36.pyc similarity index 100% rename from album/__pycache__/admin.cpython-36.pyc rename to portfolio/album/__pycache__/admin.cpython-36.pyc diff --git a/album/__pycache__/models.cpython-36.pyc b/portfolio/album/__pycache__/models.cpython-36.pyc similarity index 100% rename from album/__pycache__/models.cpython-36.pyc rename to portfolio/album/__pycache__/models.cpython-36.pyc diff --git a/album/admin.py b/portfolio/album/admin.py similarity index 100% rename from album/admin.py rename to portfolio/album/admin.py diff --git a/album/apps.py b/portfolio/album/apps.py similarity index 100% rename from album/apps.py rename to portfolio/album/apps.py diff --git a/album/migrations/__init__.py b/portfolio/album/migrations/__init__.py similarity index 100% rename from album/migrations/__init__.py rename to portfolio/album/migrations/__init__.py diff --git a/album/models.py b/portfolio/album/models.py similarity index 100% rename from album/models.py rename to portfolio/album/models.py diff --git a/album/tests.py b/portfolio/album/tests.py similarity index 100% rename from album/tests.py rename to portfolio/album/tests.py diff --git a/account/views.py b/portfolio/album/views.py similarity index 100% rename from account/views.py rename to portfolio/album/views.py diff --git a/comment/__init__.py b/portfolio/comment/__init__.py similarity index 100% rename from comment/__init__.py rename to portfolio/comment/__init__.py diff --git a/comment/__pycache__/__init__.cpython-36.pyc b/portfolio/comment/__pycache__/__init__.cpython-36.pyc similarity index 100% rename from comment/__pycache__/__init__.cpython-36.pyc rename to portfolio/comment/__pycache__/__init__.cpython-36.pyc diff --git a/comment/__pycache__/admin.cpython-36.pyc b/portfolio/comment/__pycache__/admin.cpython-36.pyc similarity index 100% rename from comment/__pycache__/admin.cpython-36.pyc rename to portfolio/comment/__pycache__/admin.cpython-36.pyc diff --git a/comment/__pycache__/models.cpython-36.pyc b/portfolio/comment/__pycache__/models.cpython-36.pyc similarity index 100% rename from comment/__pycache__/models.cpython-36.pyc rename to portfolio/comment/__pycache__/models.cpython-36.pyc diff --git a/comment/admin.py b/portfolio/comment/admin.py similarity index 100% rename from comment/admin.py rename to portfolio/comment/admin.py diff --git a/comment/apps.py b/portfolio/comment/apps.py similarity index 100% rename from comment/apps.py rename to portfolio/comment/apps.py diff --git a/comment/migrations/__init__.py b/portfolio/comment/migrations/__init__.py similarity index 100% rename from comment/migrations/__init__.py rename to portfolio/comment/migrations/__init__.py diff --git a/comment/models.py b/portfolio/comment/models.py similarity index 100% rename from comment/models.py rename to portfolio/comment/models.py diff --git a/comment/tests.py b/portfolio/comment/tests.py similarity index 100% rename from comment/tests.py rename to portfolio/comment/tests.py diff --git a/album/views.py b/portfolio/comment/views.py similarity index 100% rename from album/views.py rename to portfolio/comment/views.py diff --git a/account/migrations/0001_initial.py b/portfolio/migrations/0001_initial.py similarity index 97% rename from account/migrations/0001_initial.py rename to portfolio/migrations/0001_initial.py index fe2706a..ba702d5 100644 --- a/account/migrations/0001_initial.py +++ b/portfolio/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.0.7 on 2020-06-17 12:26 +# Generated by Django 3.0.7 on 2020-06-18 17:25 from django.conf import settings import django.contrib.auth.models diff --git a/playlist/__init__.py b/portfolio/migrations/__init__.py similarity index 100% rename from playlist/__init__.py rename to portfolio/migrations/__init__.py diff --git a/account/migrations/__pycache__/0001_initial.cpython-36.pyc b/portfolio/migrations/__pycache__/0001_initial.cpython-36.pyc similarity index 70% rename from account/migrations/__pycache__/0001_initial.cpython-36.pyc rename to portfolio/migrations/__pycache__/0001_initial.cpython-36.pyc index 2b4942d..6b448c6 100644 Binary files a/account/migrations/__pycache__/0001_initial.cpython-36.pyc and b/portfolio/migrations/__pycache__/0001_initial.cpython-36.pyc differ diff --git a/portfolio/migrations/__pycache__/__init__.cpython-36.pyc b/portfolio/migrations/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..cc283e1 Binary files /dev/null and b/portfolio/migrations/__pycache__/__init__.cpython-36.pyc differ diff --git a/playlist/migrations/__init__.py b/portfolio/playlist/__init__.py similarity index 100% rename from playlist/migrations/__init__.py rename to portfolio/playlist/__init__.py diff --git a/playlist/__pycache__/__init__.cpython-36.pyc b/portfolio/playlist/__pycache__/__init__.cpython-36.pyc similarity index 100% rename from playlist/__pycache__/__init__.cpython-36.pyc rename to portfolio/playlist/__pycache__/__init__.cpython-36.pyc diff --git a/playlist/__pycache__/admin.cpython-36.pyc b/portfolio/playlist/__pycache__/admin.cpython-36.pyc similarity index 100% rename from playlist/__pycache__/admin.cpython-36.pyc rename to portfolio/playlist/__pycache__/admin.cpython-36.pyc diff --git a/playlist/__pycache__/models.cpython-36.pyc b/portfolio/playlist/__pycache__/models.cpython-36.pyc similarity index 100% rename from playlist/__pycache__/models.cpython-36.pyc rename to portfolio/playlist/__pycache__/models.cpython-36.pyc diff --git a/playlist/admin.py b/portfolio/playlist/admin.py similarity index 100% rename from playlist/admin.py rename to portfolio/playlist/admin.py diff --git a/playlist/apps.py b/portfolio/playlist/apps.py similarity index 100% rename from playlist/apps.py rename to portfolio/playlist/apps.py diff --git a/rating/__init__.py b/portfolio/playlist/migrations/__init__.py similarity index 100% rename from rating/__init__.py rename to portfolio/playlist/migrations/__init__.py diff --git a/playlist/models.py b/portfolio/playlist/models.py similarity index 100% rename from playlist/models.py rename to portfolio/playlist/models.py diff --git a/playlist/tests.py b/portfolio/playlist/tests.py similarity index 100% rename from playlist/tests.py rename to portfolio/playlist/tests.py diff --git a/comment/views.py b/portfolio/playlist/views.py similarity index 100% rename from comment/views.py rename to portfolio/playlist/views.py diff --git a/rating/migrations/__init__.py b/portfolio/rating/__init__.py similarity index 100% rename from rating/migrations/__init__.py rename to portfolio/rating/__init__.py diff --git a/rating/__pycache__/__init__.cpython-36.pyc b/portfolio/rating/__pycache__/__init__.cpython-36.pyc similarity index 100% rename from rating/__pycache__/__init__.cpython-36.pyc rename to portfolio/rating/__pycache__/__init__.cpython-36.pyc diff --git a/rating/__pycache__/admin.cpython-36.pyc b/portfolio/rating/__pycache__/admin.cpython-36.pyc similarity index 100% rename from rating/__pycache__/admin.cpython-36.pyc rename to portfolio/rating/__pycache__/admin.cpython-36.pyc diff --git a/rating/__pycache__/models.cpython-36.pyc b/portfolio/rating/__pycache__/models.cpython-36.pyc similarity index 100% rename from rating/__pycache__/models.cpython-36.pyc rename to portfolio/rating/__pycache__/models.cpython-36.pyc diff --git a/rating/admin.py b/portfolio/rating/admin.py similarity index 100% rename from rating/admin.py rename to portfolio/rating/admin.py diff --git a/rating/apps.py b/portfolio/rating/apps.py similarity index 100% rename from rating/apps.py rename to portfolio/rating/apps.py diff --git a/song/__init__.py b/portfolio/rating/migrations/__init__.py similarity index 100% rename from song/__init__.py rename to portfolio/rating/migrations/__init__.py diff --git a/rating/models.py b/portfolio/rating/models.py similarity index 100% rename from rating/models.py rename to portfolio/rating/models.py diff --git a/rating/tests.py b/portfolio/rating/tests.py similarity index 100% rename from rating/tests.py rename to portfolio/rating/tests.py diff --git a/playlist/views.py b/portfolio/rating/views.py similarity index 100% rename from playlist/views.py rename to portfolio/rating/views.py diff --git a/portfolio/settings.py b/portfolio/settings.py index 9e030a6..baee004 100644 --- a/portfolio/settings.py +++ b/portfolio/settings.py @@ -38,15 +38,9 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', - 'rest_framework_swagger', + 'drf_yasg', 'rest_framework.authtoken', - 'account', - 'album', - 'comment', - 'playlist', 'portfolio', - 'rating', - 'song' ] MIDDLEWARE = [ @@ -140,3 +134,15 @@ USE_TZ = True # https://docs.djangoproject.com/en/3.0/howto/static-files/ STATIC_URL = '/static/' +STATIC_ROOT = os.path.join(BASE_DIR, 'static') + +SWAGGER_SETTINGS = { + 'JSON_EDITOR': True, + 'SECURITY_DEFINITIONS': { + 'Bearer': { + 'type': 'apiKey', + 'name': 'Authorization', + 'in': 'header' + } + } +} diff --git a/song/migrations/__init__.py b/portfolio/song/__init__.py similarity index 100% rename from song/migrations/__init__.py rename to portfolio/song/__init__.py diff --git a/song/__pycache__/__init__.cpython-36.pyc b/portfolio/song/__pycache__/__init__.cpython-36.pyc similarity index 100% rename from song/__pycache__/__init__.cpython-36.pyc rename to portfolio/song/__pycache__/__init__.cpython-36.pyc diff --git a/song/__pycache__/admin.cpython-36.pyc b/portfolio/song/__pycache__/admin.cpython-36.pyc similarity index 100% rename from song/__pycache__/admin.cpython-36.pyc rename to portfolio/song/__pycache__/admin.cpython-36.pyc diff --git a/song/__pycache__/models.cpython-36.pyc b/portfolio/song/__pycache__/models.cpython-36.pyc similarity index 100% rename from song/__pycache__/models.cpython-36.pyc rename to portfolio/song/__pycache__/models.cpython-36.pyc diff --git a/song/admin.py b/portfolio/song/admin.py similarity index 100% rename from song/admin.py rename to portfolio/song/admin.py diff --git a/song/apps.py b/portfolio/song/apps.py similarity index 100% rename from song/apps.py rename to portfolio/song/apps.py diff --git a/portfolio/song/migrations/__init__.py b/portfolio/song/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/song/models.py b/portfolio/song/models.py similarity index 100% rename from song/models.py rename to portfolio/song/models.py diff --git a/song/tests.py b/portfolio/song/tests.py similarity index 100% rename from song/tests.py rename to portfolio/song/tests.py diff --git a/rating/views.py b/portfolio/song/views.py similarity index 100% rename from rating/views.py rename to portfolio/song/views.py diff --git a/portfolio/urls.py b/portfolio/urls.py index 6bd1888..f24424a 100644 --- a/portfolio/urls.py +++ b/portfolio/urls.py @@ -13,13 +13,45 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ -from django.conf.urls import url, include from django.contrib import admin -from django.urls import path +from django.urls import path, re_path, include +from django.conf.urls.static import static + +from drf_yasg import openapi +from drf_yasg.views import get_schema_view +from rest_framework import routers, permissions from rest_framework_swagger.views import get_swagger_view +from portfolio import settings +from .account import views + +schema_view = get_schema_view( + openapi.Info( + title="API", + default_version='0.1', + description="API", + contact=openapi.Contact(email="zukkamil.44@gmail.com"), + license=openapi.License(name="All rights reserved"), + ), + public=True, + permission_classes=(permissions.AllowAny,), +) + + +router = routers.DefaultRouter() +router.register(r'users', views.AccountViewSet, basename='user') +router.register(r'guests', views.GuestViewSet) + urlpatterns = [ - path('admin/', admin.site.urls), - url(r'^$', get_swagger_view(title='API Endpoints')), - url(r'^api-auth/', include('rest_framework.urls')) -] + path('admin/', admin.site.urls), + path('', include(router.urls)), + path('api-auth/', include('rest_framework.urls', namespace='rest_framework')) + ] + +if settings.DEBUG: + urlpatterns = [ + path('admin/', admin.site.urls), + path('', include(router.urls)), + path('api-auth/', include('rest_framework.urls', namespace='rest_framework')), + path('swagger/', schema_view.with_ui('swagger', cache_timeout=0)) + ] \ No newline at end of file diff --git a/rating/migrations/0001_initial.py b/rating/migrations/0001_initial.py deleted file mode 100644 index 6d35c02..0000000 --- a/rating/migrations/0001_initial.py +++ /dev/null @@ -1,57 +0,0 @@ -# Generated by Django 3.0.7 on 2020-06-17 12:26 - -from django.db import migrations, models -import django.db.models.deletion -import django_enumfield.db.fields -import rating.models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('comment', '0001_initial'), - ('song', '0001_initial'), - ('album', '0001_initial'), - ('account', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='SongRating', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('value', django_enumfield.db.fields.EnumField(enum=rating.models.RatingValue)), - ('song', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='song.Song')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Account')), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='CommentRating', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('value', django_enumfield.db.fields.EnumField(enum=rating.models.RatingValue)), - ('comment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='comment.UserComment')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Account')), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='AlbumRating', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('value', django_enumfield.db.fields.EnumField(enum=rating.models.RatingValue)), - ('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='album.Album')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Account')), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/rating/migrations/__pycache__/0001_initial.cpython-36.pyc b/rating/migrations/__pycache__/0001_initial.cpython-36.pyc deleted file mode 100644 index 0265aa2..0000000 Binary files a/rating/migrations/__pycache__/0001_initial.cpython-36.pyc and /dev/null differ diff --git a/rating/migrations/__pycache__/__init__.cpython-36.pyc b/rating/migrations/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index 2792953..0000000 Binary files a/rating/migrations/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/run.sh b/run.sh index 21c6917..4a7f3cc 100755 --- a/run.sh +++ b/run.sh @@ -1,3 +1 @@ -python manage.py makemigrations -python manage.py migrate python manage.py runserver 9090 \ No newline at end of file diff --git a/song/migrations/0001_initial.py b/song/migrations/0001_initial.py deleted file mode 100644 index 00517a7..0000000 --- a/song/migrations/0001_initial.py +++ /dev/null @@ -1,31 +0,0 @@ -# Generated by Django 3.0.7 on 2020-06-17 12:26 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('album', '0001_initial'), - ('account', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Song', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=255)), - ('description', models.CharField(max_length=1000)), - ('text', models.TextField()), - ('image', models.TextField()), - ('audio', models.TextField()), - ('url_code', models.CharField(max_length=255)), - ('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='album.Album')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='account.Account')), - ], - ), - ] diff --git a/song/migrations/__pycache__/0001_initial.cpython-36.pyc b/song/migrations/__pycache__/0001_initial.cpython-36.pyc deleted file mode 100644 index a466773..0000000 Binary files a/song/migrations/__pycache__/0001_initial.cpython-36.pyc and /dev/null differ diff --git a/song/migrations/__pycache__/__init__.cpython-36.pyc b/song/migrations/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index 32b0c74..0000000 Binary files a/song/migrations/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/song/views.py b/song/views.py deleted file mode 100644 index 91ea44a..0000000 --- a/song/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here.