@smartbills/react-hooks-sdk 0.0.2-alpha.44 → 0.0.2-alpha.45
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/dist/@types/index.d.ts +1424 -0
- package/dist/@types/index.d.ts.map +1 -0
- package/dist/cjs/apis/SBApiKeys.cjs +55 -0
- package/dist/cjs/apis/SBApiKeys.cjs.map +1 -0
- package/dist/cjs/apis/api-logs/LogsAPI.cjs +42 -0
- package/dist/cjs/apis/api-logs/LogsAPI.cjs.map +1 -0
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs +147 -0
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs +88 -0
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs +58 -0
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs +57 -0
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/BusinessAPI.cjs +172 -0
- package/dist/cjs/apis/business/BusinessAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs +161 -0
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs +71 -0
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs +176 -0
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs +168 -0
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs.map +1 -0
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs +137 -0
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/fees/FeesAPI.cjs +167 -0
- package/dist/cjs/apis/business/fees/FeesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs +133 -0
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/ProductsAPI.cjs +184 -0
- package/dist/cjs/apis/business/products/ProductsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs +195 -0
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs +169 -0
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs +183 -0
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs +185 -0
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs +139 -0
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs +143 -0
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/tables/TablesAPI.cjs +75 -0
- package/dist/cjs/apis/business/tables/TablesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs +140 -0
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs +161 -0
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs +93 -0
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +239 -0
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +1 -0
- package/dist/cjs/apis/documents/DocumentsAPI.cjs +87 -0
- package/dist/cjs/apis/documents/DocumentsAPI.cjs.map +1 -0
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs +62 -0
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs.map +1 -0
- package/dist/cjs/apis/friends/FriendsAPI.cjs +150 -0
- package/dist/cjs/apis/friends/FriendsAPI.cjs.map +1 -0
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs +55 -0
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs +168 -0
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs.map +1 -0
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs +484 -0
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs.map +1 -0
- package/dist/cjs/apis/notifications/NotificationAPI.cjs +103 -0
- package/dist/cjs/apis/notifications/NotificationAPI.cjs.map +1 -0
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs +125 -0
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs.map +1 -0
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs +135 -0
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs.map +1 -0
- package/dist/cjs/apis/user/UserAPI.cjs +130 -0
- package/dist/cjs/apis/user/UserAPI.cjs.map +1 -0
- package/dist/cjs/apis/vendors/VendorsAPI.cjs +171 -0
- package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +1 -0
- package/dist/cjs/context/ApiContext.cjs +94 -0
- package/dist/cjs/context/ApiContext.cjs.map +1 -0
- package/dist/cjs/index.cjs +222 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/apis/SBApiKeys.mjs +55 -0
- package/dist/esm/apis/SBApiKeys.mjs.map +1 -0
- package/dist/esm/apis/api-logs/LogsAPI.mjs +39 -0
- package/dist/esm/apis/api-logs/LogsAPI.mjs.map +1 -0
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs +142 -0
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs +84 -0
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs +55 -0
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs +54 -0
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs.map +1 -0
- package/dist/esm/apis/business/BusinessAPI.mjs +165 -0
- package/dist/esm/apis/business/BusinessAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerAPI.mjs +155 -0
- package/dist/esm/apis/business/customers/CustomerAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs +68 -0
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs +170 -0
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/departments/DepartmentApi.mjs +161 -0
- package/dist/esm/apis/business/departments/DepartmentApi.mjs.map +1 -0
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs +132 -0
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/fees/FeesAPI.mjs +161 -0
- package/dist/esm/apis/business/fees/FeesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/locations/LocationsAPI.mjs +127 -0
- package/dist/esm/apis/business/locations/LocationsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/ProductsAPI.mjs +177 -0
- package/dist/esm/apis/business/products/ProductsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs +188 -0
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs +163 -0
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs +177 -0
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs +179 -0
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs +133 -0
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs +137 -0
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/tables/TablesAPI.mjs +70 -0
- package/dist/esm/apis/business/tables/TablesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs +134 -0
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs +153 -0
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs +88 -0
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs.map +1 -0
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs +230 -0
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +1 -0
- package/dist/esm/apis/documents/DocumentsAPI.mjs +82 -0
- package/dist/esm/apis/documents/DocumentsAPI.mjs.map +1 -0
- package/dist/esm/apis/expenses/ExpensesAPI.mjs +58 -0
- package/dist/esm/apis/expenses/ExpensesAPI.mjs.map +1 -0
- package/dist/esm/apis/friends/FriendsAPI.mjs +144 -0
- package/dist/esm/apis/friends/FriendsAPI.mjs.map +1 -0
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs +52 -0
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs.map +1 -0
- package/dist/esm/apis/invoices/InvoicesAPI.mjs +161 -0
- package/dist/esm/apis/invoices/InvoicesAPI.mjs.map +1 -0
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs +482 -0
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs.map +1 -0
- package/dist/esm/apis/notifications/NotificationAPI.mjs +98 -0
- package/dist/esm/apis/notifications/NotificationAPI.mjs.map +1 -0
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs +117 -0
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs.map +1 -0
- package/dist/esm/apis/receipts/ReceiptAPI.mjs +129 -0
- package/dist/esm/apis/receipts/ReceiptAPI.mjs.map +1 -0
- package/dist/esm/apis/user/UserAPI.mjs +123 -0
- package/dist/esm/apis/user/UserAPI.mjs.map +1 -0
- package/dist/esm/apis/vendors/VendorsAPI.mjs +162 -0
- package/dist/esm/apis/vendors/VendorsAPI.mjs.map +1 -0
- package/dist/esm/context/ApiContext.mjs +86 -0
- package/dist/esm/context/ApiContext.mjs.map +1 -0
- package/dist/esm/index.mjs +39 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/umd/index.js +5056 -0
- package/dist/umd/index.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { useApiClient } from '../../../context/ApiContext.mjs';
|
|
2
|
+
import { useQueryClient, useQuery, useInfiniteQuery } from '@tanstack/react-query';
|
|
3
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook for retrieving a bank account by ID
|
|
7
|
+
* @param id - The ID of the bank account to retrieve
|
|
8
|
+
* @param options - Optional request options
|
|
9
|
+
* @param config - Optional Axios request configuration
|
|
10
|
+
* @returns Query result containing the bank account data
|
|
11
|
+
*/
|
|
12
|
+
const useGetBankAccountByIdQuery = (id, options, config) => {
|
|
13
|
+
const client = useApiClient();
|
|
14
|
+
useQueryClient();
|
|
15
|
+
return useQuery({
|
|
16
|
+
queryKey: [SBApiKeys.BankAccounts, id, options],
|
|
17
|
+
queryFn: async () => {
|
|
18
|
+
return client.bankAccounts.getByIdAsync(id, options, config);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Hook for listing bank accounts
|
|
24
|
+
* @param request - Request parameters for listing bank accounts
|
|
25
|
+
* @param options - Optional request options
|
|
26
|
+
* @param config - Optional Axios request configuration
|
|
27
|
+
* @returns Query result containing paginated bank account data
|
|
28
|
+
*/
|
|
29
|
+
const useListBankAccountsQuery = (request = {
|
|
30
|
+
page: 1,
|
|
31
|
+
pageSize: 25
|
|
32
|
+
}, options, config) => {
|
|
33
|
+
const client = useApiClient();
|
|
34
|
+
useQueryClient();
|
|
35
|
+
return useQuery({
|
|
36
|
+
queryKey: [SBApiKeys.BankAccounts, request, options],
|
|
37
|
+
queryFn: async () => {
|
|
38
|
+
return client.bankAccounts.getAsync(request, options, config);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Hook for listing bank account transactions with infinite pagination
|
|
44
|
+
* @param id - The ID of the bank account
|
|
45
|
+
* @param request - Request parameters for listing transactions
|
|
46
|
+
* @param options - Optional request options
|
|
47
|
+
* @param config - Optional Axios request configuration
|
|
48
|
+
* @returns Infinite query result for implementing infinite scrolling with bank account transaction data
|
|
49
|
+
*/
|
|
50
|
+
const useListBankAccountTransactionsInfiniteQuery = (id, request = {
|
|
51
|
+
page: 1,
|
|
52
|
+
pageSize: 25
|
|
53
|
+
}, options, config) => {
|
|
54
|
+
const client = useApiClient();
|
|
55
|
+
useQueryClient();
|
|
56
|
+
return useInfiniteQuery({
|
|
57
|
+
initialPageParam: request.page || 1,
|
|
58
|
+
queryKey: [SBApiKeys.BankAccounts, id, "transactions", request, options],
|
|
59
|
+
queryFn: async ({
|
|
60
|
+
pageParam = 1
|
|
61
|
+
}) => {
|
|
62
|
+
const paginatedRequest = {
|
|
63
|
+
...request,
|
|
64
|
+
page: pageParam
|
|
65
|
+
};
|
|
66
|
+
return client.bankAccounts.listTransactions(id, paginatedRequest, options, config);
|
|
67
|
+
},
|
|
68
|
+
getPreviousPageParam: firstPage => {
|
|
69
|
+
if (firstPage.pagination.currentPage === 1) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return firstPage.pagination.currentPage - 1;
|
|
73
|
+
},
|
|
74
|
+
getNextPageParam: lastPage => {
|
|
75
|
+
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
76
|
+
return lastPage.pagination.currentPage + 1;
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export { useGetBankAccountByIdQuery, useListBankAccountTransactionsInfiniteQuery, useListBankAccountsQuery };
|
|
84
|
+
//# sourceMappingURL=BankAccountAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankAccountAPI.mjs","sources":["../../../../../src/apis/banks/accounts/BankAccountAPI.tsx"],"sourcesContent":["import { useApiClient } from \"@/context\";\nimport {\n\tBankAccountListRequest,\n\tBankTransactionListRequest,\n\tSBRequestOptions,\n\tSBList,\n\tSBBankTransaction,\n\tSBBankAccount,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport {\n\tuseInfiniteQuery,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Hook for retrieving a bank account by ID\n * @param id - The ID of the bank account to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank account data\n */\nexport const useGetBankAccountByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankAccount, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankAccounts, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.bankAccounts.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing bank accounts\n * @param request - Request parameters for listing bank accounts\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing paginated bank account data\n */\nexport const useListBankAccountsQuery = (\n\trequest: BankAccountListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankAccount[], SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankAccounts, request, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.bankAccounts.getAsync(request, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing bank account transactions with infinite pagination\n * @param id - The ID of the bank account\n * @param request - Request parameters for listing transactions\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with bank account transaction data\n */\nexport const useListBankAccountTransactionsInfiniteQuery = (\n\tid: number,\n\trequest: BankTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBBankTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.BankAccounts,\n\t\t\tid,\n\t\t\t\"transactions\",\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn client.bankAccounts.listTransactions(\n\t\t\t\tid,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage === 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n"],"names":["useGetBankAccountByIdQuery","id","options","config","client","useApiClient","useQueryClient","useQuery","queryKey","SBApiKeys","BankAccounts","queryFn","bankAccounts","getByIdAsync","useListBankAccountsQuery","request","page","pageSize","getAsync","useListBankAccountTransactionsInfiniteQuery","useInfiniteQuery","initialPageParam","pageParam","paginatedRequest","listTransactions","getPreviousPageParam","firstPage","pagination","currentPage","undefined","getNextPageParam","lastPage","pageCount"],"mappings":";;;;AAoBA;;;;;;AAMG;AACI,MAAMA,0BAA0B,GAAGA,CACzCC,EAAU,EACVC,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,QAAQ,CAAgC;IAC9CC,QAAQ,EAAE,CAACC,SAAS,CAACC,YAAY,EAAET,EAAE,EAAEC,OAAO,CAAC;IAC/CS,OAAO,EAAE,YAAW;MACnB,OAAOP,MAAM,CAACQ,YAAY,CAACC,YAAY,CAACZ,EAAE,EAAEC,OAAO,EAAEC,MAAM,CAAC;AAC7D;AACA,GAAA,CAAC;AACH;AAEA;;;;;;AAMG;AACUW,MAAAA,wBAAwB,GAAGA,CACvCC,OAAkC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAI,CAAA,EAC3Df,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,QAAQ,CAAkC;IAChDC,QAAQ,EAAE,CAACC,SAAS,CAACC,YAAY,EAAEK,OAAO,EAAEb,OAAO,CAAC;IACpDS,OAAO,EAAE,YAAW;MACnB,OAAOP,MAAM,CAACQ,YAAY,CAACM,QAAQ,CAACH,OAAO,EAAEb,OAAO,EAAEC,MAAM,CAAC;AAC9D;AACA,GAAA,CAAC;AACH;AAEA;;;;;;;AAOG;MACUgB,2CAA2C,GAAGA,CAC1DlB,EAAU,EACVc,OAAsC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAE,CAAE,EAC/Df,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOc,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAEN,OAAO,CAACC,IAAI,IAAI,CAAC;AACnCR,IAAAA,QAAQ,EAAE,CACTC,SAAS,CAACC,YAAY,EACtBT,EAAE,EACF,cAAc,EACdc,OAAO,EACPb,OAAO,CACP;IACDS,OAAO,EAAE,OAAO;AAAEW,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,MAAMC,gBAAgB,GAAG;AAAE,QAAA,GAAGR,OAAO;AAAEC,QAAAA,IAAI,EAAEM;OAAW;AACxD,MAAA,OAAOlB,MAAM,CAACQ,YAAY,CAACY,gBAAgB,CAC1CvB,EAAE,EACFsB,gBAAgB,EAChBrB,OAAO,EACPC,MAAM,CACN;KACD;IACDsB,oBAAoB,EAAGC,SAAS,IAAI;AACnC,MAAA,IAAIA,SAAS,CAACC,UAAU,CAACC,WAAW,KAAK,CAAC,EAAE;AAC3C,QAAA,OAAOC,SAAS;AACjB;AACA,MAAA,OAAOH,SAAS,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;KAC3C;IACDE,gBAAgB,EAAGC,QAAQ,IAAI;MAC9B,IACCA,QAAQ,CAACJ,UAAU,CAACC,WAAW,GAAGG,QAAQ,CAACJ,UAAU,CAACK,SAAS,EAC9D;AACD,QAAA,OAAOD,QAAQ,CAACJ,UAAU,CAACC,WAAW,GAAG,CAAC;AAC3C;AACA,MAAA,OAAOC,SAAS;AACjB;AACA,GAAA,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useQueryClient, useInfiniteQuery, useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
3
|
+
import { useApiClient } from '../../../context/ApiContext.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook for listing bank institutions with infinite pagination
|
|
7
|
+
* @param request - Request parameters for listing bank institutions
|
|
8
|
+
* @param options - Optional request options
|
|
9
|
+
* @param config - Optional Axios request configuration
|
|
10
|
+
* @returns Infinite query result for implementing infinite scrolling with bank institutions data
|
|
11
|
+
*/
|
|
12
|
+
function useListBankInstitutionsInfiniteQuery(request = {
|
|
13
|
+
page: 1,
|
|
14
|
+
pageSize: 25
|
|
15
|
+
}, options, config) {
|
|
16
|
+
const client = useApiClient();
|
|
17
|
+
useQueryClient();
|
|
18
|
+
return useInfiniteQuery({
|
|
19
|
+
initialPageParam: request.page || 1,
|
|
20
|
+
queryKey: [SBApiKeys.BankInstitutions, request, options],
|
|
21
|
+
queryFn: async ({
|
|
22
|
+
pageParam = 1
|
|
23
|
+
}) => {
|
|
24
|
+
const paginatedRequest = {
|
|
25
|
+
...request,
|
|
26
|
+
page: pageParam
|
|
27
|
+
};
|
|
28
|
+
return await client.bankInstitutions.listAsync(paginatedRequest, options, config);
|
|
29
|
+
},
|
|
30
|
+
getNextPageParam: lastPage => {
|
|
31
|
+
if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
32
|
+
return lastPage.pagination.currentPage + 1;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Hook for retrieving a bank institution by ID
|
|
40
|
+
* @param id - The ID of the bank institution to retrieve
|
|
41
|
+
* @param options - Optional request options
|
|
42
|
+
* @param config - Optional Axios request configuration
|
|
43
|
+
* @returns Query result containing the bank institution data
|
|
44
|
+
*/
|
|
45
|
+
const useGetBankInstitutionByIdQuery = (id, options, config) => {
|
|
46
|
+
const client = useApiClient();
|
|
47
|
+
useQueryClient();
|
|
48
|
+
return useQuery({
|
|
49
|
+
queryKey: [SBApiKeys.BankInstitutions, id],
|
|
50
|
+
queryFn: async () => await client.bankInstitutions.getByIdAsync(id, options, config)
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { useGetBankInstitutionByIdQuery, useListBankInstitutionsInfiniteQuery };
|
|
55
|
+
//# sourceMappingURL=BankInstitutionsAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankInstitutionsAPI.mjs","sources":["../../../../../src/apis/banks/bank-institutions/BankInstitutionsAPI.tsx"],"sourcesContent":["import {\n\tBankInstitutionListRequest,\n\tSBList,\n\tSBBankInstitution,\n\tSBRequestOptions,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport {\n\tuseInfiniteQuery,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useApiClient } from \"@/context\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Hook for listing bank institutions with infinite pagination\n * @param request - Request parameters for listing bank institutions\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with bank institutions data\n */\nexport function useListBankInstitutionsInfiniteQuery(\n\trequest: BankInstitutionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<BankInstitutionListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankInstitution>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBankInstitution>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.BankInstitutions, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.bankInstitutions.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a bank institution by ID\n * @param id - The ID of the bank institution to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank institution data\n */\nexport const useGetBankInstitutionByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankInstitution, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankInstitutions, id],\n\t\tqueryFn: async () =>\n\t\t\tawait client.bankInstitutions.getByIdAsync(id, options, config),\n\t});\n};\n"],"names":["useListBankInstitutionsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","BankInstitutions","queryFn","pageParam","paginatedRequest","bankInstitutions","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBankInstitutionByIdQuery","id","useQuery","getByIdAsync"],"mappings":";;;;AAkBA;;;;;;AAMG;SACaA,oCAAoCA,CACnDC,OAAsC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAE,CAAE,EAC/DC,OAA0B,EAC1BC,MAAuD,EAAA;AAEvD,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAET,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCS,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEZ,OAAO,EAAEG,OAAO,CAAC;IACxDU,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,MAAMC,gBAAgB,GAAG;AAAE,QAAA,GAAGf,OAAO;AAAEC,QAAAA,IAAI,EAAEa;OAAW;AACxD,MAAA,OAAO,MAAMT,MAAM,CAACW,gBAAgB,CAACC,SAAS,CAC7CF,gBAAgB,EAChBZ,OAAO,EACPC,MAAM,CACN;KACD;IACDc,gBAAgB,EAAGC,QAAQ,IAAI;AAC9B,MAAA,IACCA,QAAQ,CAACC,UAAU,IACnBD,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAGF,QAAQ,CAACC,UAAU,CAACE,SAAS,EAC9D;AACD,QAAA,OAAOH,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;AAC3C;AACA,MAAA,OAAOE,SAAS;AACjB;AACA,GAAA,CAAC;AACH;AAEA;;;;;;AAMG;AACI,MAAMC,8BAA8B,GAAGA,CAC7CC,EAAU,EACVtB,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOmB,QAAQ,CAAoC;AAClDhB,IAAAA,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEa,EAAE,CAAC;AAC1CZ,IAAAA,OAAO,EAAE,YACR,MAAMR,MAAM,CAACW,gBAAgB,CAACW,YAAY,CAACF,EAAE,EAAEtB,OAAO,EAAEC,MAAM;AAC/D,GAAA,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useQueryClient, useInfiniteQuery, useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { useApiClient } from '../../../context/ApiContext.mjs';
|
|
3
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook for listing bank transactions with infinite pagination
|
|
7
|
+
* @param request - Request parameters for listing bank transactions
|
|
8
|
+
* @param options - Optional request options
|
|
9
|
+
* @param config - Optional axios request config
|
|
10
|
+
* @returns Infinite query result for implementing infinite scrolling with bank transaction data
|
|
11
|
+
*/
|
|
12
|
+
const useListBankTransactionsInfiniteQuery = (request = {
|
|
13
|
+
page: 1,
|
|
14
|
+
pageSize: 25
|
|
15
|
+
}, options, config) => {
|
|
16
|
+
const client = useApiClient();
|
|
17
|
+
useQueryClient();
|
|
18
|
+
return useInfiniteQuery({
|
|
19
|
+
initialPageParam: request.page || 1,
|
|
20
|
+
queryKey: [SBApiKeys.BankTransactions, request, options],
|
|
21
|
+
queryFn: async ({
|
|
22
|
+
pageParam = 1
|
|
23
|
+
}) => {
|
|
24
|
+
return client.bankTransactions.listAsync({
|
|
25
|
+
...request,
|
|
26
|
+
page: pageParam
|
|
27
|
+
}, options, config);
|
|
28
|
+
},
|
|
29
|
+
getNextPageParam: lastPage => {
|
|
30
|
+
if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
31
|
+
return lastPage.pagination.currentPage + 1;
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Hook for retrieving a bank transaction by ID
|
|
39
|
+
* @param id - The ID of the bank transaction to retrieve
|
|
40
|
+
* @param options - Optional request options
|
|
41
|
+
* @param config - Optional Axios request configuration
|
|
42
|
+
* @returns Query result containing the bank transaction data
|
|
43
|
+
*/
|
|
44
|
+
const useGetBankTransactionByIdQuery = (id, options, config) => {
|
|
45
|
+
const client = useApiClient();
|
|
46
|
+
useQueryClient();
|
|
47
|
+
return useQuery({
|
|
48
|
+
queryKey: [SBApiKeys.BankTransactions, id, options],
|
|
49
|
+
queryFn: async () => await client.bankTransactions.getByIdAsync(id, options, config)
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export { useGetBankTransactionByIdQuery, useListBankTransactionsInfiniteQuery };
|
|
54
|
+
//# sourceMappingURL=BankTransactionAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankTransactionAPI.mjs","sources":["../../../../../src/apis/banks/bank-transactions/BankTransactionAPI.tsx"],"sourcesContent":["import {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n} from \"@tanstack/react-query\";\nimport {\n\tBankTransactionListRequest,\n\tSBList,\n\tSBBankTransaction,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for listing bank transactions with infinite pagination\n * @param request - Request parameters for listing bank transactions\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result for implementing infinite scrolling with bank transaction data\n */\nexport const useListBankTransactionsInfiniteQuery = (\n\trequest: BankTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBBankTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.BankTransactions, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn client.bankTransactions.listAsync(\n\t\t\t\t{\n\t\t\t\t\t...request,\n\t\t\t\t\tpage: pageParam,\n\t\t\t\t},\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for retrieving a bank transaction by ID\n * @param id - The ID of the bank transaction to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank transaction data\n */\nexport const useGetBankTransactionByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankTransaction, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankTransactions, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.bankTransactions.getByIdAsync(id, options, config),\n\t});\n};\n"],"names":["useListBankTransactionsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","BankTransactions","queryFn","pageParam","bankTransactions","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBankTransactionByIdQuery","id","useQuery","getByIdAsync"],"mappings":";;;;AAkBA;;;;;;AAMG;AACUA,MAAAA,oCAAoC,GAAGA,CACnDC,OAAsC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAI,CAAA,EAC/DC,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAET,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCS,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEZ,OAAO,EAAEG,OAAO,CAAC;IACxDU,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,OAAOT,MAAM,CAACU,gBAAgB,CAACC,SAAS,CACvC;AACC,QAAA,GAAGhB,OAAO;AACVC,QAAAA,IAAI,EAAEa;AACN,OAAA,EACDX,OAAO,EACPC,MAAM,CACN;KACD;IACDa,gBAAgB,EAAGC,QAAQ,IAAI;AAC9B,MAAA,IACCA,QAAQ,CAACC,UAAU,IACnBD,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAGF,QAAQ,CAACC,UAAU,CAACE,SAAS,EAC9D;AACD,QAAA,OAAOH,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;AAC3C;AACA,MAAA,OAAOE,SAAS;AACjB;AACA,GAAA,CAAC;AACH;AAEA;;;;;;AAMG;AACI,MAAMC,8BAA8B,GAAGA,CAC7CC,EAAU,EACVrB,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOkB,QAAQ,CAAoC;IAClDf,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEY,EAAE,EAAErB,OAAO,CAAC;AACnDU,IAAAA,OAAO,EAAE,YACR,MAAMR,MAAM,CAACU,gBAAgB,CAACW,YAAY,CAACF,EAAE,EAAErB,OAAO,EAAEC,MAAM;AAC/D,GAAA,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { useApiClient, useBusinessId } from '../../context/ApiContext.mjs';
|
|
2
|
+
import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { SBApiKeys } from '../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook for listing business with infinite pagination
|
|
7
|
+
* @param request - Request parameters for listing business
|
|
8
|
+
* @param options - Optional request options
|
|
9
|
+
* @param config - Optional Axios request configuration
|
|
10
|
+
* @returns Infinite query result for implementing infinite scrolling with business data
|
|
11
|
+
*/
|
|
12
|
+
function useListBusinessInfiniteQuery(request = {
|
|
13
|
+
page: 1,
|
|
14
|
+
pageSize: 25
|
|
15
|
+
}, options, config) {
|
|
16
|
+
const client = useApiClient();
|
|
17
|
+
useQueryClient();
|
|
18
|
+
return useInfiniteQuery({
|
|
19
|
+
initialPageParam: request.page || 1,
|
|
20
|
+
queryKey: [SBApiKeys.Businesses, request, options],
|
|
21
|
+
queryFn: async ({
|
|
22
|
+
pageParam = 1
|
|
23
|
+
}) => {
|
|
24
|
+
return await client.businesses.listAsync({
|
|
25
|
+
...request,
|
|
26
|
+
page: pageParam
|
|
27
|
+
}, options, config);
|
|
28
|
+
},
|
|
29
|
+
getNextPageParam: lastPage => {
|
|
30
|
+
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
31
|
+
return lastPage.pagination.currentPage + 1;
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Hook for retrieving a business by ID
|
|
39
|
+
* @param id - The ID of the business to retrieve
|
|
40
|
+
* @param options - Optional request options
|
|
41
|
+
* @param config - Optional Axios request configuration
|
|
42
|
+
* @returns Query result containing the business data
|
|
43
|
+
*/
|
|
44
|
+
const useGetBusinessByIdQuery = (id, options, config) => {
|
|
45
|
+
const client = useApiClient();
|
|
46
|
+
useQueryClient();
|
|
47
|
+
const currentBusinessId = useBusinessId();
|
|
48
|
+
return useQuery({
|
|
49
|
+
queryKey: [SBApiKeys.Businesses, id, options],
|
|
50
|
+
queryFn: async () => await client.businesses.getByIdAsync(id, options, config),
|
|
51
|
+
// If we're requesting the current business, only enable when businessId is set
|
|
52
|
+
enabled: id === currentBusinessId ? !!currentBusinessId : true
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Hook for creating a new business
|
|
57
|
+
* @returns Mutation function for creating business
|
|
58
|
+
*/
|
|
59
|
+
const useCreateBusinessMutation = () => {
|
|
60
|
+
const client = useApiClient();
|
|
61
|
+
const queryClient = useQueryClient();
|
|
62
|
+
return useMutation({
|
|
63
|
+
mutationFn: async ({
|
|
64
|
+
request,
|
|
65
|
+
options,
|
|
66
|
+
config
|
|
67
|
+
}) => {
|
|
68
|
+
return await client.businesses.createAsync(request, options, config);
|
|
69
|
+
},
|
|
70
|
+
onSuccess: () => {
|
|
71
|
+
queryClient.invalidateQueries({
|
|
72
|
+
queryKey: [SBApiKeys.Businesses]
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Hook for updating an existing business
|
|
79
|
+
* @returns Mutation function for updating business
|
|
80
|
+
*/
|
|
81
|
+
const useUpdateBusinessMutation = () => {
|
|
82
|
+
const client = useApiClient();
|
|
83
|
+
const queryClient = useQueryClient();
|
|
84
|
+
const currentBusinessId = useBusinessId();
|
|
85
|
+
return useMutation({
|
|
86
|
+
mutationFn: async ({
|
|
87
|
+
businessId,
|
|
88
|
+
request,
|
|
89
|
+
options,
|
|
90
|
+
config
|
|
91
|
+
}) => {
|
|
92
|
+
return await client.businesses.updateAsync(businessId, request, options, config);
|
|
93
|
+
},
|
|
94
|
+
onSuccess: (_, {
|
|
95
|
+
businessId
|
|
96
|
+
}) => {
|
|
97
|
+
queryClient.invalidateQueries({
|
|
98
|
+
queryKey: [SBApiKeys.Businesses]
|
|
99
|
+
});
|
|
100
|
+
queryClient.invalidateQueries({
|
|
101
|
+
queryKey: [SBApiKeys.Businesses, businessId]
|
|
102
|
+
});
|
|
103
|
+
// If updating the current business, invalidate any queries that depend on it
|
|
104
|
+
if (businessId === currentBusinessId) {
|
|
105
|
+
queryClient.invalidateQueries();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Hook for deleting a business
|
|
112
|
+
* @returns Mutation function for deleting business
|
|
113
|
+
*/
|
|
114
|
+
const useDeleteBusinessMutation = () => {
|
|
115
|
+
const client = useApiClient();
|
|
116
|
+
const queryClient = useQueryClient();
|
|
117
|
+
const currentBusinessId = useBusinessId();
|
|
118
|
+
return useMutation({
|
|
119
|
+
mutationFn: async ({
|
|
120
|
+
businessId,
|
|
121
|
+
options,
|
|
122
|
+
config
|
|
123
|
+
}) => {
|
|
124
|
+
return await client.businesses.deleteAsync(businessId, options, config);
|
|
125
|
+
},
|
|
126
|
+
onSuccess: (_, {
|
|
127
|
+
businessId
|
|
128
|
+
}) => {
|
|
129
|
+
queryClient.invalidateQueries({
|
|
130
|
+
queryKey: [SBApiKeys.Businesses]
|
|
131
|
+
});
|
|
132
|
+
// If deleting the current business, invalidate all queries
|
|
133
|
+
if (businessId === currentBusinessId) {
|
|
134
|
+
queryClient.invalidateQueries();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Hook for batch inviting members to a business
|
|
141
|
+
*/
|
|
142
|
+
const useBatchInviteMemberMutation = () => {
|
|
143
|
+
const client = useApiClient();
|
|
144
|
+
const queryClient = useQueryClient();
|
|
145
|
+
return useMutation({
|
|
146
|
+
mutationFn: async ({
|
|
147
|
+
businessId,
|
|
148
|
+
invitations,
|
|
149
|
+
options,
|
|
150
|
+
config
|
|
151
|
+
}) => {
|
|
152
|
+
return await client.businesses.batchInviteMemberAsync(businessId, invitations, options, config);
|
|
153
|
+
},
|
|
154
|
+
onSuccess: (_, {
|
|
155
|
+
businessId
|
|
156
|
+
}) => {
|
|
157
|
+
queryClient.invalidateQueries({
|
|
158
|
+
queryKey: [SBApiKeys.Businesses, businessId, "members"]
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
export { useBatchInviteMemberMutation, useCreateBusinessMutation, useDeleteBusinessMutation, useGetBusinessByIdQuery, useListBusinessInfiniteQuery, useUpdateBusinessMutation };
|
|
165
|
+
//# sourceMappingURL=BusinessAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BusinessAPI.mjs","sources":["../../../../src/apis/business/BusinessAPI.tsx"],"sourcesContent":["import {\n\tBusinessCreateRequest,\n\tBusinessListRequest,\n\tSBBusiness,\n\tBusinessUpdateRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n\tBusinessInvitationRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing business with infinite pagination\n * @param request - Request parameters for listing business\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business data\n */\nexport function useListBusinessInfiniteQuery(\n\trequest: BusinessListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<BusinessListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBBusiness>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBusiness>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Businesses, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a business by ID\n * @param id - The ID of the business to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the business data\n */\nexport const useGetBusinessByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useQuery<SBBusiness, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getByIdAsync(id, options, config),\n\t\t// If we're requesting the current business, only enable when businessId is set\n\t\tenabled: id === currentBusinessId ? !!currentBusinessId : true,\n\t});\n};\n\n/**\n * Hook for creating a new business\n * @returns Mutation function for creating business\n */\nexport const useCreateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: BusinessCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.businesses.createAsync(\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for updating an existing business\n * @returns Mutation function for updating business\n */\nexport const useUpdateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\trequest: BusinessUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, request, options, config }) => {\n\t\t\treturn await client.businesses.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\n\t\t\t});\n\n\t\t\t// If updating the current business, invalidate any queries that depend on it\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a business\n * @returns Mutation function for deleting business\n */\nexport const useDeleteBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, options, config }) => {\n\t\t\treturn await client.businesses.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\n\t\t\t// If deleting the current business, invalidate all queries\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for batch inviting members to a business\n */\nexport const useBatchInviteMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\tinvitations: BusinessInvitationRequest[];\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, invitations, options, config }) => {\n\t\t\treturn await client.businesses.batchInviteMemberAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitations,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, \"members\"],\n\t\t\t});\n\t\t},\n\t});\n};\n"],"names":["useListBusinessInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","queryFn","pageParam","businesses","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBusinessByIdQuery","id","currentBusinessId","useBusinessId","useQuery","getByIdAsync","enabled","useCreateBusinessMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateBusinessMutation","businessId","updateAsync","_","useDeleteBusinessMutation","deleteAsync","useBatchInviteMemberMutation","invitations","batchInviteMemberAsync"],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
|
|
2
|
+
import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook to list customers with infinite scrolling
|
|
7
|
+
* @param request - The list request parameters
|
|
8
|
+
* @param options - Optional request options
|
|
9
|
+
* @param config - Optional axios request config
|
|
10
|
+
* @returns Infinite query result containing the paginated customers
|
|
11
|
+
*/
|
|
12
|
+
function useListCustomersInfiniteQuery(request = {
|
|
13
|
+
page: 1,
|
|
14
|
+
pageSize: 25
|
|
15
|
+
}, options, config) {
|
|
16
|
+
const client = useApiClient();
|
|
17
|
+
useQueryClient();
|
|
18
|
+
const businessId = useBusinessId();
|
|
19
|
+
if (!businessId) {
|
|
20
|
+
throw new Error("businessId is required for customer operations");
|
|
21
|
+
}
|
|
22
|
+
return useInfiniteQuery({
|
|
23
|
+
initialPageParam: request.page || 1,
|
|
24
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, request, options],
|
|
25
|
+
queryFn: async ({
|
|
26
|
+
pageParam = 1
|
|
27
|
+
}) => {
|
|
28
|
+
return await client.businesses.customers.listAsync(businessId, {
|
|
29
|
+
...request,
|
|
30
|
+
page: pageParam
|
|
31
|
+
}, options, config);
|
|
32
|
+
},
|
|
33
|
+
getNextPageParam: lastPage => {
|
|
34
|
+
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
35
|
+
return lastPage.pagination.currentPage + 1;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
},
|
|
39
|
+
enabled: !!businessId
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Hook to get a customer by ID
|
|
44
|
+
* @param id - The customer ID
|
|
45
|
+
* @param options - Optional request options
|
|
46
|
+
* @param config - Optional axios request config
|
|
47
|
+
* @returns Query result containing the customer data
|
|
48
|
+
*/
|
|
49
|
+
const useGetCustomerByIdQuery = (id, options, config) => {
|
|
50
|
+
const client = useApiClient();
|
|
51
|
+
useQueryClient();
|
|
52
|
+
const businessId = useBusinessId();
|
|
53
|
+
if (!businessId) {
|
|
54
|
+
throw new Error("businessId is required for customer operations");
|
|
55
|
+
}
|
|
56
|
+
return useQuery({
|
|
57
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id, options],
|
|
58
|
+
queryFn: async () => {
|
|
59
|
+
return await client.businesses.customers.getByIdAsync(businessId, id, options, config);
|
|
60
|
+
},
|
|
61
|
+
enabled: !!businessId
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Hook to create a new customer
|
|
66
|
+
* @returns Mutation function to create a customer
|
|
67
|
+
*/
|
|
68
|
+
const useCreateCustomerMutation = () => {
|
|
69
|
+
const client = useApiClient();
|
|
70
|
+
const queryClient = useQueryClient();
|
|
71
|
+
const businessId = useBusinessId();
|
|
72
|
+
return useMutation({
|
|
73
|
+
mutationFn: async ({
|
|
74
|
+
request,
|
|
75
|
+
options,
|
|
76
|
+
config
|
|
77
|
+
}) => {
|
|
78
|
+
if (!businessId) {
|
|
79
|
+
throw new Error("businessId is required for customer operations");
|
|
80
|
+
}
|
|
81
|
+
return await client.businesses.customers.createAsync(businessId, request, options, config);
|
|
82
|
+
},
|
|
83
|
+
onSuccess: () => {
|
|
84
|
+
queryClient.invalidateQueries({
|
|
85
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Hook to update a customer
|
|
92
|
+
* @returns Mutation function for updating customers
|
|
93
|
+
*/
|
|
94
|
+
const useUpdateCustomerMutation = () => {
|
|
95
|
+
const client = useApiClient();
|
|
96
|
+
const queryClient = useQueryClient();
|
|
97
|
+
const businessId = useBusinessId();
|
|
98
|
+
return useMutation({
|
|
99
|
+
mutationFn: async ({
|
|
100
|
+
id,
|
|
101
|
+
request,
|
|
102
|
+
options,
|
|
103
|
+
config
|
|
104
|
+
}) => {
|
|
105
|
+
if (!businessId) {
|
|
106
|
+
throw new Error("businessId is required for customer operations");
|
|
107
|
+
}
|
|
108
|
+
return await client.businesses.customers.updateAsync(businessId, id, request, options, config);
|
|
109
|
+
},
|
|
110
|
+
onSuccess: (_, {
|
|
111
|
+
id
|
|
112
|
+
}) => {
|
|
113
|
+
queryClient.invalidateQueries({
|
|
114
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
|
|
115
|
+
});
|
|
116
|
+
queryClient.invalidateQueries({
|
|
117
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id]
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Hook to delete a customer
|
|
124
|
+
* @returns Mutation function for deleting customers
|
|
125
|
+
*/
|
|
126
|
+
const useDeleteCustomerMutation = () => {
|
|
127
|
+
const client = useApiClient();
|
|
128
|
+
const queryClient = useQueryClient();
|
|
129
|
+
const businessId = useBusinessId();
|
|
130
|
+
return useMutation({
|
|
131
|
+
mutationFn: async ({
|
|
132
|
+
id,
|
|
133
|
+
options,
|
|
134
|
+
config
|
|
135
|
+
}) => {
|
|
136
|
+
if (!businessId) {
|
|
137
|
+
throw new Error("businessId is required for customer operations");
|
|
138
|
+
}
|
|
139
|
+
await client.businesses.customers.deleteAsync(businessId, id, options, config);
|
|
140
|
+
},
|
|
141
|
+
onSuccess: (_, {
|
|
142
|
+
id
|
|
143
|
+
}) => {
|
|
144
|
+
queryClient.invalidateQueries({
|
|
145
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
|
|
146
|
+
});
|
|
147
|
+
queryClient.invalidateQueries({
|
|
148
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export { useCreateCustomerMutation, useDeleteCustomerMutation, useGetCustomerByIdQuery, useListCustomersInfiniteQuery, useUpdateCustomerMutation };
|
|
155
|
+
//# sourceMappingURL=CustomerAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomerAPI.mjs","sources":["../../../../../src/apis/business/customers/CustomerAPI.ts"],"sourcesContent":["import {\n\tCustomerListRequest,\n\tSBCustomer,\n\tCustomerCreateRequest,\n\tCustomerUpdateRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list customers with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the paginated customers\n */\nexport function useListCustomersInfiniteQuery(\n\trequest: CustomerListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<CustomerListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for customer operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBCustomer>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBCustomer>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customers.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a customer by ID\n * @param id - The customer ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer data\n */\nexport const useGetCustomerByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for customer operations\");\n\t}\n\n\treturn useQuery<SBCustomer, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customers.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\n/**\n * Hook to create a new customer\n * @returns Mutation function to create a customer\n */\nexport const useCreateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: CustomerCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook to update a customer\n * @returns Mutation function for updating customers\n */\nexport const useUpdateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: CustomerUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook to delete a customer\n * @returns Mutation function for deleting customers\n */\nexport const useDeleteCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.customers.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n"],"names":["useListCustomersInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Customers","queryFn","pageParam","businesses","customers","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetCustomerByIdQuery","id","useQuery","getByIdAsync","useCreateCustomerMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateCustomerMutation","updateAsync","_","useDeleteCustomerMutation","deleteAsync"],"mappings":"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"}
|