Reoraganized project

This commit is contained in:
ITQ
2024-03-02 13:22:29 +03:00
parent bcdcfaf7f2
commit ed687650ba
27 changed files with 58 additions and 45 deletions
+6
View File
@@ -0,0 +1,6 @@
from django.apps import AppConfig
class ApiConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "api"
@@ -3,4 +3,4 @@ from django.apps import AppConfig
class CountriesConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "countries"
name = "api.countries"
@@ -9,6 +9,7 @@ class Country(models.Model):
class Meta:
db_table = "countries"
managed = False
def __str__(self):
return self.name
@@ -1,6 +1,6 @@
from rest_framework import serializers
from countries.models import Country
from api.countries.models import Country
class CountrySerializer(serializers.ModelSerializer):
+12
View File
@@ -0,0 +1,12 @@
from django.urls import path
import api.countries.views
urlpatterns = [
path("", api.countries.views.CountryListView.as_view(), name="countries"),
path(
"/<str:alpha2>",
api.countries.views.CountryByAlpha2View.as_view(),
name="country_by_alpha2",
),
]
@@ -2,8 +2,8 @@ from django.conf import settings
from rest_framework.exceptions import ValidationError
from rest_framework.generics import ListAPIView, RetrieveAPIView
from countries.models import Country
from countries.serializers import CountrySerializer
from api.countries.models import Country
from api.countries.serializers import CountrySerializer
class CountryListView(ListAPIView):
@@ -3,4 +3,4 @@ from django.apps import AppConfig
class PingConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "ping"
name = "api.ping"
+7
View File
@@ -0,0 +1,7 @@
from django.urls import path
import api.ping.views
urlpatterns = [
path("", api.ping.views.PingView.as_view(), name="ping"),
]
+7
View File
@@ -0,0 +1,7 @@
from django.urls import include, path
urlpatterns = [
path("ping", include("api.ping.urls")),
path("countries", include("api.countries.urls")),
path("", include("api.users.urls")),
]
@@ -3,4 +3,4 @@ from django.apps import AppConfig
class UsersConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "users"
name = "api.users"
@@ -6,7 +6,7 @@ from rest_framework.authentication import (
from rest_framework.exceptions import AuthenticationFailed, NotAuthenticated
from rest_framework.permissions import IsAuthenticated
from users.models import Profile
from api.users.models import Profile
class JWTAuthentication(BaseAuthentication):
@@ -1,8 +1,8 @@
# Generated by Django 4.2.10 on 2024-03-02 09:47
# Generated by Django 4.2.10 on 2024-03-02 10:14
import api.users.validators
import django.core.validators
from django.db import migrations, models
import users.validators
class Migration(migrations.Migration):
@@ -20,7 +20,7 @@ class Migration(migrations.Migration):
('login', models.CharField(max_length=30, validators=[django.core.validators.RegexValidator('^[a-zA-Z0-9-]+$')])),
('email', models.EmailField(max_length=50)),
('password', models.CharField(max_length=100, validators=[django.core.validators.RegexValidator('^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{6,100}$')])),
('countryCode', models.CharField(max_length=2, validators=[django.core.validators.RegexValidator('[a-zA-Z]{2}'), users.validators.CountryCodeValidator()])),
('countryCode', models.CharField(max_length=2, validators=[django.core.validators.RegexValidator('[a-zA-Z]{2}'), api.users.validators.CountryCodeValidator()])),
('isPublic', models.BooleanField()),
('phone', models.CharField(blank=True, max_length=20, null=True, validators=[django.core.validators.MaxLengthValidator(20), django.core.validators.RegexValidator('\\+[\\d]+')])),
('image', models.URLField(blank=True, null=True)),
@@ -4,7 +4,7 @@ from django.core.validators import (
)
from django.db import models
from users.validators import CountryCodeValidator
from api.users.validators import CountryCodeValidator
class Profile(models.Model):
@@ -1,6 +1,6 @@
from rest_framework import serializers
from users.models import Profile
from api.users.models import Profile
class ProfileSerializer(serializers.ModelSerializer):
@@ -1,20 +1,20 @@
from django.urls import path
import users.views
import api.users.views
urlpatterns = [
path(
"auth/register",
users.views.RegisterUserApiView.as_view(),
api.users.views.RegisterUserApiView.as_view(),
name="register",
),
path(
"auth/sign-in",
users.views.SigninUserApiView.as_view(),
api.users.views.SigninUserApiView.as_view(),
name="sign-in",
),
path(
"me/profile",
users.views.ProfileMeApiView.as_view(),
api.users.views.ProfileMeApiView.as_view(),
)
]
@@ -1,8 +1,9 @@
from countries.models import Country
from django.core.exceptions import ValidationError
from django.core.validators import BaseValidator
from django.utils.deconstruct import deconstructible
from api.countries.models import Country
@deconstructible
class CountryCodeValidator(BaseValidator):
@@ -9,8 +9,8 @@ from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from users.models import Profile
from users.serializers import ProfileSerializer, UpdateProfileSerializer
from api.users.models import Profile
from api.users.serializers import ProfileSerializer, UpdateProfileSerializer
class RegisterUserApiView(APIView):
-12
View File
@@ -1,12 +0,0 @@
from django.urls import path
import countries.views
urlpatterns = [
path("", countries.views.CountryListView.as_view(), name="countries"),
path(
"/<str:alpha2>",
countries.views.CountryByAlpha2View.as_view(),
name="country_by_alpha2",
),
]
-7
View File
@@ -1,7 +0,0 @@
from django.urls import path
import ping.views
urlpatterns = [
path("", ping.views.PingView.as_view(), name="ping"),
]
+4 -4
View File
@@ -26,9 +26,9 @@ INSTALLED_APPS = [
"rest_framework",
"django_filters",
# Developed apps
"ping.apps.PingConfig",
"countries.apps.CountriesConfig",
"users.apps.UsersConfig",
"api.ping.apps.PingConfig",
"api.countries.apps.CountriesConfig",
"api.users.apps.UsersConfig",
]
MIDDLEWARE = [
@@ -116,7 +116,7 @@ REST_FRAMEWORK = {
"django_filters.rest_framework.DjangoFilterBackend"
],
"DEFAULT_AUTHENTICATION_CLASSES": (
"users.authentication.JWTAuthentication",
"api.users.authentication.JWTAuthentication",
),
}
+1 -3
View File
@@ -13,9 +13,7 @@ urlpatterns = [
),
),
# API
path("api/ping", include("ping.urls")),
path("api/countries", include("countries.urls")),
path("api/", include("users.urls")),
path("api/", include("api.urls")),
]
if settings.DEBUG: