diff --git a/module_auth/api/serializers.py b/module_auth/api/serializers.py index d0f189a..85365ed 100644 --- a/module_auth/api/serializers.py +++ b/module_auth/api/serializers.py @@ -3,7 +3,7 @@ from django.contrib.auth.hashers import make_password from rest_framework import serializers from rest_framework.validators import UniqueValidator -from module_iam.models import IAmPrincipal +from module_iam.models import AppVersion, IAmPrincipal from module_project import constants # class BasePasswordSerializer(serializers.Serializer): @@ -107,3 +107,8 @@ class PasswordResetSerializer(serializers.ModelSerializer): instance.password = make_password(new_password) instance.save() return instance + +class AppVersionSerializer(serializers.ModelSerializer): + class Meta: + model = AppVersion + fields = "__all__" \ No newline at end of file diff --git a/module_auth/api/urls.py b/module_auth/api/urls.py index 0fdf38b..1dada83 100644 --- a/module_auth/api/urls.py +++ b/module_auth/api/urls.py @@ -19,6 +19,5 @@ urlpatterns = [ path('apple-signin/', views.AppleSignin.as_view(), name='apple_signin'), path('version-check/', views.VersionCheck.as_view(), name='version_check'), - path('app-version/', views.VersionCheck.as_view(), name='version_check'), ] diff --git a/module_auth/api/views.py b/module_auth/api/views.py index fcd68df..904e5d7 100644 --- a/module_auth/api/views.py +++ b/module_auth/api/views.py @@ -15,7 +15,7 @@ from module_project import constants from module_project.service import EmailService, SMSService from module_project.utils import ApiResponse -from .serializers import (LoginSerializer, OtpVerificationSerializer, +from .serializers import (AppVersionSerializer, LoginSerializer, OtpVerificationSerializer, PasswordResetSerializer, RegistrationSerializer) from .utils import (AuthService, GoogleAuthService, authticate_with_otp_and_passsword, blacklist_token, @@ -369,30 +369,18 @@ class AppleSignin(APIView): class VersionCheck(APIView): - authentication_classes = [] - permission_classes = [] + authentication_classes = [JWTAuthentication] + permission_classes = [IsAuthenticated] model = AppVersion def get(self, request, *args, **kwargs): - # app_version = request.GET.get('appVersion') + print("app version is called") device_type = request.GET.get('deviceType') if not device_type: - return ApiResponse.error(message=constants.FAILURE, errors="App version and device type is required") + return ApiResponse.error(message=constants.FAILURE, errors="device type is required") # Query the database to retrieve the upgrade flags based on the app version - try: - version = self.model.objects.filter(device_type=device_type).last() - except self.model.DoesNotExist: - version = None + version = self.model.objects.filter(device_type=device_type).last() + version_data = AppVersionSerializer(version) - if version: - upgrade_flags = { - 'forceUpgrade': version.force_upgrade, - 'recommendUpgrade': version.recommend_upgrade, - } - else: - upgrade_flags = { - 'forceUpgrade': False, - 'recommendUpgrade': False, - } - return ApiResponse.success(message=constants.SUCCESS, data=upgrade_flags) \ No newline at end of file + return ApiResponse.success(message=constants.SUCCESS, data=version_data.data) \ No newline at end of file diff --git a/module_iam/migrations/0010_alter_appversion_device_type.py b/module_iam/migrations/0010_alter_appversion_device_type.py new file mode 100644 index 0000000..bce3291 --- /dev/null +++ b/module_iam/migrations/0010_alter_appversion_device_type.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.2 on 2024-05-21 14:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('module_iam', '0009_alter_appversion_device_type_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='appversion', + name='device_type', + field=models.CharField(choices=[('ios', 'ios'), ('android', 'android')], max_length=10, verbose_name='Device Type (ios / android)'), + ), + ] diff --git a/module_project/settings/production.py b/module_project/settings/production.py index e11deca..37a9932 100644 --- a/module_project/settings/production.py +++ b/module_project/settings/production.py @@ -4,7 +4,7 @@ import os import colorlog from logging.handlers import TimedRotatingFileHandler -# DEBUG = True +DEBUG = False ALLOWED_HOSTS = ["admin.eatwithdigest.com"] # CORS_ALLOWED_ORIGINS = [