From 887ffbb4d01a5ca3458b100cc4968f9800a3aead Mon Sep 17 00:00:00 2001 From: i701 Date: Fri, 18 Apr 2025 13:39:57 +0500 Subject: [PATCH] Add filter_temporary_user view to retrieve TemporaryUser by id_card or mobile --- api/urls.py | 2 ++ api/views.py | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/api/urls.py b/api/urls.py index 2e8c992..393a139 100644 --- a/api/urls.py +++ b/api/urls.py @@ -17,6 +17,7 @@ from .views import ( ListCreateIslandView, RetrieveUpdateDestroyIslandView, filter_user, + filter_temporary_user, UpdateUserWalletView, VerifyOTPView, ) @@ -37,6 +38,7 @@ urlpatterns = [ ), path("users//", UserDetailAPIView.as_view(), name="user-detail"), path("users/filter/", filter_user, name="filter-users"), + path("users/temp/filter/", filter_temporary_user, name="filter-temporary-users"), path("healthcheck/", healthcheck, name="healthcheck"), path("test/", test_email, name="testemail"), path("atolls/", ListAtollView.as_view(), name="atolls"), diff --git a/api/views.py b/api/views.py index 3c05b63..af0ca52 100644 --- a/api/views.py +++ b/api/views.py @@ -341,6 +341,32 @@ def filter_user(request): ) +@api_view(["GET"]) +def filter_temporary_user(request): + id_card = request.GET.get("id_card", "").strip() or None + mobile = request.GET.get("mobile", "").strip() or None + + if not id_card and not mobile: + return Response({"ok": False}) + + filters = Q() + if id_card is not None: + filters |= Q(t_id_card=id_card) + if mobile is not None: + filters |= Q(t_mobile=mobile) + + user = TemporaryUser.objects.filter(filters).first() + + print(f"Querying with filters: {filters}") + print(f"Found temporary user: {user}") + + return Response( + {"ok": True, "otp_verified": user.otp_verified} + if user + else {"ok": False, "otp_verified": False} + ) + + class ListUserByIDCardView(generics.ListAPIView): # Create user API view permission_classes = (permissions.AllowAny,)