fix meal api and force update api
This commit is contained in:
@@ -281,7 +281,7 @@ class MealRecordSerializer(serializers.ModelSerializer):
|
||||
food_ingredient_record_data = validated_data.pop("food_ingredient_records", [])
|
||||
|
||||
meal_record = self.Meta.model.objects.create(**validated_data)
|
||||
|
||||
print(f"meal recordd id in serializer {meal_record.id}")
|
||||
food_record_list = []
|
||||
for data in food_record_data:
|
||||
obj, _ = FoodRecord.objects.get_or_create(**data)
|
||||
@@ -309,6 +309,8 @@ class MealRecordSerializer(serializers.ModelSerializer):
|
||||
instance.meal_type = validated_data.get("meal_type", instance.meal_type)
|
||||
instance.save()
|
||||
|
||||
print(f"meal record id in update 1 method {instance.id}")
|
||||
|
||||
food_record_data = validated_data.pop("food_records", [])
|
||||
beverage_record_data = validated_data.pop("beverage_records", [])
|
||||
food_ingredient_record_data = validated_data.pop("food_ingredient_records", [])
|
||||
@@ -333,6 +335,7 @@ class MealRecordSerializer(serializers.ModelSerializer):
|
||||
instance.beverage_records.set(beverage_record_list)
|
||||
|
||||
instance.save()
|
||||
print(f"meal record id in update 2 method {instance.id}")
|
||||
return instance
|
||||
|
||||
|
||||
@@ -446,6 +449,8 @@ class MealSymptomRecordSerializer(serializers.ModelSerializer):
|
||||
related_meal=related_meal_id, **validated_data
|
||||
)
|
||||
|
||||
print(f"symptoms meal record in create {meal_symptom_record.id, meal_symptom_record.related_meal.id}")
|
||||
|
||||
before_meal_list = []
|
||||
for data in before_meal_data:
|
||||
obj, _ = SymptomTypeBeforeMeal.objects.get_or_create(**data)
|
||||
@@ -490,5 +495,6 @@ class MealSymptomRecordSerializer(serializers.ModelSerializer):
|
||||
instance.symptoms_after_meal.set(after_meal_instances)
|
||||
|
||||
instance.save()
|
||||
print(f"symptoms meal record in update {instance.id, instance.related_meal.id}")
|
||||
|
||||
return instance
|
||||
|
||||
@@ -496,7 +496,8 @@ class MealSymptomAPIView(APIView):
|
||||
message=constants.FAILURE, errors=serializer.errors
|
||||
)
|
||||
try:
|
||||
serializer.save(principal=request.user)
|
||||
instance = serializer.save(principal=request.user)
|
||||
print(f"symptoms meal in put view {instance.id}")
|
||||
except Exception as e:
|
||||
return ApiResponse.error(message=constants.FAILURE, errors=str(e))
|
||||
|
||||
@@ -517,7 +518,8 @@ class MealSymptomAPIView(APIView):
|
||||
return ApiResponse.error(message=constants.FAILURE, errors=serializer.data)
|
||||
|
||||
try:
|
||||
serializer.save()
|
||||
instance = serializer.save()
|
||||
print(f"symptoms meal in put view {instance.id}")
|
||||
except Exception as e:
|
||||
return ApiResponse.error(message=constants.FAILURE, errors=str(e))
|
||||
|
||||
@@ -572,7 +574,8 @@ class MealAPIView(APIView):
|
||||
message=constants.FAILURE, errors=serializer.errors
|
||||
)
|
||||
try:
|
||||
serializer.save(principal=request.user)
|
||||
meal_id = serializer.save(principal=request.user)
|
||||
print(f"meal id in views {meal_id.id}")
|
||||
except Exception as e:
|
||||
return ApiResponse.error(message=constants.FAILURE, errors=str(e))
|
||||
|
||||
@@ -593,7 +596,8 @@ class MealAPIView(APIView):
|
||||
return ApiResponse.error(message=constants.FAILURE, errors=serializer.data)
|
||||
|
||||
try:
|
||||
serializer.save()
|
||||
instance = serializer.save()
|
||||
print(f"meal record id in put emthod {instance.id}")
|
||||
except Exception as e:
|
||||
return ApiResponse.error(message=constants.FAILURE, errors=str(e))
|
||||
|
||||
@@ -666,7 +670,7 @@ class MealDateAPIView(APIView):
|
||||
return ApiResponse.error(
|
||||
message=constants.FAILURE, errors="Invalid date format"
|
||||
)
|
||||
obj = self.model.objects.filter(date=date_obj)
|
||||
obj = self.model.objects.filter(principal=request.user.id, date=date_obj)
|
||||
serializer = self.serializer_class(obj, many=True)
|
||||
return ApiResponse.success(message=constants.SUCCESS, data=serializer.data)
|
||||
|
||||
|
||||
@@ -349,14 +349,18 @@ class AppleSignin(APIView):
|
||||
class VersionCheck(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
model = AppVersion
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
app_version = request.GET.get('appVersion')
|
||||
device_type = request.GET.get('deviceType')
|
||||
|
||||
if not app_version or not device_type:
|
||||
return ApiResponse.error(message=constants.FAILURE, errors="App version and device type is required")
|
||||
# Query the database to retrieve the upgrade flags based on the app version
|
||||
try:
|
||||
version = AppVersion.objects.get(version=app_version)
|
||||
except AppVersion.DoesNotExist:
|
||||
version = self.model.objects.get(version=app_version)
|
||||
except self.model.DoesNotExist:
|
||||
version = None
|
||||
|
||||
if version:
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 5.0.2 on 2024-04-04 10:10
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('module_iam', '0007_iamprincipalresourcelink_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='appversion',
|
||||
name='device_type',
|
||||
field=models.CharField(choices=[('apple', 'apple'), ('android', 'android')], default=1, max_length=10),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='appversion',
|
||||
name='version',
|
||||
field=models.CharField(max_length=10, validators=[django.core.validators.RegexValidator('^\\d+\\.\\d+$')]),
|
||||
),
|
||||
]
|
||||
@@ -448,7 +448,12 @@ class IAmPrincipalBiometric(BaseModel):
|
||||
|
||||
|
||||
class AppVersion(models.Model):
|
||||
version = models.CharField(max_length=10, validators=[RegexValidator(r'^\d+\.\d+\.\d+$')])
|
||||
DEVICE_CHOICES = [
|
||||
('apple', 'apple'),
|
||||
('android', 'android'),
|
||||
]
|
||||
device_type = models.CharField(max_length=10, choices=DEVICE_CHOICES)
|
||||
version = models.CharField(max_length=10, validators=[RegexValidator(r'^\d+\.\d+$')])
|
||||
force_upgrade = models.BooleanField(default=False, help_text='Indicates whether a force upgrade is needed for this app version.')
|
||||
recommend_upgrade = models.BooleanField(default=False, help_text='Indicates whether a recommend upgrade is needed for this app version.')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user