@axcode/axcloud-sdk 0.2.0-dev.03fb26c → 0.2.0-dev.85285e0
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/README.md +44 -0
- package/dist/analytics-BOxmSWNt.d.ts +432 -0
- package/dist/analytics-LYZxP7PC.d.mts +432 -0
- package/dist/barnsport.d.mts +30 -0
- package/dist/barnsport.d.ts +30 -0
- package/dist/barnsport.js +69 -0
- package/dist/barnsport.js.map +1 -0
- package/dist/barnsport.mjs +4 -0
- package/dist/barnsport.mjs.map +1 -0
- package/dist/chunk-2A5NJAFA.mjs +15 -0
- package/dist/chunk-2A5NJAFA.mjs.map +1 -0
- package/dist/chunk-DI4M6A7K.js +474 -0
- package/dist/chunk-DI4M6A7K.js.map +1 -0
- package/dist/chunk-DSWRJZWR.js +18 -0
- package/dist/chunk-DSWRJZWR.js.map +1 -0
- package/dist/chunk-EX66R5IA.js +278 -0
- package/dist/chunk-EX66R5IA.js.map +1 -0
- package/dist/chunk-F3JPEND3.mjs +461 -0
- package/dist/chunk-F3JPEND3.mjs.map +1 -0
- package/dist/chunk-HRNRGCCT.mjs +262 -0
- package/dist/chunk-HRNRGCCT.mjs.map +1 -0
- package/dist/client-FOpKwe3e.d.mts +75 -0
- package/dist/client-FOpKwe3e.d.ts +75 -0
- package/dist/index.d.mts +10 -737
- package/dist/index.d.ts +10 -737
- package/dist/index.js +112 -632
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -585
- package/dist/index.mjs.map +1 -1
- package/dist/public.d.mts +27 -0
- package/dist/public.d.ts +27 -0
- package/dist/public.js +111 -0
- package/dist/public.js.map +1 -0
- package/dist/public.mjs +99 -0
- package/dist/public.mjs.map +1 -0
- package/dist/useBarnsport-1DObGZDl.d.mts +526 -0
- package/dist/useBarnsport-1DObGZDl.d.ts +526 -0
- package/package.json +11 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { useAxCloudContext } from './chunk-2A5NJAFA.mjs';
|
|
2
|
+
import { useQuery, useMutation } from '@tanstack/react-query';
|
|
3
|
+
|
|
4
|
+
// src/core/barnsportClient.ts
|
|
5
|
+
var BarnsportClient = class {
|
|
6
|
+
constructor(client, orgId) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
this.orgId = orgId;
|
|
9
|
+
}
|
|
10
|
+
path(path) {
|
|
11
|
+
return `/barnsport/public/${encodeURIComponent(this.orgId)}${path}`;
|
|
12
|
+
}
|
|
13
|
+
listMunicipalities() {
|
|
14
|
+
return this.client.get(this.path("/municipalities"));
|
|
15
|
+
}
|
|
16
|
+
listSports() {
|
|
17
|
+
return this.client.get(this.path("/sports"));
|
|
18
|
+
}
|
|
19
|
+
getSport(slug) {
|
|
20
|
+
return this.client.get(this.path(`/sports/${encodeURIComponent(slug)}`));
|
|
21
|
+
}
|
|
22
|
+
listActivities(filters = {}) {
|
|
23
|
+
return this.client.get(this.path("/activities"), { ...filters });
|
|
24
|
+
}
|
|
25
|
+
getActivity(slug) {
|
|
26
|
+
return this.client.get(this.path(`/activities/${encodeURIComponent(slug)}`));
|
|
27
|
+
}
|
|
28
|
+
getSitemap(baseUrl) {
|
|
29
|
+
return this.client.get(this.path("/sitemap"), { baseUrl });
|
|
30
|
+
}
|
|
31
|
+
listProviders(filters = {}) {
|
|
32
|
+
return this.client.get(this.path("/providers"), { ...filters });
|
|
33
|
+
}
|
|
34
|
+
getProvider(slug) {
|
|
35
|
+
return this.client.get(this.path(`/providers/${encodeURIComponent(slug)}`));
|
|
36
|
+
}
|
|
37
|
+
listActivityOffers(filters = {}) {
|
|
38
|
+
return this.client.get(this.path("/activity-offers"), { ...filters });
|
|
39
|
+
}
|
|
40
|
+
submitInterest(request) {
|
|
41
|
+
return this.client.post(this.path("/interest"), request);
|
|
42
|
+
}
|
|
43
|
+
submitFeedback(request) {
|
|
44
|
+
return this.client.post(this.path("/feedback"), request);
|
|
45
|
+
}
|
|
46
|
+
submitReview(request) {
|
|
47
|
+
return this.client.post(this.path("/reviews"), request);
|
|
48
|
+
}
|
|
49
|
+
trackEvent(request) {
|
|
50
|
+
return this.client.post(this.path("/events"), request);
|
|
51
|
+
}
|
|
52
|
+
submitClubRemovalRequest(clubSlug, request) {
|
|
53
|
+
return this.client.post(
|
|
54
|
+
this.path(`/clubs/${encodeURIComponent(clubSlug)}/removal-request`),
|
|
55
|
+
request
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
function createBarnsportClient(client, orgId) {
|
|
60
|
+
return new BarnsportClient(client, orgId);
|
|
61
|
+
}
|
|
62
|
+
function barnsportQueryRoot(context) {
|
|
63
|
+
return ["axcloud", "barnsport", context.stage, context.config.apiUrl, context.orgId];
|
|
64
|
+
}
|
|
65
|
+
function useBarnsportMunicipalities() {
|
|
66
|
+
const { client, orgId } = useAxCloudContext();
|
|
67
|
+
const query = useQuery({
|
|
68
|
+
queryKey: ["axcloud", "barnsport", "municipalities", orgId],
|
|
69
|
+
queryFn: () => client.get(
|
|
70
|
+
`/barnsport/public/${orgId}/municipalities`
|
|
71
|
+
),
|
|
72
|
+
staleTime: 1e3 * 60 * 30
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
municipalities: query.data?.items ?? [],
|
|
76
|
+
count: query.data?.count ?? 0,
|
|
77
|
+
isLoading: query.isLoading,
|
|
78
|
+
isError: query.isError,
|
|
79
|
+
error: query.error,
|
|
80
|
+
refetch: query.refetch
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function useBarnsportSports() {
|
|
84
|
+
const { client, orgId } = useAxCloudContext();
|
|
85
|
+
const query = useQuery({
|
|
86
|
+
queryKey: ["axcloud", "barnsport", "sports", orgId],
|
|
87
|
+
queryFn: () => client.get(`/barnsport/public/${orgId}/sports`),
|
|
88
|
+
staleTime: 1e3 * 60 * 30
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
sports: query.data?.items ?? [],
|
|
92
|
+
count: query.data?.count ?? 0,
|
|
93
|
+
isLoading: query.isLoading,
|
|
94
|
+
isError: query.isError,
|
|
95
|
+
error: query.error,
|
|
96
|
+
refetch: query.refetch
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function useBarnsportSport(slug) {
|
|
100
|
+
const { client, orgId } = useAxCloudContext();
|
|
101
|
+
const query = useQuery({
|
|
102
|
+
queryKey: ["axcloud", "barnsport", "sport", orgId, slug],
|
|
103
|
+
queryFn: () => client.get(`/barnsport/public/${orgId}/sports/${slug || ""}`),
|
|
104
|
+
enabled: Boolean(slug),
|
|
105
|
+
staleTime: 1e3 * 60 * 15
|
|
106
|
+
});
|
|
107
|
+
return {
|
|
108
|
+
sport: query.data?.sport ?? null,
|
|
109
|
+
isLoading: query.isLoading,
|
|
110
|
+
isError: query.isError,
|
|
111
|
+
error: query.error,
|
|
112
|
+
refetch: query.refetch
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function useBarnsportActivities(filters = {}) {
|
|
116
|
+
const { client, orgId } = useAxCloudContext();
|
|
117
|
+
const params = { ...filters };
|
|
118
|
+
const query = useQuery({
|
|
119
|
+
queryKey: ["axcloud", "barnsport", "activities", orgId, filters],
|
|
120
|
+
queryFn: () => client.get(
|
|
121
|
+
`/barnsport/public/${orgId}/activities`,
|
|
122
|
+
params
|
|
123
|
+
),
|
|
124
|
+
staleTime: 1e3 * 60 * 5
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
activities: query.data?.items ?? [],
|
|
128
|
+
count: query.data?.count ?? 0,
|
|
129
|
+
nextCursor: query.data?.nextCursor ?? null,
|
|
130
|
+
isLoading: query.isLoading,
|
|
131
|
+
isError: query.isError,
|
|
132
|
+
error: query.error,
|
|
133
|
+
refetch: query.refetch
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function useBarnsportActivity(slug) {
|
|
137
|
+
const { client, orgId } = useAxCloudContext();
|
|
138
|
+
const query = useQuery({
|
|
139
|
+
queryKey: ["axcloud", "barnsport", "activity", orgId, slug],
|
|
140
|
+
queryFn: () => client.get(`/barnsport/public/${orgId}/activities/${slug || ""}`),
|
|
141
|
+
enabled: Boolean(slug),
|
|
142
|
+
staleTime: 1e3 * 60 * 5
|
|
143
|
+
});
|
|
144
|
+
return {
|
|
145
|
+
activity: query.data?.activity ?? null,
|
|
146
|
+
isLoading: query.isLoading,
|
|
147
|
+
isError: query.isError,
|
|
148
|
+
error: query.error,
|
|
149
|
+
refetch: query.refetch
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function useBarnsportSitemap(baseUrl) {
|
|
153
|
+
const { client, orgId } = useAxCloudContext();
|
|
154
|
+
const query = useQuery({
|
|
155
|
+
queryKey: ["axcloud", "barnsport", "sitemap", orgId, baseUrl],
|
|
156
|
+
queryFn: () => client.get(`/barnsport/public/${orgId}/sitemap`, {
|
|
157
|
+
baseUrl
|
|
158
|
+
}),
|
|
159
|
+
staleTime: 1e3 * 60 * 15
|
|
160
|
+
});
|
|
161
|
+
return {
|
|
162
|
+
sitemap: query.data ?? null,
|
|
163
|
+
urls: query.data?.urls ?? [],
|
|
164
|
+
isLoading: query.isLoading,
|
|
165
|
+
isError: query.isError,
|
|
166
|
+
error: query.error,
|
|
167
|
+
refetch: query.refetch
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
function useSubmitBarnsportInterest() {
|
|
171
|
+
const { client, orgId } = useAxCloudContext();
|
|
172
|
+
return useMutation({
|
|
173
|
+
mutationFn: (submission) => client.post(
|
|
174
|
+
`/barnsport/public/${orgId}/interest`,
|
|
175
|
+
submission
|
|
176
|
+
)
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
function useBarnsportProviderSearch(filters) {
|
|
180
|
+
const context = useAxCloudContext();
|
|
181
|
+
const api = createBarnsportClient(context.client, context.orgId);
|
|
182
|
+
const normalizedFilters = { ...filters, q: filters.q?.trim() };
|
|
183
|
+
const query = useQuery({
|
|
184
|
+
queryKey: [...barnsportQueryRoot(context), "providers", normalizedFilters],
|
|
185
|
+
queryFn: () => api.listProviders(normalizedFilters),
|
|
186
|
+
enabled: (normalizedFilters.q?.length ?? 0) >= 2,
|
|
187
|
+
staleTime: 1e3 * 60
|
|
188
|
+
});
|
|
189
|
+
return {
|
|
190
|
+
providers: query.data?.items ?? [],
|
|
191
|
+
count: query.data?.count ?? query.data?.items.length ?? 0,
|
|
192
|
+
nextCursor: query.data?.nextCursor ?? null,
|
|
193
|
+
hasMore: query.data?.hasMore ?? false,
|
|
194
|
+
isLoading: query.isLoading,
|
|
195
|
+
isFetching: query.isFetching,
|
|
196
|
+
isError: query.isError,
|
|
197
|
+
error: query.error,
|
|
198
|
+
refetch: query.refetch
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function useBarnsportProvider(slug) {
|
|
202
|
+
const context = useAxCloudContext();
|
|
203
|
+
const api = createBarnsportClient(context.client, context.orgId);
|
|
204
|
+
const query = useQuery({
|
|
205
|
+
queryKey: [...barnsportQueryRoot(context), "provider", slug],
|
|
206
|
+
queryFn: () => api.getProvider(slug || ""),
|
|
207
|
+
enabled: Boolean(slug),
|
|
208
|
+
staleTime: 1e3 * 60 * 5
|
|
209
|
+
});
|
|
210
|
+
return {
|
|
211
|
+
provider: query.data?.item ?? null,
|
|
212
|
+
isLoading: query.isLoading,
|
|
213
|
+
isError: query.isError,
|
|
214
|
+
error: query.error,
|
|
215
|
+
refetch: query.refetch
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function useBarnsportActivityOffers(filters = {}) {
|
|
219
|
+
const context = useAxCloudContext();
|
|
220
|
+
const api = createBarnsportClient(context.client, context.orgId);
|
|
221
|
+
const query = useQuery({
|
|
222
|
+
queryKey: [...barnsportQueryRoot(context), "activity-offers", filters],
|
|
223
|
+
queryFn: () => api.listActivityOffers(filters),
|
|
224
|
+
staleTime: 1e3 * 60 * 5
|
|
225
|
+
});
|
|
226
|
+
return {
|
|
227
|
+
activityOffers: query.data?.items ?? [],
|
|
228
|
+
count: query.data?.count ?? query.data?.items.length ?? 0,
|
|
229
|
+
nextCursor: query.data?.nextCursor ?? null,
|
|
230
|
+
hasMore: query.data?.hasMore ?? false,
|
|
231
|
+
isLoading: query.isLoading,
|
|
232
|
+
isFetching: query.isFetching,
|
|
233
|
+
isError: query.isError,
|
|
234
|
+
error: query.error,
|
|
235
|
+
refetch: query.refetch
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
function useSubmitBarnsportFeedback() {
|
|
239
|
+
const { client, orgId } = useAxCloudContext();
|
|
240
|
+
const api = createBarnsportClient(client, orgId);
|
|
241
|
+
return useMutation({
|
|
242
|
+
mutationFn: (request) => api.submitFeedback(request)
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
function useSubmitBarnsportReview() {
|
|
246
|
+
const { client, orgId } = useAxCloudContext();
|
|
247
|
+
const api = createBarnsportClient(client, orgId);
|
|
248
|
+
return useMutation({
|
|
249
|
+
mutationFn: (request) => api.submitReview(request)
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
function useTrackBarnsportEvent() {
|
|
253
|
+
const { client, orgId } = useAxCloudContext();
|
|
254
|
+
const api = createBarnsportClient(client, orgId);
|
|
255
|
+
return useMutation({
|
|
256
|
+
mutationFn: (request) => api.trackEvent(request)
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export { BarnsportClient, createBarnsportClient, useBarnsportActivities, useBarnsportActivity, useBarnsportActivityOffers, useBarnsportMunicipalities, useBarnsportProvider, useBarnsportProviderSearch, useBarnsportSitemap, useBarnsportSport, useBarnsportSports, useSubmitBarnsportFeedback, useSubmitBarnsportInterest, useSubmitBarnsportReview, useTrackBarnsportEvent };
|
|
261
|
+
//# sourceMappingURL=chunk-HRNRGCCT.mjs.map
|
|
262
|
+
//# sourceMappingURL=chunk-HRNRGCCT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/barnsportClient.ts","../src/react/hooks/useBarnsport.ts"],"names":[],"mappings":"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","file":"chunk-HRNRGCCT.mjs","sourcesContent":["import type { AxCloudClient } from './client';\nimport type {\n BarnsportActivitiesFilter,\n BarnsportActivityListItem,\n BarnsportActivityOffersFilter,\n BarnsportActivityResponse,\n BarnsportActivityOffer,\n BarnsportClubRemovalRequest,\n BarnsportClubRemovalResponse,\n BarnsportCollectionResponse,\n BarnsportEventRequest,\n BarnsportEventResponse,\n BarnsportFeedbackRequest,\n BarnsportFeedbackResponse,\n BarnsportInterestSubmissionRequest,\n BarnsportInterestSubmissionResponse,\n BarnsportItemResponse,\n BarnsportListResponse,\n BarnsportMunicipality,\n BarnsportProviderProfile,\n BarnsportProvider,\n BarnsportProvidersFilter,\n BarnsportReviewSubmissionRequest,\n BarnsportReviewSubmissionResponse,\n BarnsportSitemapResponse,\n BarnsportSport,\n} from './barnsport';\n\ntype QueryParams = Record<string, string | number | boolean | undefined>;\n\nexport class BarnsportClient {\n constructor(\n private readonly client: AxCloudClient,\n private readonly orgId: string\n ) {}\n\n private path(path: string): string {\n return `/barnsport/public/${encodeURIComponent(this.orgId)}${path}`;\n }\n\n listMunicipalities(): Promise<BarnsportListResponse<BarnsportMunicipality>> {\n return this.client.get(this.path('/municipalities'));\n }\n\n listSports(): Promise<BarnsportListResponse<BarnsportSport>> {\n return this.client.get(this.path('/sports'));\n }\n\n getSport(slug: string): Promise<{ sport: BarnsportSport }> {\n return this.client.get(this.path(`/sports/${encodeURIComponent(slug)}`));\n }\n\n listActivities(\n filters: BarnsportActivitiesFilter = {}\n ): Promise<BarnsportListResponse<BarnsportActivityListItem>> {\n return this.client.get(this.path('/activities'), { ...filters } as QueryParams);\n }\n\n getActivity(slug: string): Promise<BarnsportActivityResponse> {\n return this.client.get(this.path(`/activities/${encodeURIComponent(slug)}`));\n }\n\n getSitemap(baseUrl?: string): Promise<BarnsportSitemapResponse> {\n return this.client.get(this.path('/sitemap'), { baseUrl });\n }\n\n listProviders(\n filters: BarnsportProvidersFilter = {}\n ): Promise<BarnsportCollectionResponse<BarnsportProvider, BarnsportProvidersFilter>> {\n return this.client.get(this.path('/providers'), { ...filters } as QueryParams);\n }\n\n getProvider(slug: string): Promise<BarnsportItemResponse<BarnsportProviderProfile>> {\n return this.client.get(this.path(`/providers/${encodeURIComponent(slug)}`));\n }\n\n listActivityOffers(\n filters: BarnsportActivityOffersFilter = {}\n ): Promise<BarnsportCollectionResponse<BarnsportActivityOffer, BarnsportActivityOffersFilter>> {\n return this.client.get(this.path('/activity-offers'), { ...filters } as QueryParams);\n }\n\n submitInterest(\n request: BarnsportInterestSubmissionRequest\n ): Promise<BarnsportInterestSubmissionResponse> {\n return this.client.post(this.path('/interest'), request);\n }\n\n submitFeedback(request: BarnsportFeedbackRequest): Promise<BarnsportFeedbackResponse> {\n return this.client.post(this.path('/feedback'), request);\n }\n\n submitReview(\n request: BarnsportReviewSubmissionRequest\n ): Promise<BarnsportReviewSubmissionResponse> {\n return this.client.post(this.path('/reviews'), request);\n }\n\n trackEvent(request: BarnsportEventRequest): Promise<BarnsportEventResponse> {\n return this.client.post(this.path('/events'), request);\n }\n\n submitClubRemovalRequest(\n clubSlug: string,\n request: BarnsportClubRemovalRequest\n ): Promise<BarnsportClubRemovalResponse> {\n return this.client.post(\n this.path(`/clubs/${encodeURIComponent(clubSlug)}/removal-request`),\n request\n );\n }\n}\n\nexport function createBarnsportClient(client: AxCloudClient, orgId: string): BarnsportClient {\n return new BarnsportClient(client, orgId);\n}\n","import { useMutation, useQuery } from '@tanstack/react-query';\nimport { useAxCloudContext } from '../context';\nimport type {\n BarnsportActivitiesFilter,\n BarnsportActivityListItem,\n BarnsportActivityResponse,\n BarnsportClubRemovalRequest,\n BarnsportClubRemovalResponse,\n BarnsportInterestSubmissionRequest,\n BarnsportInterestSubmissionResponse,\n BarnsportListResponse,\n BarnsportMunicipality,\n BarnsportSitemapResponse,\n BarnsportSport,\n BarnsportActivityOffersFilter,\n BarnsportActivityOffer,\n BarnsportCollectionResponse,\n BarnsportEventRequest,\n BarnsportEventResponse,\n BarnsportFeedbackRequest,\n BarnsportFeedbackResponse,\n BarnsportProvider,\n BarnsportProviderProfile,\n BarnsportProvidersFilter,\n BarnsportReviewSubmissionRequest,\n BarnsportReviewSubmissionResponse,\n} from '../../core/barnsport';\nimport { createBarnsportClient } from '../../core/barnsportClient';\n\nfunction barnsportQueryRoot(context: ReturnType<typeof useAxCloudContext>) {\n return ['axcloud', 'barnsport', context.stage, context.config.apiUrl, context.orgId] as const;\n}\n\nexport function useBarnsportMunicipalities() {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportListResponse<BarnsportMunicipality>>({\n queryKey: ['axcloud', 'barnsport', 'municipalities', orgId],\n queryFn: () =>\n client.get<BarnsportListResponse<BarnsportMunicipality>>(\n `/barnsport/public/${orgId}/municipalities`\n ),\n staleTime: 1000 * 60 * 30,\n });\n\n return {\n municipalities: query.data?.items ?? [],\n count: query.data?.count ?? 0,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportSports() {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportListResponse<BarnsportSport>>({\n queryKey: ['axcloud', 'barnsport', 'sports', orgId],\n queryFn: () =>\n client.get<BarnsportListResponse<BarnsportSport>>(`/barnsport/public/${orgId}/sports`),\n staleTime: 1000 * 60 * 30,\n });\n\n return {\n sports: query.data?.items ?? [],\n count: query.data?.count ?? 0,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportSport(slug: string | undefined) {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<{ sport: BarnsportSport }>({\n queryKey: ['axcloud', 'barnsport', 'sport', orgId, slug],\n queryFn: () =>\n client.get<{ sport: BarnsportSport }>(`/barnsport/public/${orgId}/sports/${slug || ''}`),\n enabled: Boolean(slug),\n staleTime: 1000 * 60 * 15,\n });\n\n return {\n sport: query.data?.sport ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportActivities(filters: BarnsportActivitiesFilter = {}) {\n const { client, orgId } = useAxCloudContext();\n const params: Record<string, string | number | boolean | undefined> = { ...filters };\n\n const query = useQuery<BarnsportListResponse<BarnsportActivityListItem>>({\n queryKey: ['axcloud', 'barnsport', 'activities', orgId, filters],\n queryFn: () =>\n client.get<BarnsportListResponse<BarnsportActivityListItem>>(\n `/barnsport/public/${orgId}/activities`,\n params\n ),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n activities: query.data?.items ?? [],\n count: query.data?.count ?? 0,\n nextCursor: query.data?.nextCursor ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportActivity(slug: string | undefined) {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportActivityResponse>({\n queryKey: ['axcloud', 'barnsport', 'activity', orgId, slug],\n queryFn: () =>\n client.get<BarnsportActivityResponse>(`/barnsport/public/${orgId}/activities/${slug || ''}`),\n enabled: Boolean(slug),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n activity: query.data?.activity ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportSitemap(baseUrl?: string) {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportSitemapResponse>({\n queryKey: ['axcloud', 'barnsport', 'sitemap', orgId, baseUrl],\n queryFn: () =>\n client.get<BarnsportSitemapResponse>(`/barnsport/public/${orgId}/sitemap`, {\n baseUrl,\n }),\n staleTime: 1000 * 60 * 15,\n });\n\n return {\n sitemap: query.data ?? null,\n urls: query.data?.urls ?? [],\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useSubmitBarnsportInterest() {\n const { client, orgId } = useAxCloudContext();\n\n return useMutation<\n BarnsportInterestSubmissionResponse,\n Error,\n BarnsportInterestSubmissionRequest\n >({\n mutationFn: (submission) =>\n client.post<BarnsportInterestSubmissionResponse>(\n `/barnsport/public/${orgId}/interest`,\n submission\n ),\n });\n}\n\nexport function useSubmitBarnsportClubRemovalRequest(clubSlug: string | undefined) {\n const { client, orgId } = useAxCloudContext();\n\n return useMutation<BarnsportClubRemovalResponse, Error, BarnsportClubRemovalRequest>({\n mutationFn: (request) =>\n client.post<BarnsportClubRemovalResponse>(\n `/barnsport/public/${orgId}/clubs/${clubSlug || ''}/removal-request`,\n request\n ),\n });\n}\n\nexport function useBarnsportProviderSearch(filters: BarnsportProvidersFilter) {\n const context = useAxCloudContext();\n const api = createBarnsportClient(context.client, context.orgId);\n const normalizedFilters = { ...filters, q: filters.q?.trim() };\n const query = useQuery<BarnsportCollectionResponse<BarnsportProvider, BarnsportProvidersFilter>>({\n queryKey: [...barnsportQueryRoot(context), 'providers', normalizedFilters],\n queryFn: () => api.listProviders(normalizedFilters),\n enabled: (normalizedFilters.q?.length ?? 0) >= 2,\n staleTime: 1000 * 60,\n });\n\n return {\n providers: query.data?.items ?? [],\n count: query.data?.count ?? query.data?.items.length ?? 0,\n nextCursor: query.data?.nextCursor ?? null,\n hasMore: query.data?.hasMore ?? false,\n isLoading: query.isLoading,\n isFetching: query.isFetching,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportProvider(slug: string | undefined) {\n const context = useAxCloudContext();\n const api = createBarnsportClient(context.client, context.orgId);\n const query = useQuery<{ item: BarnsportProviderProfile }>({\n queryKey: [...barnsportQueryRoot(context), 'provider', slug],\n queryFn: () => api.getProvider(slug || ''),\n enabled: Boolean(slug),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n provider: query.data?.item ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportActivityOffers(filters: BarnsportActivityOffersFilter = {}) {\n const context = useAxCloudContext();\n const api = createBarnsportClient(context.client, context.orgId);\n const query = useQuery<\n BarnsportCollectionResponse<BarnsportActivityOffer, BarnsportActivityOffersFilter>\n >({\n queryKey: [...barnsportQueryRoot(context), 'activity-offers', filters],\n queryFn: () => api.listActivityOffers(filters),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n activityOffers: query.data?.items ?? [],\n count: query.data?.count ?? query.data?.items.length ?? 0,\n nextCursor: query.data?.nextCursor ?? null,\n hasMore: query.data?.hasMore ?? false,\n isLoading: query.isLoading,\n isFetching: query.isFetching,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useSubmitBarnsportFeedback() {\n const { client, orgId } = useAxCloudContext();\n const api = createBarnsportClient(client, orgId);\n return useMutation<BarnsportFeedbackResponse, Error, BarnsportFeedbackRequest>({\n mutationFn: (request) => api.submitFeedback(request),\n });\n}\n\nexport function useSubmitBarnsportReview() {\n const { client, orgId } = useAxCloudContext();\n const api = createBarnsportClient(client, orgId);\n return useMutation<BarnsportReviewSubmissionResponse, Error, BarnsportReviewSubmissionRequest>({\n mutationFn: (request) => api.submitReview(request),\n });\n}\n\nexport function useTrackBarnsportEvent() {\n const { client, orgId } = useAxCloudContext();\n const api = createBarnsportClient(client, orgId);\n return useMutation<BarnsportEventResponse, Error, BarnsportEventRequest>({\n mutationFn: (request) => api.trackEvent(request),\n });\n}\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AxCloud API Client
|
|
3
|
+
*
|
|
4
|
+
* Fetch wrapper with authentication header injection and error handling.
|
|
5
|
+
*/
|
|
6
|
+
interface ClientConfig {
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
getAccessToken?: () => Promise<string | undefined>;
|
|
9
|
+
/** API key for public content endpoints */
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
/** Default request timeout in milliseconds (default: 30000) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
}
|
|
14
|
+
interface RequestOptions extends Omit<RequestInit, 'body'> {
|
|
15
|
+
body?: unknown;
|
|
16
|
+
params?: Record<string, string | number | boolean | undefined>;
|
|
17
|
+
/** Request timeout in milliseconds (overrides client default) */
|
|
18
|
+
timeout?: number;
|
|
19
|
+
}
|
|
20
|
+
declare class AxCloudClient {
|
|
21
|
+
private baseUrl;
|
|
22
|
+
private getAccessToken?;
|
|
23
|
+
private apiKey?;
|
|
24
|
+
private defaultTimeout;
|
|
25
|
+
constructor(config: ClientConfig);
|
|
26
|
+
/**
|
|
27
|
+
* Update the access token getter (used when auth state changes)
|
|
28
|
+
*/
|
|
29
|
+
setAccessTokenGetter(getter: () => Promise<string | undefined>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Build URL with query parameters
|
|
32
|
+
*/
|
|
33
|
+
private buildUrl;
|
|
34
|
+
/**
|
|
35
|
+
* API key should only be sent to public endpoints.
|
|
36
|
+
* This avoids leaking public keys to authenticated/internal routes.
|
|
37
|
+
*/
|
|
38
|
+
private shouldAttachApiKey;
|
|
39
|
+
/**
|
|
40
|
+
* Make an authenticated request
|
|
41
|
+
*/
|
|
42
|
+
request<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
43
|
+
/**
|
|
44
|
+
* GET request
|
|
45
|
+
*/
|
|
46
|
+
get<T>(path: string, params?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
47
|
+
/**
|
|
48
|
+
* POST request
|
|
49
|
+
*/
|
|
50
|
+
post<T>(path: string, body?: unknown): Promise<T>;
|
|
51
|
+
/**
|
|
52
|
+
* PUT request
|
|
53
|
+
*/
|
|
54
|
+
put<T>(path: string, body?: unknown): Promise<T>;
|
|
55
|
+
/**
|
|
56
|
+
* PATCH request
|
|
57
|
+
*/
|
|
58
|
+
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
59
|
+
/**
|
|
60
|
+
* DELETE request
|
|
61
|
+
*/
|
|
62
|
+
delete<T>(path: string): Promise<T>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a client instance associated with a key (typically the provider instance)
|
|
66
|
+
* This allows multiple AxCloudProviders to coexist without conflicts
|
|
67
|
+
*/
|
|
68
|
+
declare function createClient(config: ClientConfig, key?: object): AxCloudClient;
|
|
69
|
+
/**
|
|
70
|
+
* Get a client instance by key
|
|
71
|
+
* @deprecated Use the client from useAxCloudContext() instead
|
|
72
|
+
*/
|
|
73
|
+
declare function getClient(key?: object): AxCloudClient;
|
|
74
|
+
|
|
75
|
+
export { AxCloudClient as A, createClient as c, getClient as g };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AxCloud API Client
|
|
3
|
+
*
|
|
4
|
+
* Fetch wrapper with authentication header injection and error handling.
|
|
5
|
+
*/
|
|
6
|
+
interface ClientConfig {
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
getAccessToken?: () => Promise<string | undefined>;
|
|
9
|
+
/** API key for public content endpoints */
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
/** Default request timeout in milliseconds (default: 30000) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
}
|
|
14
|
+
interface RequestOptions extends Omit<RequestInit, 'body'> {
|
|
15
|
+
body?: unknown;
|
|
16
|
+
params?: Record<string, string | number | boolean | undefined>;
|
|
17
|
+
/** Request timeout in milliseconds (overrides client default) */
|
|
18
|
+
timeout?: number;
|
|
19
|
+
}
|
|
20
|
+
declare class AxCloudClient {
|
|
21
|
+
private baseUrl;
|
|
22
|
+
private getAccessToken?;
|
|
23
|
+
private apiKey?;
|
|
24
|
+
private defaultTimeout;
|
|
25
|
+
constructor(config: ClientConfig);
|
|
26
|
+
/**
|
|
27
|
+
* Update the access token getter (used when auth state changes)
|
|
28
|
+
*/
|
|
29
|
+
setAccessTokenGetter(getter: () => Promise<string | undefined>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Build URL with query parameters
|
|
32
|
+
*/
|
|
33
|
+
private buildUrl;
|
|
34
|
+
/**
|
|
35
|
+
* API key should only be sent to public endpoints.
|
|
36
|
+
* This avoids leaking public keys to authenticated/internal routes.
|
|
37
|
+
*/
|
|
38
|
+
private shouldAttachApiKey;
|
|
39
|
+
/**
|
|
40
|
+
* Make an authenticated request
|
|
41
|
+
*/
|
|
42
|
+
request<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
43
|
+
/**
|
|
44
|
+
* GET request
|
|
45
|
+
*/
|
|
46
|
+
get<T>(path: string, params?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
47
|
+
/**
|
|
48
|
+
* POST request
|
|
49
|
+
*/
|
|
50
|
+
post<T>(path: string, body?: unknown): Promise<T>;
|
|
51
|
+
/**
|
|
52
|
+
* PUT request
|
|
53
|
+
*/
|
|
54
|
+
put<T>(path: string, body?: unknown): Promise<T>;
|
|
55
|
+
/**
|
|
56
|
+
* PATCH request
|
|
57
|
+
*/
|
|
58
|
+
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
59
|
+
/**
|
|
60
|
+
* DELETE request
|
|
61
|
+
*/
|
|
62
|
+
delete<T>(path: string): Promise<T>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a client instance associated with a key (typically the provider instance)
|
|
66
|
+
* This allows multiple AxCloudProviders to coexist without conflicts
|
|
67
|
+
*/
|
|
68
|
+
declare function createClient(config: ClientConfig, key?: object): AxCloudClient;
|
|
69
|
+
/**
|
|
70
|
+
* Get a client instance by key
|
|
71
|
+
* @deprecated Use the client from useAxCloudContext() instead
|
|
72
|
+
*/
|
|
73
|
+
declare function getClient(key?: object): AxCloudClient;
|
|
74
|
+
|
|
75
|
+
export { AxCloudClient as A, createClient as c, getClient as g };
|