|
|
|
|
@ -34,17 +34,18 @@ class DataApi(APIView): |
|
|
|
|
|
|
|
|
|
model = apps.get_model(app_label='tournaments', model_name=model_name) |
|
|
|
|
now = timezone.localtime(timezone.now()) |
|
|
|
|
try: |
|
|
|
|
data_id = data.get('id') |
|
|
|
|
instance = get_data('tournaments', model_name, data_id) |
|
|
|
|
|
|
|
|
|
if model_operation == 'DELETE': |
|
|
|
|
# parent_model, parent_id = instance.get_parent_reference() |
|
|
|
|
if model_operation == 'POST': |
|
|
|
|
serializer = serializer_class(data=data, context={'request': request}) |
|
|
|
|
if serializer.is_valid(): |
|
|
|
|
serializer.save() |
|
|
|
|
return Response(serializer.data, status=status.HTTP_201_CREATED) |
|
|
|
|
# return self.save_and_create_log(request, serializer, model_operation, model_name, store_id, now) |
|
|
|
|
else: |
|
|
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) |
|
|
|
|
elif model_operation == 'PUT': |
|
|
|
|
data_id = data.get('id') |
|
|
|
|
instance = get_data('tournaments', model_name, data_id) |
|
|
|
|
instance.delete() |
|
|
|
|
return Response(status=status.HTTP_204_NO_CONTENT) |
|
|
|
|
# return self.delete_and_save_log(request, data_id, model_operation, model_name, store_id, now) |
|
|
|
|
else: # PUT |
|
|
|
|
serializer = serializer_class(instance, data=data, context={'request': request}) |
|
|
|
|
if serializer.is_valid(): |
|
|
|
|
if instance.last_update <= serializer.validated_data.get('last_update'): |
|
|
|
|
@ -57,15 +58,19 @@ class DataApi(APIView): |
|
|
|
|
return Response(serializer.data, status=status.HTTP_203_NON_AUTHORITATIVE_INFORMATION) |
|
|
|
|
else: |
|
|
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) |
|
|
|
|
elif model_operation == 'DELETE': |
|
|
|
|
data_id = data.get('id') |
|
|
|
|
try: |
|
|
|
|
instance = get_data('tournaments', model_name, data_id) |
|
|
|
|
instance.delete() |
|
|
|
|
return Response(status=status.HTTP_204_NO_CONTENT) |
|
|
|
|
except model.DoesNotExist: # POST |
|
|
|
|
print('>>> insert') |
|
|
|
|
serializer = serializer_class(data=data, context={'request': request}) |
|
|
|
|
if serializer.is_valid(): |
|
|
|
|
serializer.save() |
|
|
|
|
return Response(serializer.data, status=status.HTTP_201_CREATED) |
|
|
|
|
# return self.save_and_create_log(request, serializer, model_operation, model_name, store_id, now) |
|
|
|
|
delete = ModelLog.objects.filter(model_id=data_id, operation=model_operation).first() |
|
|
|
|
if delete: |
|
|
|
|
return Response(status=status.HTTP_208_ALREADY_REPORTED) |
|
|
|
|
else: |
|
|
|
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) |
|
|
|
|
return Response(status=status.HTTP_404_NOT_FOUND) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
last_update_str = request.query_params.get('last_update') |
|
|
|
|
|