mirror of
https://github.com/i701/sarlink-portal-api.git
synced 2025-07-07 12:16:30 +00:00
Merge pull request #4 from i701/feat/topups
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 5m5s
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 5m5s
feat(billing): Implement TopupDetailAPIView for retrieving single top…
This commit is contained in:
@ -190,3 +190,11 @@ class TopupTests(TestCase):
|
|||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
self.assertEqual(len(response.json()["data"]), 1)
|
self.assertEqual(len(response.json()["data"]), 1)
|
||||||
self.assertEqual(response.json()["data"][0]["amount"], 100.00)
|
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,
|
DeletePaymentView,
|
||||||
ListCreateTopupView,
|
ListCreateTopupView,
|
||||||
VerifyTopupPaymentAPIView,
|
VerifyTopupPaymentAPIView,
|
||||||
|
TopupDetailAPIView,
|
||||||
)
|
)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@ -28,7 +29,7 @@ urlpatterns = [
|
|||||||
),
|
),
|
||||||
# Topups
|
# Topups
|
||||||
path("topup/", ListCreateTopupView.as_view(), name="create-list-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(
|
path(
|
||||||
"topup/<str:pk>/verify/",
|
"topup/<str:pk>/verify/",
|
||||||
VerifyTopupPaymentAPIView.as_view(),
|
VerifyTopupPaymentAPIView.as_view(),
|
||||||
|
@ -288,6 +288,18 @@ class ListCreateTopupView(StaffEditorPermissionMixin, generics.ListCreateAPIView
|
|||||||
return queryset.filter(user=self.request.user)
|
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):
|
class VerifyTopupPaymentAPIView(StaffEditorPermissionMixin, generics.UpdateAPIView):
|
||||||
queryset = Topup.objects.all()
|
queryset = Topup.objects.all()
|
||||||
serializer_class = TopupSerializer
|
serializer_class = TopupSerializer
|
||||||
|
Reference in New Issue
Block a user