@osise/api-client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +474 -0
- package/dist/cjs/api/admin.js +277 -0
- package/dist/cjs/api/admin.js.map +1 -0
- package/dist/cjs/api/artisans.js +277 -0
- package/dist/cjs/api/artisans.js.map +1 -0
- package/dist/cjs/api/auth.js +83 -0
- package/dist/cjs/api/auth.js.map +1 -0
- package/dist/cjs/api/consumers.js +170 -0
- package/dist/cjs/api/consumers.js.map +1 -0
- package/dist/cjs/api/index.js +22 -0
- package/dist/cjs/api/index.js.map +1 -0
- package/dist/cjs/api/jobs.js +202 -0
- package/dist/cjs/api/jobs.js.map +1 -0
- package/dist/cjs/hooks/index.js +435 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/index.js +189 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types/admin.js +6 -0
- package/dist/cjs/types/admin.js.map +1 -0
- package/dist/cjs/types/artisan.js +6 -0
- package/dist/cjs/types/artisan.js.map +1 -0
- package/dist/cjs/types/auth.js +6 -0
- package/dist/cjs/types/auth.js.map +1 -0
- package/dist/cjs/types/common.js +6 -0
- package/dist/cjs/types/common.js.map +1 -0
- package/dist/cjs/types/consumer.js +6 -0
- package/dist/cjs/types/consumer.js.map +1 -0
- package/dist/cjs/types/enums.js +226 -0
- package/dist/cjs/types/enums.js.map +1 -0
- package/dist/cjs/types/index.js +35 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/job.js +6 -0
- package/dist/cjs/types/job.js.map +1 -0
- package/dist/cjs/utils/http-client.js +214 -0
- package/dist/cjs/utils/http-client.js.map +1 -0
- package/dist/cjs/utils/index.js +19 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/storage.js +105 -0
- package/dist/cjs/utils/storage.js.map +1 -0
- package/dist/esm/api/admin.js +269 -0
- package/dist/esm/api/admin.js.map +1 -0
- package/dist/esm/api/artisans.js +270 -0
- package/dist/esm/api/artisans.js.map +1 -0
- package/dist/esm/api/auth.js +79 -0
- package/dist/esm/api/auth.js.map +1 -0
- package/dist/esm/api/consumers.js +165 -0
- package/dist/esm/api/consumers.js.map +1 -0
- package/dist/esm/api/index.js +6 -0
- package/dist/esm/api/index.js.map +1 -0
- package/dist/esm/api/jobs.js +197 -0
- package/dist/esm/api/jobs.js.map +1 -0
- package/dist/esm/hooks/index.js +408 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/index.js +165 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/admin.js +5 -0
- package/dist/esm/types/admin.js.map +1 -0
- package/dist/esm/types/artisan.js +5 -0
- package/dist/esm/types/artisan.js.map +1 -0
- package/dist/esm/types/auth.js +5 -0
- package/dist/esm/types/auth.js.map +1 -0
- package/dist/esm/types/common.js +5 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/consumer.js +5 -0
- package/dist/esm/types/consumer.js.map +1 -0
- package/dist/esm/types/enums.js +223 -0
- package/dist/esm/types/enums.js.map +1 -0
- package/dist/esm/types/index.js +19 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/job.js +5 -0
- package/dist/esm/types/job.js.map +1 -0
- package/dist/esm/utils/http-client.js +208 -0
- package/dist/esm/utils/http-client.js.map +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/storage.js +99 -0
- package/dist/esm/utils/storage.js.map +1 -0
- package/dist/types/api/admin.d.ts +188 -0
- package/dist/types/api/admin.d.ts.map +1 -0
- package/dist/types/api/artisans.d.ts +183 -0
- package/dist/types/api/artisans.d.ts.map +1 -0
- package/dist/types/api/auth.d.ts +58 -0
- package/dist/types/api/auth.d.ts.map +1 -0
- package/dist/types/api/consumers.d.ts +113 -0
- package/dist/types/api/consumers.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +6 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/jobs.d.ts +136 -0
- package/dist/types/api/jobs.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +225 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +127 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/admin.d.ts +226 -0
- package/dist/types/types/admin.d.ts.map +1 -0
- package/dist/types/types/artisan.d.ts +438 -0
- package/dist/types/types/artisan.d.ts.map +1 -0
- package/dist/types/types/auth.d.ts +92 -0
- package/dist/types/types/auth.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +105 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/consumer.d.ts +144 -0
- package/dist/types/types/consumer.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +199 -0
- package/dist/types/types/enums.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +12 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/job.d.ts +226 -0
- package/dist/types/types/job.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts +65 -0
- package/dist/types/utils/http-client.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/storage.d.ts +48 -0
- package/dist/types/utils/storage.d.ts.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useState, useCallback, useEffect, useMemo } from 'react';
|
|
3
|
+
import { OsiseClient, OsiseApiError } from '../index';
|
|
4
|
+
const OsiseContext = createContext(null);
|
|
5
|
+
export function OsiseProvider({ config, children }) {
|
|
6
|
+
const [isAuthenticated, setAuthenticated] = useState(false);
|
|
7
|
+
const client = useMemo(() => {
|
|
8
|
+
const osiseClient = new OsiseClient({
|
|
9
|
+
...config,
|
|
10
|
+
onAuthRequired: () => {
|
|
11
|
+
setAuthenticated(false);
|
|
12
|
+
config.onAuthRequired?.();
|
|
13
|
+
},
|
|
14
|
+
onTokenRefresh: (accessToken, refreshToken) => {
|
|
15
|
+
setAuthenticated(true);
|
|
16
|
+
config.onTokenRefresh?.(accessToken, refreshToken);
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
// Check initial auth state
|
|
20
|
+
setAuthenticated(osiseClient.isAuthenticated());
|
|
21
|
+
return osiseClient;
|
|
22
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
23
|
+
}, [config.baseUrl]);
|
|
24
|
+
const contextValue = useMemo(() => ({ client, isAuthenticated, setAuthenticated }), [client, isAuthenticated]);
|
|
25
|
+
return (_jsx(OsiseContext.Provider, { value: contextValue, children: children }));
|
|
26
|
+
}
|
|
27
|
+
function useOsiseContext() {
|
|
28
|
+
const context = useContext(OsiseContext);
|
|
29
|
+
if (!context) {
|
|
30
|
+
throw new Error('useOsiseClient must be used within an OsiseProvider');
|
|
31
|
+
}
|
|
32
|
+
return context;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Hook to access the Osise client
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* function MyComponent() {
|
|
40
|
+
* const client = useOsiseClient();
|
|
41
|
+
*
|
|
42
|
+
* const handleLogin = async () => {
|
|
43
|
+
* await client.auth.requestOtp({ phoneNumber: '+234...' });
|
|
44
|
+
* };
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export function useOsiseClient() {
|
|
49
|
+
return useOsiseContext().client;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Hook to check authentication status
|
|
53
|
+
*/
|
|
54
|
+
export function useIsAuthenticated() {
|
|
55
|
+
return useOsiseContext().isAuthenticated;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Generic query hook for API calls
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```tsx
|
|
62
|
+
* function Profile() {
|
|
63
|
+
* const { data, isLoading, error } = useQuery(
|
|
64
|
+
* () => client.consumers.getProfile(),
|
|
65
|
+
* { enabled: isAuthenticated }
|
|
66
|
+
* );
|
|
67
|
+
*
|
|
68
|
+
* if (isLoading) return <Loading />;
|
|
69
|
+
* if (error) return <Error message={error.message} />;
|
|
70
|
+
* return <div>{data?.firstName}</div>;
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export function useQuery(queryFn, options = {}) {
|
|
75
|
+
const { enabled = true, refetchOnMount = true } = options;
|
|
76
|
+
const [state, setState] = useState({
|
|
77
|
+
data: null,
|
|
78
|
+
error: null,
|
|
79
|
+
isLoading: enabled,
|
|
80
|
+
isError: false,
|
|
81
|
+
isSuccess: false,
|
|
82
|
+
});
|
|
83
|
+
const execute = useCallback(async () => {
|
|
84
|
+
if (!enabled)
|
|
85
|
+
return;
|
|
86
|
+
setState((prev) => ({ ...prev, isLoading: true, error: null }));
|
|
87
|
+
try {
|
|
88
|
+
const response = await queryFn();
|
|
89
|
+
setState({
|
|
90
|
+
data: response.data,
|
|
91
|
+
error: null,
|
|
92
|
+
isLoading: false,
|
|
93
|
+
isError: false,
|
|
94
|
+
isSuccess: true,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
const error = err instanceof OsiseApiError ? err : new OsiseApiError('Unknown error', 500);
|
|
99
|
+
setState({
|
|
100
|
+
data: null,
|
|
101
|
+
error,
|
|
102
|
+
isLoading: false,
|
|
103
|
+
isError: true,
|
|
104
|
+
isSuccess: false,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}, [queryFn, enabled]);
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
if (refetchOnMount) {
|
|
110
|
+
void execute();
|
|
111
|
+
}
|
|
112
|
+
}, [execute, refetchOnMount]);
|
|
113
|
+
return {
|
|
114
|
+
...state,
|
|
115
|
+
refetch: execute,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generic mutation hook for API calls
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```tsx
|
|
123
|
+
* function RequestOtp() {
|
|
124
|
+
* const { mutate, isLoading } = useMutation(
|
|
125
|
+
* (phone: string) => client.auth.requestOtp({ phoneNumber: phone, purpose: 'Login' }),
|
|
126
|
+
* {
|
|
127
|
+
* onSuccess: () => navigate('/verify-otp'),
|
|
128
|
+
* onError: (error) => toast.error(error.message),
|
|
129
|
+
* }
|
|
130
|
+
* );
|
|
131
|
+
*
|
|
132
|
+
* return (
|
|
133
|
+
* <button onClick={() => mutate('+234...')} disabled={isLoading}>
|
|
134
|
+
* Request OTP
|
|
135
|
+
* </button>
|
|
136
|
+
* );
|
|
137
|
+
* }
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export function useMutation(mutationFn, options = {}) {
|
|
141
|
+
const [state, setState] = useState({
|
|
142
|
+
data: null,
|
|
143
|
+
error: null,
|
|
144
|
+
isLoading: false,
|
|
145
|
+
isError: false,
|
|
146
|
+
isSuccess: false,
|
|
147
|
+
});
|
|
148
|
+
const reset = useCallback(() => {
|
|
149
|
+
setState({
|
|
150
|
+
data: null,
|
|
151
|
+
error: null,
|
|
152
|
+
isLoading: false,
|
|
153
|
+
isError: false,
|
|
154
|
+
isSuccess: false,
|
|
155
|
+
});
|
|
156
|
+
}, []);
|
|
157
|
+
const mutateAsync = useCallback(async (variables) => {
|
|
158
|
+
setState((prev) => ({ ...prev, isLoading: true, error: null }));
|
|
159
|
+
try {
|
|
160
|
+
const response = await mutationFn(variables);
|
|
161
|
+
const data = response.data;
|
|
162
|
+
setState({
|
|
163
|
+
data,
|
|
164
|
+
error: null,
|
|
165
|
+
isLoading: false,
|
|
166
|
+
isError: false,
|
|
167
|
+
isSuccess: true,
|
|
168
|
+
});
|
|
169
|
+
options.onSuccess?.(data);
|
|
170
|
+
options.onSettled?.();
|
|
171
|
+
return data;
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
const error = err instanceof OsiseApiError ? err : new OsiseApiError('Unknown error', 500);
|
|
175
|
+
setState({
|
|
176
|
+
data: null,
|
|
177
|
+
error,
|
|
178
|
+
isLoading: false,
|
|
179
|
+
isError: true,
|
|
180
|
+
isSuccess: false,
|
|
181
|
+
});
|
|
182
|
+
options.onError?.(error);
|
|
183
|
+
options.onSettled?.();
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
}, [mutationFn, options]);
|
|
187
|
+
const mutate = useCallback(async (variables) => {
|
|
188
|
+
try {
|
|
189
|
+
return await mutateAsync(variables);
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
}, [mutateAsync]);
|
|
195
|
+
return {
|
|
196
|
+
...state,
|
|
197
|
+
mutate,
|
|
198
|
+
mutateAsync,
|
|
199
|
+
reset,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Hook for OTP request
|
|
204
|
+
*/
|
|
205
|
+
export function useRequestOtp() {
|
|
206
|
+
const client = useOsiseClient();
|
|
207
|
+
return useMutation((data) => client.auth.requestOtp(data));
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Hook for OTP verification
|
|
211
|
+
*/
|
|
212
|
+
export function useVerifyOtp() {
|
|
213
|
+
const client = useOsiseClient();
|
|
214
|
+
const { setAuthenticated } = useOsiseContext();
|
|
215
|
+
return useMutation((data) => client.auth.verifyOtp(data), {
|
|
216
|
+
onSuccess: (data) => {
|
|
217
|
+
if (data?.tokens) {
|
|
218
|
+
client.setTokens(data.tokens.accessToken, data.tokens.refreshToken);
|
|
219
|
+
setAuthenticated(true);
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Hook for logout
|
|
226
|
+
*/
|
|
227
|
+
export function useLogout() {
|
|
228
|
+
const client = useOsiseClient();
|
|
229
|
+
const { setAuthenticated } = useOsiseContext();
|
|
230
|
+
return useMutation(() => client.auth.logout(), {
|
|
231
|
+
onSettled: () => {
|
|
232
|
+
client.clearTokens();
|
|
233
|
+
setAuthenticated(false);
|
|
234
|
+
},
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Hook for getting current user
|
|
239
|
+
*/
|
|
240
|
+
export function useCurrentUser() {
|
|
241
|
+
const client = useOsiseClient();
|
|
242
|
+
const isAuthenticated = useIsAuthenticated();
|
|
243
|
+
return useQuery(() => client.auth.getCurrentUser(), {
|
|
244
|
+
enabled: isAuthenticated,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Hook for consumer profile
|
|
249
|
+
*/
|
|
250
|
+
export function useConsumerProfile() {
|
|
251
|
+
const client = useOsiseClient();
|
|
252
|
+
const isAuthenticated = useIsAuthenticated();
|
|
253
|
+
return useQuery(() => client.consumers.getProfile(), {
|
|
254
|
+
enabled: isAuthenticated,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Hook for consumer addresses
|
|
259
|
+
*/
|
|
260
|
+
export function useConsumerAddresses() {
|
|
261
|
+
const client = useOsiseClient();
|
|
262
|
+
const isAuthenticated = useIsAuthenticated();
|
|
263
|
+
return useQuery(() => client.consumerAddresses.getAll(), {
|
|
264
|
+
enabled: isAuthenticated,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Hook for favorite artisans
|
|
269
|
+
*/
|
|
270
|
+
export function useFavoriteArtisans(params) {
|
|
271
|
+
const client = useOsiseClient();
|
|
272
|
+
const isAuthenticated = useIsAuthenticated();
|
|
273
|
+
return useQuery(() => client.consumers.getFavorites(params), {
|
|
274
|
+
enabled: isAuthenticated,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
// ==================== Artisan Hooks ====================
|
|
278
|
+
/**
|
|
279
|
+
* Hook for artisan profile
|
|
280
|
+
*/
|
|
281
|
+
export function useArtisanProfile() {
|
|
282
|
+
const client = useOsiseClient();
|
|
283
|
+
const isAuthenticated = useIsAuthenticated();
|
|
284
|
+
return useQuery(() => client.artisans.getProfile(), {
|
|
285
|
+
enabled: isAuthenticated,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Hook for artisan application status
|
|
290
|
+
*/
|
|
291
|
+
export function useApplicationStatus() {
|
|
292
|
+
const client = useOsiseClient();
|
|
293
|
+
const isAuthenticated = useIsAuthenticated();
|
|
294
|
+
return useQuery(() => client.artisans.getApplicationStatus(), {
|
|
295
|
+
enabled: isAuthenticated,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Hook for artisan documents
|
|
300
|
+
*/
|
|
301
|
+
export function useArtisanDocuments() {
|
|
302
|
+
const client = useOsiseClient();
|
|
303
|
+
const isAuthenticated = useIsAuthenticated();
|
|
304
|
+
return useQuery(() => client.artisans.getDocuments(), {
|
|
305
|
+
enabled: isAuthenticated,
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Hook for artisan availability
|
|
310
|
+
*/
|
|
311
|
+
export function useArtisanAvailability() {
|
|
312
|
+
const client = useOsiseClient();
|
|
313
|
+
const isAuthenticated = useIsAuthenticated();
|
|
314
|
+
return useQuery(() => client.artisanAvailability.getStatus(), {
|
|
315
|
+
enabled: isAuthenticated,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Hook for artisan earnings
|
|
320
|
+
*/
|
|
321
|
+
export function useArtisanEarnings() {
|
|
322
|
+
const client = useOsiseClient();
|
|
323
|
+
const isAuthenticated = useIsAuthenticated();
|
|
324
|
+
return useQuery(() => client.artisanEarnings.getSummary(), {
|
|
325
|
+
enabled: isAuthenticated,
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Hook for artisan performance
|
|
330
|
+
*/
|
|
331
|
+
export function useArtisanPerformance() {
|
|
332
|
+
const client = useOsiseClient();
|
|
333
|
+
const isAuthenticated = useIsAuthenticated();
|
|
334
|
+
return useQuery(() => client.artisanPerformance.getRating(), {
|
|
335
|
+
enabled: isAuthenticated,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Hook for consumer jobs
|
|
340
|
+
*/
|
|
341
|
+
export function useConsumerJobs(params) {
|
|
342
|
+
const client = useOsiseClient();
|
|
343
|
+
const isAuthenticated = useIsAuthenticated();
|
|
344
|
+
return useQuery(() => client.jobs.list(params), {
|
|
345
|
+
enabled: isAuthenticated,
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Hook for artisan jobs
|
|
350
|
+
*/
|
|
351
|
+
export function useArtisanJobs(params) {
|
|
352
|
+
const client = useOsiseClient();
|
|
353
|
+
const isAuthenticated = useIsAuthenticated();
|
|
354
|
+
return useQuery(() => client.artisanJobs.list(params), {
|
|
355
|
+
enabled: isAuthenticated,
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Hook for a specific job
|
|
360
|
+
*/
|
|
361
|
+
export function useJob(jobId) {
|
|
362
|
+
const client = useOsiseClient();
|
|
363
|
+
const isAuthenticated = useIsAuthenticated();
|
|
364
|
+
return useQuery(() => client.jobs.get(jobId), {
|
|
365
|
+
enabled: isAuthenticated && !!jobId,
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Hook for admin dashboard stats
|
|
370
|
+
*/
|
|
371
|
+
export function useDashboardStats() {
|
|
372
|
+
const client = useOsiseClient();
|
|
373
|
+
const isAuthenticated = useIsAuthenticated();
|
|
374
|
+
return useQuery(() => client.adminDashboard.getStats(), {
|
|
375
|
+
enabled: isAuthenticated,
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Hook for admin artisan list
|
|
380
|
+
*/
|
|
381
|
+
export function useAdminArtisans(params) {
|
|
382
|
+
const client = useOsiseClient();
|
|
383
|
+
const isAuthenticated = useIsAuthenticated();
|
|
384
|
+
return useQuery(() => client.adminArtisans.list(params), {
|
|
385
|
+
enabled: isAuthenticated,
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Hook for admin consumer list
|
|
390
|
+
*/
|
|
391
|
+
export function useAdminConsumers(params) {
|
|
392
|
+
const client = useOsiseClient();
|
|
393
|
+
const isAuthenticated = useIsAuthenticated();
|
|
394
|
+
return useQuery(() => client.adminConsumers.list(params), {
|
|
395
|
+
enabled: isAuthenticated,
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Hook for pending applications
|
|
400
|
+
*/
|
|
401
|
+
export function usePendingApplications(params) {
|
|
402
|
+
const client = useOsiseClient();
|
|
403
|
+
const isAuthenticated = useIsAuthenticated();
|
|
404
|
+
return useQuery(() => client.adminApplications.list(params), {
|
|
405
|
+
enabled: isAuthenticated,
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Osise API Client SDK
|
|
3
|
+
* Official TypeScript SDK for the Osise API
|
|
4
|
+
*
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*/
|
|
7
|
+
import { HttpClient } from './utils/http-client';
|
|
8
|
+
import { MemoryTokenStorage } from './utils/storage';
|
|
9
|
+
import { AuthApi } from './api/auth';
|
|
10
|
+
import { ConsumersApi, ConsumerAddressesApi } from './api/consumers';
|
|
11
|
+
import { ArtisansApi, ArtisanAvailabilityApi, ArtisanEarningsApi, ArtisanPerformanceApi, } from './api/artisans';
|
|
12
|
+
import { JobsApi, ArtisanJobsApi } from './api/jobs';
|
|
13
|
+
import { AdminArtisansApi, AdminApplicationsApi, AdminConsumersApi, AdminDashboardApi, AdminJobsApi, } from './api/admin';
|
|
14
|
+
// Re-export all types
|
|
15
|
+
export * from './types';
|
|
16
|
+
// Re-export utilities
|
|
17
|
+
export { OsiseApiError } from './utils/http-client';
|
|
18
|
+
export { HttpClient } from './utils/http-client';
|
|
19
|
+
export { MemoryTokenStorage, BrowserTokenStorage, SecureTokenStorage } from './utils/storage';
|
|
20
|
+
// Re-export API classes for advanced usage
|
|
21
|
+
export * from './api';
|
|
22
|
+
/**
|
|
23
|
+
* Main Osise API Client
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { OsiseClient } from '@osise/api-client';
|
|
28
|
+
*
|
|
29
|
+
* const client = new OsiseClient({
|
|
30
|
+
* baseUrl: 'https://api.osise.com',
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // Request OTP
|
|
34
|
+
* const response = await client.auth.requestOtp({
|
|
35
|
+
* phoneNumber: '+2348012345678',
|
|
36
|
+
* purpose: 'Login',
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // Verify OTP and get tokens
|
|
40
|
+
* const authResponse = await client.auth.verifyOtp({
|
|
41
|
+
* phoneNumber: '+2348012345678',
|
|
42
|
+
* code: '123456',
|
|
43
|
+
* deviceId: 'unique-device-id',
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* // Access consumer features
|
|
47
|
+
* const profile = await client.consumers.getProfile();
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export class OsiseClient {
|
|
51
|
+
constructor(config) {
|
|
52
|
+
this.storage = config.storage ?? new MemoryTokenStorage();
|
|
53
|
+
const httpConfig = {
|
|
54
|
+
baseUrl: config.baseUrl,
|
|
55
|
+
timeout: config.timeout,
|
|
56
|
+
headers: config.headers,
|
|
57
|
+
getAccessToken: () => this.storage.getAccessToken(),
|
|
58
|
+
getRefreshToken: () => this.storage.getRefreshToken(),
|
|
59
|
+
setTokens: (accessToken, refreshToken) => {
|
|
60
|
+
this.storage.setTokens(accessToken, refreshToken);
|
|
61
|
+
config.onTokenRefresh?.(accessToken, refreshToken);
|
|
62
|
+
},
|
|
63
|
+
onError: async (error) => {
|
|
64
|
+
if (error.isUnauthorized) {
|
|
65
|
+
this.storage.clearTokens();
|
|
66
|
+
config.onAuthRequired?.();
|
|
67
|
+
}
|
|
68
|
+
config.onError?.(error);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
// Add token refresh if enabled
|
|
72
|
+
if (config.autoRefresh !== false) {
|
|
73
|
+
httpConfig.onTokenRefresh = async () => {
|
|
74
|
+
const refreshToken = this.storage.getRefreshToken();
|
|
75
|
+
if (!refreshToken) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const response = await this.http.post('/api/v1/auth/token/refresh', { refreshToken });
|
|
80
|
+
if (response.success && response.data) {
|
|
81
|
+
const { accessToken, refreshToken: newRefreshToken } = response.data.tokens;
|
|
82
|
+
this.storage.setTokens(accessToken, newRefreshToken);
|
|
83
|
+
config.onTokenRefresh?.(accessToken, newRefreshToken);
|
|
84
|
+
return accessToken;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
this.storage.clearTokens();
|
|
90
|
+
config.onAuthRequired?.();
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
this.http = new HttpClient(httpConfig);
|
|
96
|
+
// Initialize API modules
|
|
97
|
+
this.auth = new AuthApi(this.http);
|
|
98
|
+
this.consumers = new ConsumersApi(this.http);
|
|
99
|
+
this.consumerAddresses = new ConsumerAddressesApi(this.http);
|
|
100
|
+
this.artisans = new ArtisansApi(this.http);
|
|
101
|
+
this.artisanAvailability = new ArtisanAvailabilityApi(this.http);
|
|
102
|
+
this.artisanEarnings = new ArtisanEarningsApi(this.http);
|
|
103
|
+
this.artisanPerformance = new ArtisanPerformanceApi(this.http);
|
|
104
|
+
this.jobs = new JobsApi(this.http);
|
|
105
|
+
this.artisanJobs = new ArtisanJobsApi(this.http);
|
|
106
|
+
// Admin modules
|
|
107
|
+
this.adminArtisans = new AdminArtisansApi(this.http);
|
|
108
|
+
this.adminApplications = new AdminApplicationsApi(this.http);
|
|
109
|
+
this.adminConsumers = new AdminConsumersApi(this.http);
|
|
110
|
+
this.adminDashboard = new AdminDashboardApi(this.http);
|
|
111
|
+
this.adminJobs = new AdminJobsApi(this.http);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Set authentication tokens manually
|
|
115
|
+
*/
|
|
116
|
+
setTokens(accessToken, refreshToken) {
|
|
117
|
+
this.storage.setTokens(accessToken, refreshToken);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear authentication tokens (logout)
|
|
121
|
+
*/
|
|
122
|
+
clearTokens() {
|
|
123
|
+
this.storage.clearTokens();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Check if user is authenticated
|
|
127
|
+
*/
|
|
128
|
+
isAuthenticated() {
|
|
129
|
+
return this.storage.getAccessToken() !== null;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get the current access token
|
|
133
|
+
*/
|
|
134
|
+
getAccessToken() {
|
|
135
|
+
return this.storage.getAccessToken();
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get the underlying HTTP client for advanced usage
|
|
139
|
+
*/
|
|
140
|
+
getHttpClient() {
|
|
141
|
+
return this.http;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Create an Osise client instance
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* import { createOsiseClient, BrowserTokenStorage } from '@osise/api-client';
|
|
150
|
+
*
|
|
151
|
+
* const client = createOsiseClient({
|
|
152
|
+
* baseUrl: 'https://api.osise.com',
|
|
153
|
+
* storage: new BrowserTokenStorage(),
|
|
154
|
+
* onAuthRequired: () => {
|
|
155
|
+
* window.location.href = '/login';
|
|
156
|
+
* },
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export function createOsiseClient(config) {
|
|
161
|
+
return new OsiseClient(config);
|
|
162
|
+
}
|
|
163
|
+
// Default export
|
|
164
|
+
export default OsiseClient;
|
|
165
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/types/admin.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artisan.js","sourceRoot":"","sources":["../../../src/types/artisan.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../../src/types/consumer.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|