academe-kit 0.3.6 → 0.3.8

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,223 @@
1
+ import type { AcademeApiClient } from './index';
2
+ import type { components } from '../types/academe-api';
3
+ type CreateQuizDto = components['schemas']['CreateQuizDto'];
4
+ type UpdateQuizDto = components['schemas']['UpdateQuizDto'];
5
+ type GetQuizzesParams = {
6
+ title?: string;
7
+ courseId?: string;
8
+ isActive?: boolean;
9
+ createdBy?: string;
10
+ search?: string;
11
+ page?: number;
12
+ limit?: number;
13
+ };
14
+ export declare function createQuizService(apiClient: AcademeApiClient): {
15
+ /**
16
+ * List all quizzes
17
+ */
18
+ getAll(params?: GetQuizzesParams): Promise<import("openapi-fetch").FetchResponse<{
19
+ parameters: {
20
+ query?: {
21
+ title?: string;
22
+ courseId?: string;
23
+ isActive?: boolean;
24
+ createdBy?: string;
25
+ search?: string;
26
+ page?: number;
27
+ limit?: number;
28
+ };
29
+ header?: never;
30
+ path?: never;
31
+ cookie?: never;
32
+ };
33
+ requestBody?: never;
34
+ responses: {
35
+ 200: {
36
+ headers: {
37
+ [name: string]: unknown;
38
+ };
39
+ content: {
40
+ "application/json": {
41
+ status?: string;
42
+ data?: components["schemas"]["Quiz"][];
43
+ meta?: components["schemas"]["PaginationMeta"];
44
+ };
45
+ };
46
+ };
47
+ 401: components["responses"]["Unauthorized"];
48
+ 500: components["responses"]["ServerError"];
49
+ };
50
+ }, {
51
+ params: {
52
+ query: GetQuizzesParams | undefined;
53
+ };
54
+ }, `${string}/${string}`>>;
55
+ /**
56
+ * Get quiz by ID
57
+ */
58
+ getById(id: string): Promise<import("openapi-fetch").FetchResponse<{
59
+ parameters: {
60
+ query?: never;
61
+ header?: never;
62
+ path: {
63
+ id: components["parameters"]["id"];
64
+ };
65
+ cookie?: never;
66
+ };
67
+ requestBody?: never;
68
+ responses: {
69
+ 200: {
70
+ headers: {
71
+ [name: string]: unknown;
72
+ };
73
+ content: {
74
+ "application/json": {
75
+ status?: string;
76
+ data?: components["schemas"]["Quiz"];
77
+ };
78
+ };
79
+ };
80
+ 400: components["responses"]["BadRequest"];
81
+ 401: components["responses"]["Unauthorized"];
82
+ 404: components["responses"]["NotFound"];
83
+ 500: components["responses"]["ServerError"];
84
+ };
85
+ }, {
86
+ params: {
87
+ path: {
88
+ id: string;
89
+ };
90
+ };
91
+ }, `${string}/${string}`>>;
92
+ /**
93
+ * Create a new quiz
94
+ */
95
+ create(data: CreateQuizDto): Promise<import("openapi-fetch").FetchResponse<{
96
+ parameters: {
97
+ query?: never;
98
+ header?: never;
99
+ path?: never;
100
+ cookie?: never;
101
+ };
102
+ requestBody: {
103
+ content: {
104
+ "application/json": components["schemas"]["CreateQuizDto"];
105
+ };
106
+ };
107
+ responses: {
108
+ 201: {
109
+ headers: {
110
+ [name: string]: unknown;
111
+ };
112
+ content: {
113
+ "application/json": {
114
+ status?: string;
115
+ data?: components["schemas"]["Quiz"];
116
+ };
117
+ };
118
+ };
119
+ 400: components["responses"]["BadRequest"];
120
+ 401: components["responses"]["Unauthorized"];
121
+ 500: components["responses"]["ServerError"];
122
+ };
123
+ }, {
124
+ body: {
125
+ courseId?: string;
126
+ title: string;
127
+ description?: string;
128
+ passingScore?: number;
129
+ timeLimit?: number;
130
+ maxAttempts?: number;
131
+ randomizeQuestions?: boolean;
132
+ showCorrectAnswers?: boolean;
133
+ isActive?: boolean;
134
+ createdBy: string;
135
+ };
136
+ }, `${string}/${string}`>>;
137
+ /**
138
+ * Update quiz
139
+ */
140
+ update(id: string, data: UpdateQuizDto): Promise<import("openapi-fetch").FetchResponse<{
141
+ parameters: {
142
+ query?: never;
143
+ header?: never;
144
+ path: {
145
+ id: components["parameters"]["id"];
146
+ };
147
+ cookie?: never;
148
+ };
149
+ requestBody: {
150
+ content: {
151
+ "application/json": components["schemas"]["UpdateQuizDto"];
152
+ };
153
+ };
154
+ responses: {
155
+ 200: {
156
+ headers: {
157
+ [name: string]: unknown;
158
+ };
159
+ content: {
160
+ "application/json": {
161
+ status?: string;
162
+ data?: components["schemas"]["Quiz"];
163
+ };
164
+ };
165
+ };
166
+ 400: components["responses"]["BadRequest"];
167
+ 401: components["responses"]["Unauthorized"];
168
+ 404: components["responses"]["NotFound"];
169
+ 500: components["responses"]["ServerError"];
170
+ };
171
+ }, {
172
+ params: {
173
+ path: {
174
+ id: string;
175
+ };
176
+ };
177
+ body: {
178
+ courseId?: string;
179
+ title?: string;
180
+ description?: string;
181
+ passingScore?: number;
182
+ timeLimit?: number;
183
+ maxAttempts?: number;
184
+ randomizeQuestions?: boolean;
185
+ showCorrectAnswers?: boolean;
186
+ isActive?: boolean;
187
+ };
188
+ }, `${string}/${string}`>>;
189
+ /**
190
+ * Delete quiz
191
+ */
192
+ delete(id: string): Promise<import("openapi-fetch").FetchResponse<{
193
+ parameters: {
194
+ query?: never;
195
+ header?: never;
196
+ path: {
197
+ id: components["parameters"]["id"];
198
+ };
199
+ cookie?: never;
200
+ };
201
+ requestBody?: never;
202
+ responses: {
203
+ 204: {
204
+ headers: {
205
+ [name: string]: unknown;
206
+ };
207
+ content?: never;
208
+ };
209
+ 400: components["responses"]["BadRequest"];
210
+ 401: components["responses"]["Unauthorized"];
211
+ 404: components["responses"]["NotFound"];
212
+ 500: components["responses"]["ServerError"];
213
+ };
214
+ }, {
215
+ params: {
216
+ path: {
217
+ id: string;
218
+ };
219
+ };
220
+ }, `${string}/${string}`>>;
221
+ };
222
+ export type QuizService = ReturnType<typeof createQuizService>;
223
+ export {};
@@ -0,0 +1,456 @@
1
+ import type { AcademeApiClient } from "./index";
2
+ import type { components, paths } from "../types/academe-api";
3
+ type CreateSeatCodesDto = components["schemas"]["CreateSeatCodesDto"];
4
+ type UpdateSeatCodeDto = components["schemas"]["UpdateSeatCodeDto"];
5
+ type SendCodeDto = components["schemas"]["SendCodeDto"];
6
+ export type GetSeatCodesQueryParams = paths["/institutions/{institutionId}/seat-codes"]["get"]["parameters"]["query"];
7
+ export declare function createSeatCodeService(apiClient: AcademeApiClient): {
8
+ getAll(institutionId: string, options?: GetSeatCodesQueryParams): Promise<import("openapi-fetch").FetchResponse<{
9
+ parameters: {
10
+ query?: {
11
+ seatId?: string;
12
+ search?: string;
13
+ status?: "reserved" | "active" | "available";
14
+ page?: number;
15
+ limit?: number;
16
+ };
17
+ header?: never;
18
+ path: {
19
+ institutionId: string;
20
+ };
21
+ cookie?: never;
22
+ };
23
+ requestBody?: never;
24
+ responses: {
25
+ 200: {
26
+ headers: {
27
+ [name: string]: unknown;
28
+ };
29
+ content: {
30
+ "application/json": {
31
+ status?: string;
32
+ data?: components["schemas"]["SeatCode"][];
33
+ meta?: {
34
+ total?: number;
35
+ page?: number;
36
+ limit?: number;
37
+ totalPages?: number;
38
+ };
39
+ };
40
+ };
41
+ };
42
+ 401: components["responses"]["Unauthorized"];
43
+ 404: components["responses"]["NotFound"];
44
+ 500: components["responses"]["ServerError"];
45
+ };
46
+ }, {
47
+ params: {
48
+ path: {
49
+ institutionId: string;
50
+ };
51
+ query: {
52
+ seatId?: string;
53
+ search?: string;
54
+ status?: "reserved" | "active" | "available";
55
+ page?: number;
56
+ limit?: number;
57
+ } | undefined;
58
+ };
59
+ }, `${string}/${string}`>>;
60
+ generate(institutionId: string, data: CreateSeatCodesDto): Promise<import("openapi-fetch").FetchResponse<{
61
+ parameters: {
62
+ query?: never;
63
+ header?: never;
64
+ path: {
65
+ institutionId: string;
66
+ };
67
+ cookie?: never;
68
+ };
69
+ requestBody: {
70
+ content: {
71
+ "application/json": components["schemas"]["CreateSeatCodesDto"];
72
+ };
73
+ };
74
+ responses: {
75
+ 201: {
76
+ headers: {
77
+ [name: string]: unknown;
78
+ };
79
+ content: {
80
+ "application/json": {
81
+ status?: string;
82
+ data?: components["schemas"]["SeatCode"][];
83
+ };
84
+ };
85
+ };
86
+ 400: components["responses"]["BadRequest"];
87
+ 401: components["responses"]["Unauthorized"];
88
+ 404: components["responses"]["NotFound"];
89
+ 500: components["responses"]["ServerError"];
90
+ };
91
+ }, {
92
+ params: {
93
+ path: {
94
+ institutionId: string;
95
+ };
96
+ };
97
+ body: {
98
+ seatId: string;
99
+ quantity: number;
100
+ };
101
+ }, `${string}/${string}`>>;
102
+ getById(institutionId: string, seatCodeId: string): Promise<import("openapi-fetch").FetchResponse<{
103
+ parameters: {
104
+ query?: never;
105
+ header?: never;
106
+ path: {
107
+ institutionId: string;
108
+ seatCodeId: string;
109
+ };
110
+ cookie?: never;
111
+ };
112
+ requestBody?: never;
113
+ responses: {
114
+ 200: {
115
+ headers: {
116
+ [name: string]: unknown;
117
+ };
118
+ content: {
119
+ "application/json": {
120
+ status?: string;
121
+ data?: components["schemas"]["SeatCode"];
122
+ };
123
+ };
124
+ };
125
+ 401: components["responses"]["Unauthorized"];
126
+ 404: components["responses"]["NotFound"];
127
+ 500: components["responses"]["ServerError"];
128
+ };
129
+ }, {
130
+ params: {
131
+ path: {
132
+ institutionId: string;
133
+ seatCodeId: string;
134
+ };
135
+ };
136
+ }, `${string}/${string}`>>;
137
+ update(institutionId: string, seatCodeId: string, data: UpdateSeatCodeDto): Promise<import("openapi-fetch").FetchResponse<{
138
+ parameters: {
139
+ query?: never;
140
+ header?: never;
141
+ path: {
142
+ institutionId: string;
143
+ seatCodeId: string;
144
+ };
145
+ cookie?: never;
146
+ };
147
+ requestBody: {
148
+ content: {
149
+ "application/json": components["schemas"]["UpdateSeatCodeDto"];
150
+ };
151
+ };
152
+ responses: {
153
+ 200: {
154
+ headers: {
155
+ [name: string]: unknown;
156
+ };
157
+ content: {
158
+ "application/json": {
159
+ status?: string;
160
+ data?: components["schemas"]["SeatCode"];
161
+ };
162
+ };
163
+ };
164
+ 400: components["responses"]["BadRequest"];
165
+ 401: components["responses"]["Unauthorized"];
166
+ 404: components["responses"]["NotFound"];
167
+ 500: components["responses"]["ServerError"];
168
+ };
169
+ }, {
170
+ params: {
171
+ path: {
172
+ institutionId: string;
173
+ seatCodeId: string;
174
+ };
175
+ };
176
+ body: {
177
+ isReserved?: boolean;
178
+ };
179
+ }, `${string}/${string}`>>;
180
+ delete(institutionId: string, seatCodeId: string): Promise<import("openapi-fetch").FetchResponse<{
181
+ parameters: {
182
+ query?: never;
183
+ header?: never;
184
+ path: {
185
+ institutionId: string;
186
+ seatCodeId: string;
187
+ };
188
+ cookie?: never;
189
+ };
190
+ requestBody?: never;
191
+ responses: {
192
+ 204: {
193
+ headers: {
194
+ [name: string]: unknown;
195
+ };
196
+ content?: never;
197
+ };
198
+ 400: components["responses"]["BadRequest"];
199
+ 401: components["responses"]["Unauthorized"];
200
+ 404: components["responses"]["NotFound"];
201
+ 500: components["responses"]["ServerError"];
202
+ };
203
+ }, {
204
+ params: {
205
+ path: {
206
+ institutionId: string;
207
+ seatCodeId: string;
208
+ };
209
+ };
210
+ }, `${string}/${string}`>>;
211
+ getBySeatId(institutionId: string, seatId: string): Promise<import("openapi-fetch").FetchResponse<{
212
+ parameters: {
213
+ query?: never;
214
+ header?: never;
215
+ path: {
216
+ institutionId: string;
217
+ seatId: string;
218
+ };
219
+ cookie?: never;
220
+ };
221
+ requestBody?: never;
222
+ responses: {
223
+ 200: {
224
+ headers: {
225
+ [name: string]: unknown;
226
+ };
227
+ content: {
228
+ "application/json": {
229
+ status?: string;
230
+ data?: components["schemas"]["SeatCode"][];
231
+ };
232
+ };
233
+ };
234
+ 401: components["responses"]["Unauthorized"];
235
+ 404: components["responses"]["NotFound"];
236
+ 500: components["responses"]["ServerError"];
237
+ };
238
+ }, {
239
+ params: {
240
+ path: {
241
+ institutionId: string;
242
+ seatId: string;
243
+ };
244
+ };
245
+ }, `${string}/${string}`>>;
246
+ deleteAllBySeatId(institutionId: string, seatId: string): Promise<import("openapi-fetch").FetchResponse<{
247
+ parameters: {
248
+ query?: never;
249
+ header?: never;
250
+ path: {
251
+ institutionId: string;
252
+ seatId: string;
253
+ };
254
+ cookie?: never;
255
+ };
256
+ requestBody?: never;
257
+ responses: {
258
+ 200: {
259
+ headers: {
260
+ [name: string]: unknown;
261
+ };
262
+ content: {
263
+ "application/json": {
264
+ status?: string;
265
+ data?: {
266
+ deletedCount?: number;
267
+ };
268
+ };
269
+ };
270
+ };
271
+ 400: components["responses"]["BadRequest"];
272
+ 401: components["responses"]["Unauthorized"];
273
+ 404: components["responses"]["NotFound"];
274
+ 500: components["responses"]["ServerError"];
275
+ };
276
+ }, {
277
+ params: {
278
+ path: {
279
+ institutionId: string;
280
+ seatId: string;
281
+ };
282
+ };
283
+ }, `${string}/${string}`>>;
284
+ getAvailableBySeatId(institutionId: string, seatId: string): Promise<import("openapi-fetch").FetchResponse<{
285
+ parameters: {
286
+ query?: never;
287
+ header?: never;
288
+ path: {
289
+ institutionId: string;
290
+ seatId: string;
291
+ };
292
+ cookie?: never;
293
+ };
294
+ requestBody?: never;
295
+ responses: {
296
+ 200: {
297
+ headers: {
298
+ [name: string]: unknown;
299
+ };
300
+ content: {
301
+ "application/json": {
302
+ status?: string;
303
+ data?: components["schemas"]["SeatCode"][];
304
+ };
305
+ };
306
+ };
307
+ 401: components["responses"]["Unauthorized"];
308
+ 404: components["responses"]["NotFound"];
309
+ 500: components["responses"]["ServerError"];
310
+ };
311
+ }, {
312
+ params: {
313
+ path: {
314
+ institutionId: string;
315
+ seatId: string;
316
+ };
317
+ };
318
+ }, `${string}/${string}`>>;
319
+ validate(code: string): Promise<import("openapi-fetch").FetchResponse<{
320
+ parameters: {
321
+ query?: never;
322
+ header?: never;
323
+ path: {
324
+ code: string;
325
+ };
326
+ cookie?: never;
327
+ };
328
+ requestBody?: never;
329
+ responses: {
330
+ 200: {
331
+ headers: {
332
+ [name: string]: unknown;
333
+ };
334
+ content: {
335
+ "application/json": {
336
+ status?: string;
337
+ data?: components["schemas"]["SeatCodeWithInstitution"];
338
+ };
339
+ };
340
+ };
341
+ 401: components["responses"]["Unauthorized"];
342
+ 404: components["responses"]["NotFound"];
343
+ 500: components["responses"]["ServerError"];
344
+ };
345
+ }, {
346
+ params: {
347
+ path: {
348
+ code: string;
349
+ };
350
+ };
351
+ }, `${string}/${string}`>>;
352
+ reserve(code: string): Promise<import("openapi-fetch").FetchResponse<{
353
+ parameters: {
354
+ query?: never;
355
+ header?: never;
356
+ path: {
357
+ code: string;
358
+ };
359
+ cookie?: never;
360
+ };
361
+ requestBody?: never;
362
+ responses: {
363
+ 200: {
364
+ headers: {
365
+ [name: string]: unknown;
366
+ };
367
+ content: {
368
+ "application/json": {
369
+ status?: string;
370
+ data?: components["schemas"]["SeatCodeWithInstitution"];
371
+ };
372
+ };
373
+ };
374
+ 401: components["responses"]["Unauthorized"];
375
+ 404: components["responses"]["NotFound"];
376
+ 409: {
377
+ headers: {
378
+ [name: string]: unknown;
379
+ };
380
+ content: {
381
+ "application/json": {
382
+ status?: string;
383
+ message?: string;
384
+ };
385
+ };
386
+ };
387
+ 500: components["responses"]["ServerError"];
388
+ };
389
+ }, {
390
+ params: {
391
+ path: {
392
+ code: string;
393
+ };
394
+ };
395
+ }, `${string}/${string}`>>;
396
+ sendCode(data: SendCodeDto): Promise<import("openapi-fetch").FetchResponse<{
397
+ parameters: {
398
+ query?: never;
399
+ header?: never;
400
+ path?: never;
401
+ cookie?: never;
402
+ };
403
+ requestBody: {
404
+ content: {
405
+ "application/json": components["schemas"]["SendCodeDto"];
406
+ };
407
+ };
408
+ responses: {
409
+ 200: {
410
+ headers: {
411
+ [name: string]: unknown;
412
+ };
413
+ content: {
414
+ "application/json": {
415
+ status?: string;
416
+ data?: components["schemas"]["SeatCodeWithInstitution"];
417
+ };
418
+ };
419
+ };
420
+ 400: {
421
+ headers: {
422
+ [name: string]: unknown;
423
+ };
424
+ content: {
425
+ "application/json": {
426
+ status?: string;
427
+ message?: string;
428
+ };
429
+ };
430
+ };
431
+ 401: components["responses"]["Unauthorized"];
432
+ 404: components["responses"]["NotFound"];
433
+ 409: {
434
+ headers: {
435
+ [name: string]: unknown;
436
+ };
437
+ content: {
438
+ "application/json": {
439
+ status?: string;
440
+ message?: string;
441
+ };
442
+ };
443
+ };
444
+ 500: components["responses"]["ServerError"];
445
+ };
446
+ }, {
447
+ body: {
448
+ phone: string;
449
+ name?: string;
450
+ code?: string;
451
+ seatId?: string;
452
+ };
453
+ }, `${string}/${string}`>>;
454
+ };
455
+ export type SeatCodeService = ReturnType<typeof createSeatCodeService>;
456
+ export {};