mirror of
https://github.com/i701/sarlink-portal-api.git
synced 2025-07-07 06:06:31 +00:00
feat(billing): Implement TopupDetailAPIView for retrieving single topup details ✨
This commit is contained in:
@ -190,3 +190,11 @@ class TopupTests(TestCase):
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.json()["data"]), 1)
|
||||
self.assertEqual(response.json()["data"][0]["amount"], 100.00)
|
||||
|
||||
def test_retrieve_single_topup(self):
|
||||
topup = Topup.objects.create(amount=50.00, user=self.real_user)
|
||||
url = reverse("retrieve-topup", kwargs={"pk": topup.pk})
|
||||
response = self.client.get(url, format="json")
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.json()["amount"], 50.00)
|
||||
self.assertEqual(response.json()["user"]["id"], getattr(self.real_user, "id"))
|
||||
|
@ -8,6 +8,7 @@ from .views import (
|
||||
DeletePaymentView,
|
||||
ListCreateTopupView,
|
||||
VerifyTopupPaymentAPIView,
|
||||
TopupDetailAPIView,
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
@ -28,7 +29,7 @@ urlpatterns = [
|
||||
),
|
||||
# Topups
|
||||
path("topup/", ListCreateTopupView.as_view(), name="create-list-topups"),
|
||||
# path("topup/<str:pk>/", TopupDetailAPIView.as_view(), name="retrieve-topup"),
|
||||
path("topup/<str:pk>/", TopupDetailAPIView.as_view(), name="retrieve-topup"),
|
||||
path(
|
||||
"topup/<str:pk>/verify/",
|
||||
VerifyTopupPaymentAPIView.as_view(),
|
||||
|
@ -288,6 +288,18 @@ class ListCreateTopupView(StaffEditorPermissionMixin, generics.ListCreateAPIView
|
||||
return queryset.filter(user=self.request.user)
|
||||
|
||||
|
||||
class TopupDetailAPIView(StaffEditorPermissionMixin, generics.RetrieveAPIView):
|
||||
queryset = Topup.objects.all()
|
||||
serializer_class = TopupSerializer
|
||||
lookup_field = "pk"
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset()
|
||||
if getattr(self.request.user, "is_admin") or self.request.user.is_superuser:
|
||||
return queryset
|
||||
return queryset.filter(user=self.request.user)
|
||||
|
||||
|
||||
class VerifyTopupPaymentAPIView(StaffEditorPermissionMixin, generics.UpdateAPIView):
|
||||
queryset = Topup.objects.all()
|
||||
serializer_class = TopupSerializer
|
||||
|
Reference in New Issue
Block a user