@djangocfg/api 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +42 -0
- package/dist/index.cjs +28422 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +31214 -0
- package/dist/index.d.ts +31214 -0
- package/dist/index.mjs +28334 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +83 -0
- package/src/cfg/BaseClient.ts +56 -0
- package/src/cfg/contexts/AccountsContext.tsx +205 -0
- package/src/cfg/contexts/LeadsContext.tsx +145 -0
- package/src/cfg/contexts/NewsletterContext.tsx +244 -0
- package/src/cfg/contexts/SupportContext.tsx +256 -0
- package/src/cfg/contexts/index.ts +48 -0
- package/src/cfg/contexts/knowbase/ChatContext.tsx +174 -0
- package/src/cfg/contexts/knowbase/DocumentsContext.tsx +304 -0
- package/src/cfg/contexts/knowbase/SessionsContext.tsx +174 -0
- package/src/cfg/contexts/knowbase/index.ts +58 -0
- package/src/cfg/contexts/payments/ApiKeysContext.tsx +115 -0
- package/src/cfg/contexts/payments/BalancesContext.tsx +118 -0
- package/src/cfg/contexts/payments/CurrenciesContext.tsx +105 -0
- package/src/cfg/contexts/payments/OverviewContext.tsx +141 -0
- package/src/cfg/contexts/payments/PaymentsContext.tsx +131 -0
- package/src/cfg/contexts/payments/README.md +201 -0
- package/src/cfg/contexts/payments/index.ts +65 -0
- package/src/cfg/generated/_utils/fetchers/cfg__accounts.ts +66 -0
- package/src/cfg/generated/_utils/fetchers/cfg__accounts__auth.ts +50 -0
- package/src/cfg/generated/_utils/fetchers/cfg__accounts__user_profile.ts +121 -0
- package/src/cfg/generated/_utils/fetchers/cfg__endpoints.ts +49 -0
- package/src/cfg/generated/_utils/fetchers/cfg__health.ts +64 -0
- package/src/cfg/generated/_utils/fetchers/cfg__leads.ts +122 -0
- package/src/cfg/generated/_utils/fetchers/cfg__leads__lead_submission.ts +50 -0
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter.ts +81 -0
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__bulk_email.ts +50 -0
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__campaigns.ts +123 -0
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__logs.ts +49 -0
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__newsletters.ts +64 -0
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__subscriptions.ts +81 -0
- package/src/cfg/generated/_utils/fetchers/cfg__newsletter__testing.ts +50 -0
- package/src/cfg/generated/_utils/fetchers/cfg__payments.ts +2489 -0
- package/src/cfg/generated/_utils/fetchers/cfg__payments__webhooks.ts +109 -0
- package/src/cfg/generated/_utils/fetchers/cfg__support.ts +212 -0
- package/src/cfg/generated/_utils/fetchers/cfg__tasks.ts +182 -0
- package/src/cfg/generated/_utils/fetchers/index.ts +45 -0
- package/src/cfg/generated/_utils/hooks/cfg__accounts.ts +61 -0
- package/src/cfg/generated/_utils/hooks/cfg__accounts__auth.ts +41 -0
- package/src/cfg/generated/_utils/hooks/cfg__accounts__user_profile.ts +128 -0
- package/src/cfg/generated/_utils/hooks/cfg__endpoints.ts +36 -0
- package/src/cfg/generated/_utils/hooks/cfg__health.ts +51 -0
- package/src/cfg/generated/_utils/hooks/cfg__leads.ts +127 -0
- package/src/cfg/generated/_utils/hooks/cfg__leads__lead_submission.ts +41 -0
- package/src/cfg/generated/_utils/hooks/cfg__newsletter.ts +80 -0
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__bulk_email.ts +41 -0
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__campaigns.ts +128 -0
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__logs.ts +36 -0
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__newsletters.ts +51 -0
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__subscriptions.ts +76 -0
- package/src/cfg/generated/_utils/hooks/cfg__newsletter__testing.ts +41 -0
- package/src/cfg/generated/_utils/hooks/cfg__payments.ts +2716 -0
- package/src/cfg/generated/_utils/hooks/cfg__payments__webhooks.ts +100 -0
- package/src/cfg/generated/_utils/hooks/cfg__support.ts +235 -0
- package/src/cfg/generated/_utils/hooks/cfg__tasks.ts +193 -0
- package/src/cfg/generated/_utils/hooks/index.ts +43 -0
- package/src/cfg/generated/_utils/schemas/APIKeyCreate.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/APIKeyCreateRequest.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/APIKeyDetail.schema.ts +35 -0
- package/src/cfg/generated/_utils/schemas/APIKeyList.schema.ts +32 -0
- package/src/cfg/generated/_utils/schemas/APIKeyUpdate.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/APIKeyUpdateRequest.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/APIKeyValidationRequest.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/APIKeyValidationResponse.schema.ts +29 -0
- package/src/cfg/generated/_utils/schemas/APIKeysOverview.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/APIResponse.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/APIResponseRequest.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/AdminPaymentCreate.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/AdminPaymentCreateRequest.schema.ts +27 -0
- package/src/cfg/generated/_utils/schemas/AdminPaymentDetail.schema.ts +50 -0
- package/src/cfg/generated/_utils/schemas/AdminPaymentList.schema.ts +38 -0
- package/src/cfg/generated/_utils/schemas/AdminPaymentStats.schema.ts +29 -0
- package/src/cfg/generated/_utils/schemas/AdminPaymentUpdate.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/AdminPaymentUpdateRequest.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/AdminUser.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/BalanceOverview.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/BulkEmailRequest.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/BulkEmailResponse.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/ChartDataPoint.schema.ts +20 -0
- package/src/cfg/generated/_utils/schemas/ChartSeries.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/Currency.schema.ts +35 -0
- package/src/cfg/generated/_utils/schemas/CurrencyAnalyticsItem.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/CurrencyList.schema.ts +30 -0
- package/src/cfg/generated/_utils/schemas/EmailLog.schema.ts +31 -0
- package/src/cfg/generated/_utils/schemas/Endpoint.schema.ts +35 -0
- package/src/cfg/generated/_utils/schemas/EndpointGroup.schema.ts +28 -0
- package/src/cfg/generated/_utils/schemas/EndpointsStatus.schema.ts +28 -0
- package/src/cfg/generated/_utils/schemas/ErrorResponse.schema.ts +20 -0
- package/src/cfg/generated/_utils/schemas/HealthCheck.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/LeadSubmission.schema.ts +29 -0
- package/src/cfg/generated/_utils/schemas/LeadSubmissionError.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/LeadSubmissionRequest.schema.ts +29 -0
- package/src/cfg/generated/_utils/schemas/LeadSubmissionResponse.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/Message.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/MessageCreate.schema.ts +15 -0
- package/src/cfg/generated/_utils/schemas/MessageCreateRequest.schema.ts +15 -0
- package/src/cfg/generated/_utils/schemas/MessageRequest.schema.ts +15 -0
- package/src/cfg/generated/_utils/schemas/Network.schema.ts +30 -0
- package/src/cfg/generated/_utils/schemas/Newsletter.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/NewsletterCampaign.schema.ts +33 -0
- package/src/cfg/generated/_utils/schemas/NewsletterCampaignRequest.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/NewsletterSubscription.schema.ts +27 -0
- package/src/cfg/generated/_utils/schemas/OTPErrorResponse.schema.ts +19 -0
- package/src/cfg/generated/_utils/schemas/OTPRequestRequest.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/OTPRequestResponse.schema.ts +19 -0
- package/src/cfg/generated/_utils/schemas/OTPVerifyRequest.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/OTPVerifyResponse.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/PaginatedAPIKeyListList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedAdminPaymentListList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedAdminPaymentStatsList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedAdminUserList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedCurrencyListList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedEmailLogList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedEndpointGroupList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedLeadSubmissionList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedMessageList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedNetworkList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedNewsletterCampaignList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedNewsletterList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedNewsletterSubscriptionList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedPaymentListList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedProviderCurrencyList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedRecentPaymentList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedRecentTransactionList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedSubscriptionListList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedTariffList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedTicketList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedTransactionList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedUserBalanceList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedWebhookEventListList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaginatedWebhookStatsList.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PatchedAPIKeyUpdateRequest.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PatchedAdminPaymentUpdateRequest.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/PatchedLeadSubmissionRequest.schema.ts +29 -0
- package/src/cfg/generated/_utils/schemas/PatchedMessageRequest.schema.ts +15 -0
- package/src/cfg/generated/_utils/schemas/PatchedNewsletterCampaignRequest.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/PatchedPaymentRequest.schema.ts +32 -0
- package/src/cfg/generated/_utils/schemas/PatchedSubscriptionRequest.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/PatchedTicketRequest.schema.ts +18 -0
- package/src/cfg/generated/_utils/schemas/PatchedUnsubscribeRequest.schema.ts +19 -0
- package/src/cfg/generated/_utils/schemas/PatchedUserProfileUpdateRequest.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/Payment.schema.ts +48 -0
- package/src/cfg/generated/_utils/schemas/PaymentAnalyticsResponse.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/PaymentCreate.schema.ts +30 -0
- package/src/cfg/generated/_utils/schemas/PaymentCreateRequest.schema.ts +30 -0
- package/src/cfg/generated/_utils/schemas/PaymentList.schema.ts +32 -0
- package/src/cfg/generated/_utils/schemas/PaymentOverview.schema.ts +31 -0
- package/src/cfg/generated/_utils/schemas/PaymentRequest.schema.ts +32 -0
- package/src/cfg/generated/_utils/schemas/PaymentsChartResponse.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/PaymentsDashboardOverview.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/PaymentsMetrics.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/ProviderAnalyticsItem.schema.ts +24 -0
- package/src/cfg/generated/_utils/schemas/ProviderCurrency.schema.ts +36 -0
- package/src/cfg/generated/_utils/schemas/QueueAction.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/QueueActionRequest.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/QueueStatus.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/QuickHealth.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/RecentPayment.schema.ts +32 -0
- package/src/cfg/generated/_utils/schemas/RecentTransaction.schema.ts +29 -0
- package/src/cfg/generated/_utils/schemas/SendCampaignRequest.schema.ts +19 -0
- package/src/cfg/generated/_utils/schemas/SendCampaignResponse.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/Sender.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/SubscribeRequest.schema.ts +20 -0
- package/src/cfg/generated/_utils/schemas/SubscribeResponse.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/Subscription.schema.ts +41 -0
- package/src/cfg/generated/_utils/schemas/SubscriptionCreate.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/SubscriptionCreateRequest.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/SubscriptionList.schema.ts +32 -0
- package/src/cfg/generated/_utils/schemas/SubscriptionOverview.schema.ts +37 -0
- package/src/cfg/generated/_utils/schemas/SubscriptionRequest.schema.ts +26 -0
- package/src/cfg/generated/_utils/schemas/SuccessResponse.schema.ts +20 -0
- package/src/cfg/generated/_utils/schemas/SupportedProviders.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/Tariff.schema.ts +34 -0
- package/src/cfg/generated/_utils/schemas/TaskStatistics.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/TestEmailRequest.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/Ticket.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/TicketRequest.schema.ts +18 -0
- package/src/cfg/generated/_utils/schemas/TokenRefresh.schema.ts +16 -0
- package/src/cfg/generated/_utils/schemas/TokenRefreshRequest.schema.ts +15 -0
- package/src/cfg/generated/_utils/schemas/Transaction.schema.ts +35 -0
- package/src/cfg/generated/_utils/schemas/Unsubscribe.schema.ts +19 -0
- package/src/cfg/generated/_utils/schemas/UnsubscribeRequest.schema.ts +19 -0
- package/src/cfg/generated/_utils/schemas/User.schema.ts +34 -0
- package/src/cfg/generated/_utils/schemas/UserBalance.schema.ts +29 -0
- package/src/cfg/generated/_utils/schemas/UserProfileUpdateRequest.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/WebhookEvent.schema.ts +31 -0
- package/src/cfg/generated/_utils/schemas/WebhookEventList.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/WebhookEventListRequest.schema.ts +25 -0
- package/src/cfg/generated/_utils/schemas/WebhookEventRequest.schema.ts +30 -0
- package/src/cfg/generated/_utils/schemas/WebhookHealth.schema.ts +21 -0
- package/src/cfg/generated/_utils/schemas/WebhookProviderStats.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/WebhookProviderStatsRequest.schema.ts +23 -0
- package/src/cfg/generated/_utils/schemas/WebhookResponse.schema.ts +27 -0
- package/src/cfg/generated/_utils/schemas/WebhookResponseRequest.schema.ts +27 -0
- package/src/cfg/generated/_utils/schemas/WebhookStats.schema.ts +27 -0
- package/src/cfg/generated/_utils/schemas/WebhookStatsRequest.schema.ts +27 -0
- package/src/cfg/generated/_utils/schemas/WorkerAction.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/WorkerActionRequest.schema.ts +22 -0
- package/src/cfg/generated/_utils/schemas/index.ts +160 -0
- package/src/cfg/generated/api-instance.ts +131 -0
- package/src/cfg/generated/cfg__accounts/client.ts +30 -0
- package/src/cfg/generated/cfg__accounts/index.ts +2 -0
- package/src/cfg/generated/cfg__accounts/models.ts +100 -0
- package/src/cfg/generated/cfg__accounts__auth/client.ts +22 -0
- package/src/cfg/generated/cfg__accounts__auth/index.ts +2 -0
- package/src/cfg/generated/cfg__accounts__auth/models.ts +17 -0
- package/src/cfg/generated/cfg__accounts__user_profile/client.ts +77 -0
- package/src/cfg/generated/cfg__accounts__user_profile/index.ts +2 -0
- package/src/cfg/generated/cfg__accounts__user_profile/models.ts +56 -0
- package/src/cfg/generated/cfg__endpoints/client.ts +22 -0
- package/src/cfg/generated/cfg__endpoints/index.ts +2 -0
- package/src/cfg/generated/cfg__endpoints/models.ts +68 -0
- package/src/cfg/generated/cfg__health/client.ts +30 -0
- package/src/cfg/generated/cfg__health/index.ts +2 -0
- package/src/cfg/generated/cfg__health/models.ts +34 -0
- package/src/cfg/generated/cfg__leads/client.ts +79 -0
- package/src/cfg/generated/cfg__leads/index.ts +2 -0
- package/src/cfg/generated/cfg__leads/models.ts +99 -0
- package/src/cfg/generated/cfg__leads__lead_submission/client.ts +25 -0
- package/src/cfg/generated/cfg__leads__lead_submission/index.ts +2 -0
- package/src/cfg/generated/cfg__leads__lead_submission/models.ts +48 -0
- package/src/cfg/generated/cfg__newsletter/client.ts +38 -0
- package/src/cfg/generated/cfg__newsletter/index.ts +2 -0
- package/src/cfg/generated/cfg__newsletter/models.ts +71 -0
- package/src/cfg/generated/cfg__newsletter__bulk_email/client.ts +24 -0
- package/src/cfg/generated/cfg__newsletter__bulk_email/index.ts +2 -0
- package/src/cfg/generated/cfg__newsletter__bulk_email/models.ts +29 -0
- package/src/cfg/generated/cfg__newsletter__campaigns/client.ts +85 -0
- package/src/cfg/generated/cfg__newsletter__campaigns/index.ts +2 -0
- package/src/cfg/generated/cfg__newsletter__campaigns/models.ts +100 -0
- package/src/cfg/generated/cfg__newsletter__logs/client.ts +35 -0
- package/src/cfg/generated/cfg__newsletter__logs/index.ts +2 -0
- package/src/cfg/generated/cfg__newsletter__logs/models.ts +51 -0
- package/src/cfg/generated/cfg__newsletter__newsletters/client.ts +45 -0
- package/src/cfg/generated/cfg__newsletter__newsletters/index.ts +2 -0
- package/src/cfg/generated/cfg__newsletter__newsletters/models.ts +42 -0
- package/src/cfg/generated/cfg__newsletter__subscriptions/client.ts +55 -0
- package/src/cfg/generated/cfg__newsletter__subscriptions/index.ts +2 -0
- package/src/cfg/generated/cfg__newsletter__subscriptions/models.ts +92 -0
- package/src/cfg/generated/cfg__newsletter__testing/client.ts +24 -0
- package/src/cfg/generated/cfg__newsletter__testing/index.ts +2 -0
- package/src/cfg/generated/cfg__newsletter__testing/models.ts +24 -0
- package/src/cfg/generated/cfg__payments/client.ts +1814 -0
- package/src/cfg/generated/cfg__payments/index.ts +2 -0
- package/src/cfg/generated/cfg__payments/models.ts +1855 -0
- package/src/cfg/generated/cfg__payments__webhooks/client.ts +75 -0
- package/src/cfg/generated/cfg__payments__webhooks/index.ts +2 -0
- package/src/cfg/generated/cfg__payments__webhooks/models.ts +87 -0
- package/src/cfg/generated/cfg__support/client.ts +133 -0
- package/src/cfg/generated/cfg__support/index.ts +2 -0
- package/src/cfg/generated/cfg__support/models.ts +165 -0
- package/src/cfg/generated/cfg__tasks/client.ts +94 -0
- package/src/cfg/generated/cfg__tasks/index.ts +2 -0
- package/src/cfg/generated/cfg__tasks/models.ts +140 -0
- package/src/cfg/generated/client.ts +302 -0
- package/src/cfg/generated/enums.ts +608 -0
- package/src/cfg/generated/errors.ts +116 -0
- package/src/cfg/generated/http.ts +98 -0
- package/src/cfg/generated/index.ts +299 -0
- package/src/cfg/generated/logger.ts +259 -0
- package/src/cfg/generated/package.json +39 -0
- package/src/cfg/generated/retry.ts +175 -0
- package/src/cfg/generated/schema.ts +18399 -0
- package/src/cfg/generated/storage.ts +158 -0
- package/src/cfg/generated/tsconfig.json +20 -0
- package/src/cfg/services/auth/AuthService.ts +165 -0
- package/src/cfg/services/auth/index.ts +7 -0
- package/src/cfg/services/index.ts +31 -0
- package/src/cfg/services/leads/LeadsService.ts +133 -0
- package/src/cfg/services/leads/index.ts +7 -0
- package/src/cfg/services/newsletter/BulkEmailService.ts +35 -0
- package/src/cfg/services/newsletter/CampaignsService.ts +138 -0
- package/src/cfg/services/newsletter/NewsletterService.ts +79 -0
- package/src/cfg/services/newsletter/NewslettersListService.ts +48 -0
- package/src/cfg/services/newsletter/index.ts +10 -0
- package/src/cfg/services/payments/ApiKeysService.ts +183 -0
- package/src/cfg/services/payments/DashboardService.ts +197 -0
- package/src/cfg/services/payments/PaymentsService.ts +192 -0
- package/src/cfg/services/payments/SubscriptionsService.ts +202 -0
- package/src/cfg/services/payments/index.ts +10 -0
- package/src/cfg/services/support/SupportService.ts +142 -0
- package/src/cfg/services/support/index.ts +7 -0
- package/src/cfg/services/tasks/TasksService.ts +170 -0
- package/src/cfg/services/tasks/index.ts +7 -0
- package/src/cfg/services/webhooks/WebhooksService.ts +108 -0
- package/src/cfg/services/webhooks/index.ts +7 -0
- package/src/index.ts +35 -0
package/package.json
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@djangocfg/api",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "DjangoCFG",
|
|
6
|
+
"url": "https://djangocfg.com"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"description": "Auto-generated TypeScript API clients",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"main": "./dist/index.cjs",
|
|
12
|
+
"module": "./dist/index.mjs",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.mjs",
|
|
18
|
+
"require": "./dist/index.cjs"
|
|
19
|
+
},
|
|
20
|
+
"./cfg/contexts": {
|
|
21
|
+
"types": "./src/cfg/contexts/index.ts",
|
|
22
|
+
"import": "./src/cfg/contexts/index.ts",
|
|
23
|
+
"default": "./src/cfg/contexts/index.ts"
|
|
24
|
+
},
|
|
25
|
+
"./cfg/generated": {
|
|
26
|
+
"types": "./src/cfg/generated/index.ts",
|
|
27
|
+
"import": "./src/cfg/generated/index.ts",
|
|
28
|
+
"default": "./src/cfg/generated/index.ts"
|
|
29
|
+
},
|
|
30
|
+
"./cfg/generated/hooks": {
|
|
31
|
+
"types": "./src/cfg/generated/_utils/hooks/index.ts",
|
|
32
|
+
"import": "./src/cfg/generated/_utils/hooks/index.ts",
|
|
33
|
+
"default": "./src/cfg/generated/_utils/hooks/index.ts"
|
|
34
|
+
},
|
|
35
|
+
"./cfg/generated/fetchers": {
|
|
36
|
+
"types": "./src/cfg/generated/_utils/fetchers/index.ts",
|
|
37
|
+
"import": "./src/cfg/generated/_utils/fetchers/index.ts",
|
|
38
|
+
"default": "./src/cfg/generated/_utils/fetchers/index.ts"
|
|
39
|
+
},
|
|
40
|
+
"./cfg/generated/schemas": {
|
|
41
|
+
"types": "./src/cfg/generated/_utils/schemas/index.ts",
|
|
42
|
+
"import": "./src/cfg/generated/_utils/schemas/index.ts",
|
|
43
|
+
"default": "./src/cfg/generated/_utils/schemas/index.ts"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"files": [
|
|
47
|
+
"dist",
|
|
48
|
+
"src",
|
|
49
|
+
"README.md",
|
|
50
|
+
"LICENSE"
|
|
51
|
+
],
|
|
52
|
+
"scripts": {
|
|
53
|
+
"build": "tsup",
|
|
54
|
+
"clean": "rm -rf dist",
|
|
55
|
+
"dev": "tsup --watch",
|
|
56
|
+
"check": "tsc --noEmit"
|
|
57
|
+
},
|
|
58
|
+
"peerDependencies": {
|
|
59
|
+
"consola": "^3.4.2",
|
|
60
|
+
"moment": "^2.30.1",
|
|
61
|
+
"p-retry": "^7.0.0",
|
|
62
|
+
"react": "^19.1.0",
|
|
63
|
+
"react-dom": "^19.1.0",
|
|
64
|
+
"swr": "^2.3.0",
|
|
65
|
+
"zod": "^4.0.10"
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@types/node": "^22.15.3",
|
|
69
|
+
"@types/react": "19.2.2",
|
|
70
|
+
"@types/react-dom": "19.2.1",
|
|
71
|
+
"@djangocfg/typescript-config": "^1.0.1",
|
|
72
|
+
"react": "^19.1.0",
|
|
73
|
+
"react-dom": "^19.1.0",
|
|
74
|
+
"tsup": "^8.5.0",
|
|
75
|
+
"typescript": "5.8.2"
|
|
76
|
+
},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"access": "public"
|
|
79
|
+
},
|
|
80
|
+
"engines": {
|
|
81
|
+
"node": ">=20.11.1"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Client for all API services
|
|
3
|
+
*
|
|
4
|
+
* Provides:
|
|
5
|
+
* - Centralized API instance with JWT token management
|
|
6
|
+
* - LocalStorage adapter for browser environments
|
|
7
|
+
* - Singleton pattern for API client
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { API, LocalStorageAdapter } from './generated';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Singleton API instance with JWT token management
|
|
14
|
+
* Uses LocalStorage for token persistence
|
|
15
|
+
*/
|
|
16
|
+
const api = new API(
|
|
17
|
+
typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_API_URL
|
|
18
|
+
? process.env.NEXT_PUBLIC_API_URL
|
|
19
|
+
: 'http://localhost:8000',
|
|
20
|
+
{
|
|
21
|
+
storage: new LocalStorageAdapter()
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Base Client Class
|
|
27
|
+
*
|
|
28
|
+
* Service classes can extend this to access api instance
|
|
29
|
+
*/
|
|
30
|
+
export class BaseClient {
|
|
31
|
+
/**
|
|
32
|
+
* Authenticated API instance with JWT management
|
|
33
|
+
*/
|
|
34
|
+
protected static api = api;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Export API instance for direct access
|
|
39
|
+
*
|
|
40
|
+
* Usage:
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import { api } from '@djangocfg/api';
|
|
43
|
+
*
|
|
44
|
+
* // Set JWT tokens after login
|
|
45
|
+
* api.setToken('access-token', 'refresh-token');
|
|
46
|
+
*
|
|
47
|
+
* // Check authentication
|
|
48
|
+
* if (api.isAuthenticated()) {
|
|
49
|
+
* // Make authenticated requests
|
|
50
|
+
* }
|
|
51
|
+
*
|
|
52
|
+
* // Clear tokens on logout
|
|
53
|
+
* api.clearTokens();
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export { api };
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accounts Context
|
|
3
|
+
*
|
|
4
|
+
* Manages user authentication and profile operations using generated SWR hooks
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - OTP-based authentication
|
|
8
|
+
* - User profile management
|
|
9
|
+
* - Avatar upload
|
|
10
|
+
* - Profile updates
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
"use client";
|
|
14
|
+
|
|
15
|
+
import { createContext, useContext, ReactNode } from 'react';
|
|
16
|
+
import { SWRConfig, useSWRConfig } from 'swr';
|
|
17
|
+
import { api } from '../BaseClient';
|
|
18
|
+
import {
|
|
19
|
+
useAccountsProfileRetrieve,
|
|
20
|
+
usePartialUpdateAccountsProfilePartialUpdate,
|
|
21
|
+
useUpdateAccountsProfileUpdateUpdate,
|
|
22
|
+
useCreateAccountsProfileAvatarCreate,
|
|
23
|
+
useCreateAccountsOtpRequestCreate,
|
|
24
|
+
useCreateAccountsOtpVerifyCreate,
|
|
25
|
+
useCreateAccountsTokenRefreshCreate,
|
|
26
|
+
} from '../generated/_utils/hooks';
|
|
27
|
+
import type { API } from '../generated';
|
|
28
|
+
import type {
|
|
29
|
+
User,
|
|
30
|
+
UserProfileUpdateRequest,
|
|
31
|
+
PatchedUserProfileUpdateRequest,
|
|
32
|
+
OTPRequestRequest,
|
|
33
|
+
OTPVerifyRequest,
|
|
34
|
+
OTPRequestResponse,
|
|
35
|
+
OTPVerifyResponse,
|
|
36
|
+
TokenRefresh,
|
|
37
|
+
} from '../generated/_utils/schemas';
|
|
38
|
+
|
|
39
|
+
// Re-export schemas for external use
|
|
40
|
+
export { PatchedUserProfileUpdateRequestSchema } from '../generated/_utils/schemas/PatchedUserProfileUpdateRequest.schema';
|
|
41
|
+
export type { PatchedUserProfileUpdateRequest };
|
|
42
|
+
|
|
43
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
44
|
+
// Context Type
|
|
45
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
46
|
+
|
|
47
|
+
export interface AccountsContextValue {
|
|
48
|
+
// Current user profile
|
|
49
|
+
profile?: User;
|
|
50
|
+
isLoadingProfile: boolean;
|
|
51
|
+
profileError: Error | null;
|
|
52
|
+
|
|
53
|
+
// Profile operations
|
|
54
|
+
updateProfile: (data: UserProfileUpdateRequest) => Promise<User>;
|
|
55
|
+
partialUpdateProfile: (data: PatchedUserProfileUpdateRequest) => Promise<User>;
|
|
56
|
+
uploadAvatar: (formData: FormData) => Promise<User>;
|
|
57
|
+
refreshProfile: () => Promise<User | undefined>;
|
|
58
|
+
|
|
59
|
+
// Authentication
|
|
60
|
+
requestOTP: (data: OTPRequestRequest) => Promise<OTPRequestResponse>;
|
|
61
|
+
verifyOTP: (data: OTPVerifyRequest) => Promise<OTPVerifyResponse>;
|
|
62
|
+
refreshToken: (refresh: string) => Promise<TokenRefresh>;
|
|
63
|
+
logout: () => void;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
67
|
+
// Context
|
|
68
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
69
|
+
|
|
70
|
+
const AccountsContext = createContext<AccountsContextValue | undefined>(undefined);
|
|
71
|
+
|
|
72
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
73
|
+
// Provider Component
|
|
74
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
75
|
+
|
|
76
|
+
interface AccountsProviderProps {
|
|
77
|
+
children: ReactNode;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function AccountsProvider({ children }: AccountsProviderProps) {
|
|
81
|
+
const { mutate } = useSWRConfig();
|
|
82
|
+
|
|
83
|
+
// SWR config - disable auto-revalidation
|
|
84
|
+
const swrConfig = {
|
|
85
|
+
revalidateOnFocus: false,
|
|
86
|
+
revalidateOnReconnect: false,
|
|
87
|
+
revalidateIfStale: false,
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// Get current user profile
|
|
91
|
+
const {
|
|
92
|
+
data: profile,
|
|
93
|
+
error: profileError,
|
|
94
|
+
isLoading: isLoadingProfile,
|
|
95
|
+
mutate: mutateProfile,
|
|
96
|
+
} = useAccountsProfileRetrieve(api as unknown as API);
|
|
97
|
+
|
|
98
|
+
// Mutation hooks
|
|
99
|
+
const updateMutation = useUpdateAccountsProfileUpdateUpdate();
|
|
100
|
+
const partialUpdateMutation = usePartialUpdateAccountsProfilePartialUpdate();
|
|
101
|
+
const avatarMutation = useCreateAccountsProfileAvatarCreate();
|
|
102
|
+
const otpRequestMutation = useCreateAccountsOtpRequestCreate();
|
|
103
|
+
const otpVerifyMutation = useCreateAccountsOtpVerifyCreate();
|
|
104
|
+
const tokenRefreshMutation = useCreateAccountsTokenRefreshCreate();
|
|
105
|
+
|
|
106
|
+
// Refresh profile
|
|
107
|
+
const refreshProfile = async (): Promise<User | undefined> => {
|
|
108
|
+
return await mutateProfile();
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
// Update profile (full)
|
|
112
|
+
const updateProfile = async (data: UserProfileUpdateRequest): Promise<User> => {
|
|
113
|
+
const result = await updateMutation(data, api as unknown as API);
|
|
114
|
+
await refreshProfile();
|
|
115
|
+
return result as User;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
// Partial update profile
|
|
119
|
+
const partialUpdateProfile = async (data: PatchedUserProfileUpdateRequest): Promise<User> => {
|
|
120
|
+
const result = await partialUpdateMutation(data, api as unknown as API);
|
|
121
|
+
await refreshProfile();
|
|
122
|
+
return result as User;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// Upload avatar
|
|
126
|
+
const uploadAvatar = async (formData: FormData): Promise<User> => {
|
|
127
|
+
const result = await avatarMutation(formData, api as unknown as API);
|
|
128
|
+
await refreshProfile();
|
|
129
|
+
return result as User;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
// Request OTP
|
|
133
|
+
const requestOTP = async (data: OTPRequestRequest): Promise<OTPRequestResponse> => {
|
|
134
|
+
const result = await otpRequestMutation(data, api as unknown as API);
|
|
135
|
+
return result as OTPRequestResponse;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
// Verify OTP
|
|
139
|
+
const verifyOTP = async (data: OTPVerifyRequest): Promise<OTPVerifyResponse> => {
|
|
140
|
+
const result = await otpVerifyMutation(data, api as unknown as API);
|
|
141
|
+
|
|
142
|
+
// Automatically save tokens after successful verification
|
|
143
|
+
if (result.access && result.refresh) {
|
|
144
|
+
api.setToken(result.access, result.refresh);
|
|
145
|
+
// Refresh profile to load user data with new token
|
|
146
|
+
await refreshProfile();
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return result as OTPVerifyResponse;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
// Refresh token
|
|
153
|
+
const refreshToken = async (refresh: string): Promise<TokenRefresh> => {
|
|
154
|
+
const result = await tokenRefreshMutation({ refresh }, api as unknown as API);
|
|
155
|
+
|
|
156
|
+
// Automatically save new access token
|
|
157
|
+
if (result.access) {
|
|
158
|
+
api.setToken(result.access, refresh);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return result as TokenRefresh;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
// Logout - clear tokens and invalidate profile cache
|
|
165
|
+
const logout = () => {
|
|
166
|
+
api.clearTokens();
|
|
167
|
+
// Invalidate profile cache to trigger re-fetch (which will fail and clear profile state)
|
|
168
|
+
mutateProfile(undefined, false);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
const value: AccountsContextValue = {
|
|
172
|
+
profile,
|
|
173
|
+
isLoadingProfile,
|
|
174
|
+
profileError,
|
|
175
|
+
updateProfile,
|
|
176
|
+
partialUpdateProfile,
|
|
177
|
+
uploadAvatar,
|
|
178
|
+
refreshProfile,
|
|
179
|
+
requestOTP,
|
|
180
|
+
verifyOTP,
|
|
181
|
+
refreshToken,
|
|
182
|
+
logout,
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
return (
|
|
186
|
+
<SWRConfig value={swrConfig}>
|
|
187
|
+
<AccountsContext.Provider value={value}>
|
|
188
|
+
{children}
|
|
189
|
+
</AccountsContext.Provider>
|
|
190
|
+
</SWRConfig>
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
195
|
+
// Hook
|
|
196
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
197
|
+
|
|
198
|
+
export function useAccountsContext(): AccountsContextValue {
|
|
199
|
+
const context = useContext(AccountsContext);
|
|
200
|
+
if (!context) {
|
|
201
|
+
throw new Error('useAccountsContext must be used within AccountsProvider');
|
|
202
|
+
}
|
|
203
|
+
return context;
|
|
204
|
+
}
|
|
205
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import React, { createContext, useContext, type ReactNode } from 'react';
|
|
4
|
+
import { SWRConfig } from 'swr';
|
|
5
|
+
import { api } from '../BaseClient';
|
|
6
|
+
import {
|
|
7
|
+
useLeadsList,
|
|
8
|
+
useLeadsRetrieve,
|
|
9
|
+
useCreateLeadsCreate,
|
|
10
|
+
useUpdateLeadsUpdate,
|
|
11
|
+
usePartialUpdateLeadsPartialUpdate,
|
|
12
|
+
useDeleteLeadsDestroy,
|
|
13
|
+
} from '../generated/_utils/hooks';
|
|
14
|
+
import type { API } from '../generated';
|
|
15
|
+
import type {
|
|
16
|
+
LeadSubmission,
|
|
17
|
+
LeadSubmissionRequest,
|
|
18
|
+
PatchedLeadSubmissionRequest,
|
|
19
|
+
PaginatedLeadSubmissionList,
|
|
20
|
+
} from '../generated/_utils/schemas';
|
|
21
|
+
|
|
22
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
23
|
+
// Context Type
|
|
24
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
25
|
+
|
|
26
|
+
export interface LeadsContextValue {
|
|
27
|
+
// List operations
|
|
28
|
+
leads: PaginatedLeadSubmissionList | undefined;
|
|
29
|
+
isLoadingLeads: boolean;
|
|
30
|
+
leadsError: Error | undefined;
|
|
31
|
+
refreshLeads: () => Promise<void>;
|
|
32
|
+
|
|
33
|
+
// CRUD operations
|
|
34
|
+
getLead: (id: number) => Promise<LeadSubmission | undefined>;
|
|
35
|
+
createLead: (data: LeadSubmissionRequest) => Promise<LeadSubmission>;
|
|
36
|
+
updateLead: (id: number, data: LeadSubmissionRequest) => Promise<LeadSubmission>;
|
|
37
|
+
partialUpdateLead: (id: number, data: PatchedLeadSubmissionRequest) => Promise<LeadSubmission>;
|
|
38
|
+
deleteLead: (id: number) => Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
42
|
+
// Context
|
|
43
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
44
|
+
|
|
45
|
+
const LeadsContext = createContext<LeadsContextValue | undefined>(undefined);
|
|
46
|
+
|
|
47
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
48
|
+
// Provider
|
|
49
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
50
|
+
|
|
51
|
+
export function LeadsProvider({ children }: { children: ReactNode }) {
|
|
52
|
+
const swrConfig = {
|
|
53
|
+
revalidateOnFocus: false,
|
|
54
|
+
revalidateOnReconnect: false,
|
|
55
|
+
revalidateIfStale: false,
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// List leads
|
|
59
|
+
const {
|
|
60
|
+
data: leads,
|
|
61
|
+
error: leadsError,
|
|
62
|
+
isLoading: isLoadingLeads,
|
|
63
|
+
mutate: mutateLeads,
|
|
64
|
+
} = useLeadsList({}, api as unknown as API);
|
|
65
|
+
|
|
66
|
+
const refreshLeads = async () => {
|
|
67
|
+
await mutateLeads();
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// Mutations
|
|
71
|
+
const createMutation = useCreateLeadsCreate();
|
|
72
|
+
const updateMutation = useUpdateLeadsUpdate();
|
|
73
|
+
const partialUpdateMutation = usePartialUpdateLeadsPartialUpdate();
|
|
74
|
+
const deleteMutation = useDeleteLeadsDestroy();
|
|
75
|
+
|
|
76
|
+
// Get single lead
|
|
77
|
+
const getLead = async (id: number): Promise<LeadSubmission | undefined> => {
|
|
78
|
+
const { data } = useLeadsRetrieve(id, api as unknown as API);
|
|
79
|
+
return data;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// Create lead
|
|
83
|
+
const createLead = async (data: LeadSubmissionRequest): Promise<LeadSubmission> => {
|
|
84
|
+
const result = await createMutation(data, api as unknown as API);
|
|
85
|
+
await refreshLeads();
|
|
86
|
+
return result as LeadSubmission;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// Update lead
|
|
90
|
+
const updateLead = async (id: number, data: LeadSubmissionRequest): Promise<LeadSubmission> => {
|
|
91
|
+
const result = await updateMutation(id, data, api as unknown as API);
|
|
92
|
+
await refreshLeads();
|
|
93
|
+
return result as LeadSubmission;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// Partial update lead (currently not supported by generated API)
|
|
97
|
+
const partialUpdateLead = async (
|
|
98
|
+
id: number,
|
|
99
|
+
data: PatchedLeadSubmissionRequest
|
|
100
|
+
): Promise<LeadSubmission> => {
|
|
101
|
+
// TODO: Fix generator to include data parameter for PATCH requests
|
|
102
|
+
// const result = await partialUpdateMutation(id, data, api as unknown as API);
|
|
103
|
+
// For now, fallback to full update
|
|
104
|
+
const result = await updateMutation(id, data as unknown as LeadSubmissionRequest, api as unknown as API);
|
|
105
|
+
await refreshLeads();
|
|
106
|
+
return result as LeadSubmission;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
// Delete lead
|
|
110
|
+
const deleteLead = async (id: number): Promise<void> => {
|
|
111
|
+
await deleteMutation(id, api as unknown as API);
|
|
112
|
+
await refreshLeads();
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const value: LeadsContextValue = {
|
|
116
|
+
leads,
|
|
117
|
+
isLoadingLeads,
|
|
118
|
+
leadsError,
|
|
119
|
+
refreshLeads,
|
|
120
|
+
getLead,
|
|
121
|
+
createLead,
|
|
122
|
+
updateLead,
|
|
123
|
+
partialUpdateLead,
|
|
124
|
+
deleteLead,
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
return (
|
|
128
|
+
<SWRConfig value={swrConfig}>
|
|
129
|
+
<LeadsContext.Provider value={value}>{children}</LeadsContext.Provider>
|
|
130
|
+
</SWRConfig>
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
135
|
+
// Hook
|
|
136
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
137
|
+
|
|
138
|
+
export function useLeadsContext(): LeadsContextValue {
|
|
139
|
+
const context = useContext(LeadsContext);
|
|
140
|
+
if (!context) {
|
|
141
|
+
throw new Error('useLeadsContext must be used within LeadsProvider');
|
|
142
|
+
}
|
|
143
|
+
return context;
|
|
144
|
+
}
|
|
145
|
+
|