academe-kit 0.1.9 → 0.2.2

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.
@@ -0,0 +1,438 @@
1
+ import type { AcademeApiClient } from './index';
2
+ import type { components } from '../types/academe-api';
3
+ type CreateUserBody = {
4
+ firstName: string;
5
+ lastName: string;
6
+ email: string;
7
+ password: string;
8
+ phone?: string;
9
+ document?: number;
10
+ gender?: 'male' | 'female' | 'other';
11
+ birthdate?: string;
12
+ };
13
+ type UpdateUserDto = components['schemas']['UpdateUserDto'];
14
+ type GetUsersParams = {
15
+ email?: string;
16
+ document?: number;
17
+ only_students?: boolean;
18
+ institution_id?: string;
19
+ search?: string;
20
+ page?: number;
21
+ limit?: number;
22
+ };
23
+ export declare function createUserService(apiClient: AcademeApiClient): {
24
+ /**
25
+ * Get current authenticated user
26
+ */
27
+ getMe(): Promise<import("openapi-fetch").FetchResponse<{
28
+ parameters: {
29
+ query?: never;
30
+ header?: never;
31
+ path?: never;
32
+ cookie?: never;
33
+ };
34
+ requestBody?: never;
35
+ responses: {
36
+ 200: {
37
+ headers: {
38
+ [name: string]: unknown;
39
+ };
40
+ content: {
41
+ "application/json": {
42
+ status?: string;
43
+ data?: components["schemas"]["User"];
44
+ };
45
+ };
46
+ };
47
+ 401: components["responses"]["Unauthorized"];
48
+ 500: components["responses"]["ServerError"];
49
+ };
50
+ }, import("openapi-fetch").FetchOptions<{
51
+ parameters: {
52
+ query?: never;
53
+ header?: never;
54
+ path?: never;
55
+ cookie?: never;
56
+ };
57
+ requestBody?: never;
58
+ responses: {
59
+ 200: {
60
+ headers: {
61
+ [name: string]: unknown;
62
+ };
63
+ content: {
64
+ "application/json": {
65
+ status?: string;
66
+ data?: components["schemas"]["User"];
67
+ };
68
+ };
69
+ };
70
+ 401: components["responses"]["Unauthorized"];
71
+ 500: components["responses"]["ServerError"];
72
+ };
73
+ }> | undefined, `${string}/${string}`>>;
74
+ /**
75
+ * List all users with optional filters
76
+ */
77
+ getUsers(params?: GetUsersParams): Promise<import("openapi-fetch").FetchResponse<{
78
+ parameters: {
79
+ query?: {
80
+ email?: string;
81
+ document?: number;
82
+ only_students?: boolean;
83
+ institution_id?: string;
84
+ search?: string;
85
+ page?: components["parameters"]["page"];
86
+ limit?: components["parameters"]["limit"];
87
+ };
88
+ header?: never;
89
+ path?: never;
90
+ cookie?: never;
91
+ };
92
+ requestBody?: never;
93
+ responses: {
94
+ 200: {
95
+ headers: {
96
+ [name: string]: unknown;
97
+ };
98
+ content: {
99
+ "application/json": components["schemas"]["UserListResponse"];
100
+ };
101
+ };
102
+ 400: components["responses"]["BadRequest"];
103
+ 401: components["responses"]["Unauthorized"];
104
+ 500: components["responses"]["ServerError"];
105
+ };
106
+ }, {
107
+ params: {
108
+ query: GetUsersParams | undefined;
109
+ };
110
+ }, `${string}/${string}`>>;
111
+ /**
112
+ * Get user by ID
113
+ */
114
+ getUserById(id: string): Promise<import("openapi-fetch").FetchResponse<{
115
+ parameters: {
116
+ query?: never;
117
+ header?: never;
118
+ path: {
119
+ id: components["parameters"]["id"];
120
+ };
121
+ cookie?: never;
122
+ };
123
+ requestBody?: never;
124
+ responses: {
125
+ 200: {
126
+ headers: {
127
+ [name: string]: unknown;
128
+ };
129
+ content: {
130
+ "application/json": {
131
+ status?: string;
132
+ data?: components["schemas"]["User"];
133
+ };
134
+ };
135
+ };
136
+ 400: components["responses"]["BadRequest"];
137
+ 401: components["responses"]["Unauthorized"];
138
+ 404: components["responses"]["NotFound"];
139
+ 500: components["responses"]["ServerError"];
140
+ };
141
+ }, {
142
+ params: {
143
+ path: {
144
+ id: string;
145
+ };
146
+ };
147
+ }, `${string}/${string}`>>;
148
+ /**
149
+ * Create a new user
150
+ */
151
+ createUser(body: CreateUserBody): Promise<import("openapi-fetch").FetchResponse<{
152
+ parameters: {
153
+ query?: never;
154
+ header?: never;
155
+ path?: never;
156
+ cookie?: never;
157
+ };
158
+ requestBody: {
159
+ content: {
160
+ "application/json": {
161
+ firstName: string;
162
+ lastName: string;
163
+ email: string;
164
+ password: string;
165
+ phone?: string;
166
+ document?: number;
167
+ gender?: "male" | "female" | "other";
168
+ birthdate?: string;
169
+ };
170
+ };
171
+ };
172
+ responses: {
173
+ 201: {
174
+ headers: {
175
+ [name: string]: unknown;
176
+ };
177
+ content: {
178
+ "application/json": {
179
+ status?: string;
180
+ data?: components["schemas"]["User"];
181
+ };
182
+ };
183
+ };
184
+ 400: components["responses"]["BadRequest"];
185
+ 401: components["responses"]["Unauthorized"];
186
+ 409: {
187
+ headers: {
188
+ [name: string]: unknown;
189
+ };
190
+ content: {
191
+ "application/json": components["schemas"]["Error"];
192
+ };
193
+ };
194
+ 500: components["responses"]["ServerError"];
195
+ };
196
+ }, {
197
+ body: CreateUserBody;
198
+ }, `${string}/${string}`>>;
199
+ /**
200
+ * Update user information
201
+ */
202
+ updateUser(id: string, body: UpdateUserDto): Promise<import("openapi-fetch").FetchResponse<{
203
+ parameters: {
204
+ query?: never;
205
+ header?: never;
206
+ path: {
207
+ id: components["parameters"]["id"];
208
+ };
209
+ cookie?: never;
210
+ };
211
+ requestBody: {
212
+ content: {
213
+ "application/json": components["schemas"]["UpdateUserDto"];
214
+ };
215
+ };
216
+ responses: {
217
+ 200: {
218
+ headers: {
219
+ [name: string]: unknown;
220
+ };
221
+ content: {
222
+ "application/json": {
223
+ status?: string;
224
+ data?: components["schemas"]["User"];
225
+ message?: string;
226
+ };
227
+ };
228
+ };
229
+ 400: components["responses"]["BadRequest"];
230
+ 401: components["responses"]["Unauthorized"];
231
+ 404: components["responses"]["NotFound"];
232
+ 500: components["responses"]["ServerError"];
233
+ };
234
+ }, {
235
+ params: {
236
+ path: {
237
+ id: string;
238
+ };
239
+ };
240
+ body: {
241
+ firstName?: string;
242
+ lastName?: string;
243
+ email?: string;
244
+ phone?: string;
245
+ document?: number;
246
+ gender?: "male" | "female" | "other";
247
+ birthdate?: string;
248
+ };
249
+ }, `${string}/${string}`>>;
250
+ /**
251
+ * Delete user
252
+ */
253
+ deleteUser(id: string): Promise<import("openapi-fetch").FetchResponse<{
254
+ parameters: {
255
+ query?: never;
256
+ header?: never;
257
+ path: {
258
+ id: components["parameters"]["id"];
259
+ };
260
+ cookie?: never;
261
+ };
262
+ requestBody?: never;
263
+ responses: {
264
+ 200: {
265
+ headers: {
266
+ [name: string]: unknown;
267
+ };
268
+ content: {
269
+ "application/json": {
270
+ status?: string;
271
+ message?: string;
272
+ };
273
+ };
274
+ };
275
+ 400: components["responses"]["BadRequest"];
276
+ 401: components["responses"]["Unauthorized"];
277
+ 404: components["responses"]["NotFound"];
278
+ 500: components["responses"]["ServerError"];
279
+ };
280
+ }, {
281
+ params: {
282
+ path: {
283
+ id: string;
284
+ };
285
+ };
286
+ }, `${string}/${string}`>>;
287
+ /**
288
+ * Get user's groups
289
+ */
290
+ getUserGroups(id: string): Promise<import("openapi-fetch").FetchResponse<{
291
+ parameters: {
292
+ query?: never;
293
+ header?: never;
294
+ path: {
295
+ id: components["parameters"]["id"];
296
+ };
297
+ cookie?: never;
298
+ };
299
+ requestBody?: never;
300
+ responses: {
301
+ 200: {
302
+ headers: {
303
+ [name: string]: unknown;
304
+ };
305
+ content: {
306
+ "application/json": {
307
+ status?: string;
308
+ data?: components["schemas"]["Group"][];
309
+ };
310
+ };
311
+ };
312
+ 400: components["responses"]["BadRequest"];
313
+ 401: components["responses"]["Unauthorized"];
314
+ 404: components["responses"]["NotFound"];
315
+ 500: components["responses"]["ServerError"];
316
+ };
317
+ }, {
318
+ params: {
319
+ path: {
320
+ id: string;
321
+ };
322
+ };
323
+ }, `${string}/${string}`>>;
324
+ /**
325
+ * Get user's certificates
326
+ */
327
+ getUserCertificates(id: string): Promise<import("openapi-fetch").FetchResponse<{
328
+ parameters: {
329
+ query?: never;
330
+ header?: never;
331
+ path: {
332
+ id: components["parameters"]["id"];
333
+ };
334
+ cookie?: never;
335
+ };
336
+ requestBody?: never;
337
+ responses: {
338
+ 200: {
339
+ headers: {
340
+ [name: string]: unknown;
341
+ };
342
+ content: {
343
+ "application/json": {
344
+ status?: string;
345
+ data?: components["schemas"]["Certificate"][];
346
+ };
347
+ };
348
+ };
349
+ 400: components["responses"]["BadRequest"];
350
+ 401: components["responses"]["Unauthorized"];
351
+ 404: components["responses"]["NotFound"];
352
+ 500: components["responses"]["ServerError"];
353
+ };
354
+ }, {
355
+ params: {
356
+ path: {
357
+ id: string;
358
+ };
359
+ };
360
+ }, `${string}/${string}`>>;
361
+ /**
362
+ * Get user's institutions
363
+ */
364
+ getUserInstitutions(id: string): Promise<import("openapi-fetch").FetchResponse<{
365
+ parameters: {
366
+ query?: never;
367
+ header?: never;
368
+ path: {
369
+ id: components["parameters"]["id"];
370
+ };
371
+ cookie?: never;
372
+ };
373
+ requestBody?: never;
374
+ responses: {
375
+ 200: {
376
+ headers: {
377
+ [name: string]: unknown;
378
+ };
379
+ content: {
380
+ "application/json": {
381
+ status?: string;
382
+ data?: components["schemas"]["Institution"][];
383
+ };
384
+ };
385
+ };
386
+ 400: components["responses"]["BadRequest"];
387
+ 401: components["responses"]["Unauthorized"];
388
+ 404: components["responses"]["NotFound"];
389
+ 500: components["responses"]["ServerError"];
390
+ };
391
+ }, {
392
+ params: {
393
+ path: {
394
+ id: string;
395
+ };
396
+ };
397
+ }, `${string}/${string}`>>;
398
+ /**
399
+ * Sync user with Keycloak
400
+ */
401
+ syncUser(id: string): Promise<import("openapi-fetch").FetchResponse<{
402
+ parameters: {
403
+ query?: never;
404
+ header?: never;
405
+ path: {
406
+ id: components["parameters"]["id"];
407
+ };
408
+ cookie?: never;
409
+ };
410
+ requestBody?: never;
411
+ responses: {
412
+ 200: {
413
+ headers: {
414
+ [name: string]: unknown;
415
+ };
416
+ content: {
417
+ "application/json": {
418
+ status?: string;
419
+ data?: components["schemas"]["User"];
420
+ message?: string;
421
+ };
422
+ };
423
+ };
424
+ 400: components["responses"]["BadRequest"];
425
+ 401: components["responses"]["Unauthorized"];
426
+ 404: components["responses"]["NotFound"];
427
+ 500: components["responses"]["ServerError"];
428
+ };
429
+ }, {
430
+ params: {
431
+ path: {
432
+ id: string;
433
+ };
434
+ };
435
+ }, `${string}/${string}`>>;
436
+ };
437
+ export type UserService = ReturnType<typeof createUserService>;
438
+ export {};
@@ -0,0 +1,30 @@
1
+ import type { paths } from '../types/academe-api';
2
+ import createClient from 'openapi-fetch';
3
+ import { type UserService } from './UserService';
4
+ import { type InstitutionService } from './InstitutionService';
5
+ import { type ReportService } from './ReportService';
6
+ import { type ClassroomService } from './ClassroomService';
7
+ import { type OrganizationService } from './OrganizationService';
8
+ import { type SerieService } from './SerieService';
9
+ import { type ShiftService } from './ShiftService';
10
+ import { type GuardianService } from './GuardianService';
11
+ export type AcademeApiClient = ReturnType<typeof createClient<paths>>;
12
+ export declare function createAcademeApiClient(baseUrl: string): AcademeApiClient;
13
+ export interface AcademeServices {
14
+ user: UserService;
15
+ institution: InstitutionService;
16
+ report: ReportService;
17
+ classroom: ClassroomService;
18
+ organization: OrganizationService;
19
+ serie: SerieService;
20
+ shift: ShiftService;
21
+ guardian: GuardianService;
22
+ }
23
+ export declare function createAcademeServices(apiClient: AcademeApiClient): AcademeServices;
24
+ export { createUserService, type UserService } from './UserService';
25
+ export { createReportService, type ReportService } from './ReportService';
26
+ export { createClassroomService, type ClassroomService } from './ClassroomService';
27
+ export { createOrganizationService, type OrganizationService } from './OrganizationService';
28
+ export { createSerieService, type SerieService } from './SerieService';
29
+ export { createShiftService, type ShiftService } from './ShiftService';
30
+ export { createGuardianService, type GuardianService } from './GuardianService';