diff --git a/apps/users/views.py b/apps/users/views.py index 1c7ec98..b4c44bf 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -105,10 +105,3 @@ class OTPLoginView(LoginView): Display the login form and handle the login action. """ form_class = OTPAuthenticationForm - - -class ProvinceApiView(APIView): - permission_classes = [permissions.AllowAny] - - def get(self, request): - return Response(State().province_list()) diff --git a/gooyal_accounts/celery.py b/gooyal_accounts/celery.py index c846734..80ea358 100644 --- a/gooyal_accounts/celery.py +++ b/gooyal_accounts/celery.py @@ -6,7 +6,7 @@ from celery import Celery from django.conf import settings # set the default Django settings module for the 'celery' program. -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gooyal_accounts.settings') +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'accounts.settings') app = Celery('notification_service') diff --git a/gooyal_accounts/settings.py b/gooyal_accounts/settings.py index 9a04d15..4b77c92 100644 --- a/gooyal_accounts/settings.py +++ b/gooyal_accounts/settings.py @@ -1,5 +1,5 @@ """ -Django settings for gooyal_accounts project. +Django settings for accounts project. Generated by 'django-admin startproject' using Django 2.2. @@ -37,7 +37,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', - 'drf_yasg', + 'drf_spectacular', 'oauth2_provider', 'rest_framework', 'corsheaders', @@ -90,7 +90,7 @@ REST_FRAMEWORK = { 'PAGE_SIZE': 10 } -ROOT_URLCONF = 'gooyal_accounts.urls' +ROOT_URLCONF = 'accounts.urls' TEMPLATES = [ { @@ -113,7 +113,7 @@ AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', ) -WSGI_APPLICATION = 'gooyal_accounts.wsgi.application' +WSGI_APPLICATION = 'accounts.wsgi.application' # Database # https://docs.djangoproject.com/en/2.2/ref/settings/#databases diff --git a/gooyal_accounts/urls.py b/gooyal_accounts/urls.py index c93796a..87faf6a 100644 --- a/gooyal_accounts/urls.py +++ b/gooyal_accounts/urls.py @@ -1,4 +1,4 @@ -"""gooyal_accounts URL Configuration +"""accounts URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.2/topics/http/urls/ @@ -20,36 +20,23 @@ from django.contrib.auth.views import LogoutView from django.urls import path, include from django.contrib import admin from rest_framework import permissions -from drf_yasg.views import get_schema_view -from drf_yasg import openapi - +from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView # from apps.gooyal_oauth2.views.introspect import introspect_token from apps.transactions.views import TransactionList, TransactionDetail, TransactionPay, TransactionReceipt, \ WithdrawVerify, WithdrawSubmit, DepositSubmit, DepositVerify from apps.users.views import UserListView, UserDetailView, AccountView, RequestOTPView, ChangePasswordView, \ - OTPLoginView, home, ProvinceApiView, UserInquiryView + OTPLoginView, home, UserInquiryView from django.contrib.auth import urls as auth_urls -schema_view = get_schema_view( - openapi.Info( - title="Snippets API", - default_version='v1', - description="Test description", - terms_of_service="https://www.google.com/policies/terms/", - contact=openapi.Contact(email="contact@snippets.local"), - license=openapi.License(name="BSD License"), - ), - public=True, - permission_classes=(permissions.AllowAny,), -) - urlpatterns = [ - url(r'^swagger(?P\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'), - url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), - url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), + # YOUR PATTERNS + path('swagger/', SpectacularAPIView.as_view(), name='schema'), + # Optional UI: + path('swagger/swagger-ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), + path('swagger/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'), path('admin/', admin.site.urls), # path('accounts/', include(auth_urls)), path('login/', OTPLoginView.as_view(), name='login'), diff --git a/gooyal_accounts/wsgi.py b/gooyal_accounts/wsgi.py index 695afd4..d4e6b0e 100644 --- a/gooyal_accounts/wsgi.py +++ b/gooyal_accounts/wsgi.py @@ -1,5 +1,5 @@ """ -WSGI config for gooyal_accounts project. +WSGI config for accounts project. It exposes the WSGI callable as a module-level variable named ``application``. @@ -11,6 +11,6 @@ import os from django.core.wsgi import get_wsgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gooyal_accounts.settings') +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'accounts.settings') application = get_wsgi_application() diff --git a/manage.py b/manage.py index 51b0ba5..7a22e43 100644 --- a/manage.py +++ b/manage.py @@ -5,7 +5,7 @@ import sys def main(): - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gooyal_accounts.settings') + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'accounts.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: diff --git a/requirements.in b/requirements.in index a1bffad..77af700 100644 --- a/requirements.in +++ b/requirements.in @@ -14,4 +14,4 @@ gunicorn gevent redis celery -drf-yasg \ No newline at end of file +drf-spectacular \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 8e3cda6..2e8910f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,53 +1,142 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.9 # To update, run: # -# pip-compile +# pip-compile requirements.in # -amqp==2.6.1 # via kombu -asgiref==3.2.10 # via django -billiard==3.6.3.0 # via celery -celery==4.4.7 # via -r requirements.in -certifi==2020.6.20 # via requests -chardet==3.0.4 # via requests -coreapi==2.3.3 # via drf-yasg -coreschema==0.0.4 # via coreapi, drf-yasg -django-cors-headers==3.5.0 # via -r requirements.in -django-filter==2.3.0 # via -r requirements.in -django-model-utils==4.0.0 # via -r requirements.in -django-mysql==3.8.1 # via -r requirements.in -django-oauth-toolkit==1.3.2 # via -r requirements.in -django==3.1.1 # via -r requirements.in, django-cors-headers, django-filter, django-model-utils, django-mysql, django-oauth-toolkit, djangorestframework, drf-yasg -djangorestframework==3.11.1 # via -r requirements.in, drf-yasg -drf-yasg==1.20.0 # via -r requirements.in -gevent==20.6.2 # via -r requirements.in -greenlet==0.4.16 # via gevent -gunicorn==20.0.4 # via -r requirements.in -idna==2.10 # via requests -inflection==0.5.1 # via drf-yasg -itypes==1.2.0 # via coreapi -jinja2==2.11.2 # via coreschema -kombu==4.6.11 # via celery -markdown==3.2.2 # via -r requirements.in -markupsafe==1.1.1 # via jinja2 -mysqlclient==2.0.1 # via -r requirements.in -oauthlib==3.1.0 # via django-oauth-toolkit -packaging==20.4 # via drf-yasg -pillow==7.2.0 # via -r requirements.in -pyparsing==2.4.7 # via packaging -python-decouple==3.3 # via -r requirements.in -pytz==2020.1 # via celery, django -redis==3.5.3 # via -r requirements.in -requests==2.24.0 # via coreapi, django-oauth-toolkit -ruamel.yaml.clib==0.2.2 # via ruamel.yaml -ruamel.yaml==0.16.12 # via drf-yasg -six==1.15.0 # via packaging -sqlparse==0.3.1 # via django -uritemplate==3.0.1 # via coreapi, drf-yasg -urllib3==1.25.10 # via requests -vine==1.3.0 # via amqp, celery -zope.event==4.4 # via gevent -zope.interface==5.1.0 # via gevent +amqp==5.1.1 + # via kombu +asgiref==3.5.2 + # via django +async-timeout==4.0.2 + # via redis +attrs==22.1.0 + # via jsonschema +billiard==3.6.4.0 + # via celery +celery==5.2.7 + # via -r requirements.in +certifi==2022.6.15 + # via requests +cffi==1.15.1 + # via cryptography +charset-normalizer==2.1.0 + # via requests +click==8.1.3 + # via + # celery + # click-didyoumean + # click-plugins + # click-repl +click-didyoumean==0.3.0 + # via celery +click-plugins==1.1.1 + # via celery +click-repl==0.2.0 + # via celery +cryptography==37.0.4 + # via jwcrypto +deprecated==1.2.13 + # via + # jwcrypto + # redis +django==4.1 + # via + # -r requirements.in + # django-cors-headers + # django-filter + # django-model-utils + # django-mysql + # django-oauth-toolkit + # djangorestframework + # drf-spectacular +django-cors-headers==3.13.0 + # via -r requirements.in +django-filter==22.1 + # via -r requirements.in +django-model-utils==4.2.0 + # via -r requirements.in +django-mysql==4.7.1 + # via -r requirements.in +django-oauth-toolkit==2.1.0 + # via -r requirements.in +djangorestframework==3.13.1 + # via + # -r requirements.in + # drf-spectacular +drf-spectacular==0.23.1 + # via -r requirements.in +gevent==21.12.0 + # via -r requirements.in +greenlet==1.1.2 + # via gevent +gunicorn==20.1.0 + # via -r requirements.in +idna==3.3 + # via requests +importlib-metadata==4.12.0 + # via markdown +inflection==0.5.1 + # via drf-spectacular +jsonschema==4.10.0 + # via drf-spectacular +jwcrypto==1.3.1 + # via django-oauth-toolkit +kombu==5.2.4 + # via celery +markdown==3.4.1 + # via -r requirements.in +mysqlclient==2.1.1 + # via -r requirements.in +oauthlib==3.2.0 + # via django-oauth-toolkit +packaging==21.3 + # via redis +pillow==9.2.0 + # via -r requirements.in +prompt-toolkit==3.0.30 + # via click-repl +pycparser==2.21 + # via cffi +pyparsing==3.0.9 + # via packaging +pyrsistent==0.18.1 + # via jsonschema +python-decouple==3.6 + # via -r requirements.in +pytz==2022.2.1 + # via + # celery + # djangorestframework +pyyaml==6.0 + # via drf-spectacular +redis==4.3.4 + # via -r requirements.in +requests==2.28.1 + # via django-oauth-toolkit +six==1.16.0 + # via click-repl +sqlparse==0.4.2 + # via django +uritemplate==4.1.1 + # via drf-spectacular +urllib3==1.26.11 + # via requests +vine==5.0.0 + # via + # amqp + # celery + # kombu +wcwidth==0.2.5 + # via prompt-toolkit +wrapt==1.14.1 + # via deprecated +zipp==3.8.1 + # via importlib-metadata +zope-event==4.5.0 + # via gevent +zope-interface==5.4.0 + # via gevent # The following packages are considered to be unsafe in a requirements file: # setuptools