From 1e0ffd9b2d5e4acbf83456d1931ed6b8dfada1a7 Mon Sep 17 00:00:00 2001 From: Omma Date: Mon, 19 Aug 2024 11:14:42 +0330 Subject: [PATCH] FIX: views formating --- proxy/models.py | 9 ++ proxy/urls.py | 6 +- proxy/views.py | 213 ++++++++---------------------------------------- 3 files changed, 48 insertions(+), 180 deletions(-) diff --git a/proxy/models.py b/proxy/models.py index dcc5c22..fb74e87 100644 --- a/proxy/models.py +++ b/proxy/models.py @@ -17,6 +17,7 @@ class Well(models.Model): null=True, blank=True, ) + subscriptionـcode = models.CharField( verbose_name='کد اشتراک', max_length=100, @@ -61,6 +62,13 @@ class Well(models.Model): blank=True, ) + log_of = models.IntegerField( + verbose_name='لاگ شده از', + null=True, + blank=False, + default = 0 + ) + province = models.IntegerField( # Province, # on_delete=models.SET_NULL, @@ -82,6 +90,7 @@ class Well(models.Model): null=True, blank=True, ) + class Meta: verbose_name = 'چاه' verbose_name_plural = 'چاه‌ها' diff --git a/proxy/urls.py b/proxy/urls.py index 7cabf42..50ef340 100644 --- a/proxy/urls.py +++ b/proxy/urls.py @@ -5,8 +5,8 @@ urlpatterns = [ path('/', send_well_by_well_id, name = 'send_well'), path('', send_wells, name='send_wells'), path('create/', create_well, name='create_well'), - path('delete//', delete_well_by_well_id, name='delete_well'), - path('update//', update_well_by_well_id, name='update_well'), - path('edit//', edit_well_by_well_id, name = 'edit_well' ), + path('/delete/', delete_well_by_well_id, name='delete_well'), + path('/update/', update_well_by_well_id, name='update_well'), + path('/edit/', edit_well_by_well_id, name = 'edit_well' ), ] \ No newline at end of file diff --git a/proxy/views.py b/proxy/views.py index 9fb3cd9..8e8a658 100644 --- a/proxy/views.py +++ b/proxy/views.py @@ -13,112 +13,61 @@ import requests from .models import Well from .serializers import WellSerializer -# Create your views here. @api_view(['POST']) def create_well(request): try: - # return JsonResponse({ - # "message": "Duplicate Record", - # "status": 409, - # }, - # status = 409 - # ) - #if another formatting in request, try this: - ''' - data = request.POST - new_well = data.dict() # change querydict to dict - ''' - data = request.body.decode('utf-8') - serializer = WellSerializer(data=json.loads(data)) - #serializer = WellSerializer(data=request.data) + data = json.loads(request.body.decode('utf-8')) + instance = Well.objects.get( + license_code=data["license_code"]) + if instance: + return Response( + {"message":f'{data["license_code"]} already exists'}, + status=status.HTTP_409_CONFLICT + ) + serializer = WellSerializer(data=data) if serializer.is_valid(): serializer.save() - return Response(serializer.data, status=status.HTTP_201_CREATED) + return Response( + serializer.data, + status=status.HTTP_201_CREATED + ) else: - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + return Response( + serializer.errors, + status=status.HTTP_400_BAD_REQUEST + ) except Exception as e: print(e) - return Response({"error": "Internal Server Error"}, status=500) - # data = request.body.decode('utf-8') - # serializer = WellSerializer(data=json.loads(data)) - # if serializer.is_valid(): - # serializer.save() - # return JsonResponse( - # { - # "status": 200, - # "message": "OK", - # "created": serializer.data, - # }, - # status = 200 - # ) - # #Response(serializer.data, status=status.HTTP_201_CREATED) - # else: - # return JsonResponse( - # { - # "status": 400, - # "message": "Bad Request", - # }, - # status = 400 - # ) - # new_well = json.loads(request.body.decode('utf-8')) - # created_well = Well.objects.create(**new_well) - # return JsonResponse({"data":[ - # { - # "error": "OK", - # "created": new_well, - # "well_id": created_well.id - # }, - # ]}, - # status = 200 - # ) + return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) @api_view(['GET']) def send_well_by_well_id(request, obj_id): try: - #well = Well.objects.filter(id=obj_id).values()[0] - #serialized_data = serializers.serialize('json', [well]) - well = Well.objects.filter(id=obj_id).last() + well = Well.objects.filter(id=obj_id).first() if well is None: - return Response({"error": "Not Found"}, status=404) + return Response({"error": "Not Found"}, status=status.HTTP_404_NOT_FOUND) serializer = WellSerializer(well) - return Response(serializer.data) - # return JsonResponse( - # {"well": serializer.data}, - # status = 200 - # ) + return Response(serializer.data, status=status.HTTP_200_OK) except Exception as ex: print(ex) - return Response({"error": "Internal Server Error"}, status=500) + return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) @api_view(['GET']) def send_wells(request): try: - print("sending wells") # to do: add owner - ''' - raw_body = request.body - users = json.loads(raw_body.decode('utf-8'))["data"] - result = [] - for well in wells: - for user in users: - if well["owner_id"] == user["id"]: - well_info = well.copy() - well_info.pop("owner_id", None) - well_info["user_info"] = user - result.append(well_info) - break - ''' + # to do: add filter + # to do: add log_type=0 + #‌ to do: add no return data wells = Well.objects.all() serializer = WellSerializer(wells, many=True) - return Response(serializer.data) - return JsonResponse({"data": list(wells)},status=200) - except Exception as e: - print(e) - return Response({"error": "Bad Request"}, status=400) + return Response(serializer.data, status=status.HTTP_200_OK) + except Exception as ex: + print(ex) + return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) -@csrf_exempt @api_view(['DELETE']) def delete_well_by_well_id(request, obj_id): try: @@ -132,26 +81,6 @@ def delete_well_by_well_id(request, obj_id): print(e) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - # try: - # instance = Well.objects.get(id=obj_id, log_type=0) - # instance.log_type = 1 - # instance.save() - # return JsonResponse({"data":[ - # { - # "well": instance.license_code, - # "error": "OK", - # }, - # ]}, - # status = 200 - # ) - # except Exception as e: - # print(e) - # return JsonResponse({"data":[ - # {"error": "Bad Request"} - # ]}, - # status = 400 - # ) - @api_view(['PUT']) def update_well_by_well_id(request, obj_id): try: @@ -161,7 +90,8 @@ def update_well_by_well_id(request, obj_id): data = json.loads(request.body.decode('utf-8')) data["log_type"] = 0 serializer = WellSerializer(data=data) - if serializer.is_valid(): + if serializer.is_valid(): + serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @@ -170,43 +100,8 @@ def update_well_by_well_id(request, obj_id): except Exception as e: print(e) return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - # try: - # instance = Well.objects.order_by('-pk').get(pk=obj_id) - # instance.log_type = 2 - # instance.save() - # new_well = json.loads(request.body.decode('utf-8')) - # created_well = Well.objects.create(**new_well) - - # return JsonResponse({"data":[ - # { - # "error": "OK", - # "created": new_well, - # "well_id": created_well.id - # }, - # ]}, - # status = 200 - # ) - # except Exception as e: - # if isinstance(e, IntegrityError): - # return JsonResponse({"data":[ - # { - # "error": "Conflict", - # "message": "Duplicate Record", - # "status": 409, - # } - # ]}, - # status = 409 - # ) - # print(e) - # return JsonResponse({"data":[ - # {"error": "Bad Request", - # "status": 400 - # }, - # ]}, - # status = 400 - # ) -@csrf_exempt +@api_view(['PUT']) def edit_well_by_well_id(request, obj_id): try: instance = Well.objects.get(id=obj_id, log_type=0) @@ -215,7 +110,9 @@ def edit_well_by_well_id(request, obj_id): data = json.loads(request.body.decode('utf-8')) data["log_type"] = 0 serializer = WellSerializer(data=data) - if serializer.is_valid(): + if serializer.is_valid(): + serializer["log_of"] = instance.id + serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @@ -223,42 +120,4 @@ def edit_well_by_well_id(request, obj_id): return Response({"error": "Not Found"}, status=status.HTTP_404_NOT_FOUND) except Exception as e: print(e) - return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - - # try: - # instance = Well.objects.order_by('-pk').get(pk=obj_id) - # instance.log_type = 3 - # instance.save() - # new_well = json.loads(request.body.decode('utf-8')) - # created_well = Well.objects.create(**new_well) - - # return JsonResponse({"data":[ - # { - # "error": "OK", - # "created": new_well, - # "well_id": created_well.id - # }, - # ]}, - # status = 200 - # ) - - # except Exception as e: - # if isinstance(e, IntegrityError): - # return JsonResponse({"data":[ - # { - # "error": "Conflict", - # "message": "Duplicate Record", - # "status": 409, - # } - # ]}, - # status = 409 - # ) - # print(e) - # return JsonResponse({"data":[ - # {"error": "Bad Request", - # "status": 400 - # }, - # ]}, - # status = 400 - # ) \ No newline at end of file + return Response({"error": "Internal Server Error"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) \ No newline at end of file