fix(app version):changes in logic

This commit is contained in:
bobbyvish
2024-05-21 19:40:57 +05:30
parent 971f3f6c92
commit 585c863f66
5 changed files with 33 additions and 23 deletions

View File

@@ -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__"

View File

@@ -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'),
]

View File

@@ -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_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)
return ApiResponse.success(message=constants.SUCCESS, data=version_data.data)

View File

@@ -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)'),
),
]

View File

@@ -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 = [