@profcomff/api-uilib 2024.11.24 → 2025.4.15

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 CHANGED
@@ -18,7 +18,7 @@ pnpm install @profcomff/api-uilib
18
18
  Используйте для совершения запросов к <https://api.test.profcomff.com> и <https://api.profcomff.com>.
19
19
 
20
20
  ```ts
21
- import { createClient } from "@profcomff/api-uilib";
21
+ import { createClient, setupAuth } from "@profcomff/api-uilib";
22
22
 
23
23
  // Setup client with base API path
24
24
  // You can use environment `import.meta.env.VITE_API_URL` for example
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profcomff/api-uilib",
3
- "version": "2024.11.24",
3
+ "version": "2025.04.15",
4
4
  "description": "API wrappers, autogenerated from openapi.json files",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.d.ts",
@@ -1577,6 +1577,8 @@ export interface components {
1577
1577
  expires?: string | null;
1578
1578
  /** Id */
1579
1579
  id: number;
1580
+ /** Is Unbounded */
1581
+ is_unbounded?: boolean | null;
1580
1582
  /**
1581
1583
  * Last Activity
1582
1584
  * Format: date-time
@@ -1745,6 +1747,8 @@ export interface components {
1745
1747
  SessionPost: {
1746
1748
  /** Expires */
1747
1749
  expires?: string | null;
1750
+ /** Is Unbounded */
1751
+ is_unbounded?: boolean | null;
1748
1752
  /**
1749
1753
  * Scopes
1750
1754
  * @default []
@@ -66,6 +66,26 @@ export interface paths {
66
66
  delete: operations["delete_comment_comment__uuid__delete"];
67
67
  options?: never;
68
68
  head?: never;
69
+ /**
70
+ * Update Comment
71
+ * @description Позволяет изменить свой неанонимный комментарий
72
+ */
73
+ patch: operations["update_comment_comment__uuid__patch"];
74
+ trace?: never;
75
+ };
76
+ "/rating/comment/{uuid}/review": {
77
+ parameters: {
78
+ query?: never;
79
+ header?: never;
80
+ path?: never;
81
+ cookie?: never;
82
+ };
83
+ get?: never;
84
+ put?: never;
85
+ post?: never;
86
+ delete?: never;
87
+ options?: never;
88
+ head?: never;
69
89
  /**
70
90
  * Review Comment
71
91
  * @description Scopes: `["rating.comment.review"]`
@@ -75,7 +95,28 @@ export interface paths {
75
95
  * `approved` - комментарий одобрен и возвращается при запросе лектора
76
96
  * `dismissed` - комментарий отклонен, не отображается в запросе лектора
77
97
  */
78
- patch: operations["review_comment_comment__uuid__patch"];
98
+ patch: operations["review_comment_comment__uuid__review_patch"];
99
+ trace?: never;
100
+ };
101
+ "/rating/comment/import": {
102
+ parameters: {
103
+ query?: never;
104
+ header?: never;
105
+ path?: never;
106
+ cookie?: never;
107
+ };
108
+ get?: never;
109
+ put?: never;
110
+ /**
111
+ * Import Comments
112
+ * @description Scopes: `["rating.comment.import"]`
113
+ * Создает комментарии в базе данных RatingAPI
114
+ */
115
+ post: operations["import_comments_comment_import_post"];
116
+ delete?: never;
117
+ options?: never;
118
+ head?: never;
119
+ patch?: never;
79
120
  trace?: never;
80
121
  };
81
122
  "/rating/lecturer": {
@@ -91,7 +132,7 @@ export interface paths {
91
132
  *
92
133
  * `offset` - нижняя граница получения преподавателей, т.е. если по дефолту первым возвращается преподаватель с условным номером N, то при наличии ненулевого offset будет возвращаться преподаватель с номером N + offset
93
134
  *
94
- * `order_by` - возможные значения `"mark_kindness", "mark_freebie", "mark_clarity", "mark_general", "last_name"`.
135
+ * `order_by` - возможные значения `"mark_weighted", "mark_kindness", "mark_freebie", "mark_clarity", "mark_general", "last_name"`.
95
136
  * Если передано `'last_name'` - возвращается список преподавателей отсортированных по алфавиту по фамилиям
96
137
  * Если передано `'mark_...'` - возвращается список преподавателей отсортированных по конкретной оценке
97
138
  *
@@ -183,7 +224,7 @@ export interface components {
183
224
  /** Mark Kindness */
184
225
  mark_kindness: number;
185
226
  /** Subject */
186
- subject: string;
227
+ subject?: string | null;
187
228
  /** Text */
188
229
  text: string;
189
230
  /**
@@ -213,8 +254,134 @@ export interface components {
213
254
  /** Total */
214
255
  total: number;
215
256
  };
257
+ /** CommentGetAllWithAllInfo */
258
+ CommentGetAllWithAllInfo: {
259
+ /**
260
+ * Comments
261
+ * @default []
262
+ */
263
+ comments: components["schemas"]["CommentGetWithAllInfo"][];
264
+ /** Limit */
265
+ limit: number;
266
+ /** Offset */
267
+ offset: number;
268
+ /** Total */
269
+ total: number;
270
+ };
271
+ /** CommentGetAllWithStatus */
272
+ CommentGetAllWithStatus: {
273
+ /**
274
+ * Comments
275
+ * @default []
276
+ */
277
+ comments: components["schemas"]["CommentGetWithStatus"][];
278
+ /** Limit */
279
+ limit: number;
280
+ /** Offset */
281
+ offset: number;
282
+ /** Total */
283
+ total: number;
284
+ };
285
+ /** CommentGetWithAllInfo */
286
+ CommentGetWithAllInfo: {
287
+ /** Approved By */
288
+ approved_by?: number | null;
289
+ /**
290
+ * Create Ts
291
+ * Format: date-time
292
+ */
293
+ create_ts: string;
294
+ /** Lecturer Id */
295
+ lecturer_id: number;
296
+ /** Mark Clarity */
297
+ mark_clarity: number;
298
+ /** Mark Freebie */
299
+ mark_freebie: number;
300
+ /** Mark General */
301
+ mark_general: number;
302
+ /** Mark Kindness */
303
+ mark_kindness: number;
304
+ review_status: components["schemas"]["ReviewStatus"];
305
+ /** Subject */
306
+ subject?: string | null;
307
+ /** Text */
308
+ text: string;
309
+ /**
310
+ * Update Ts
311
+ * Format: date-time
312
+ */
313
+ update_ts: string;
314
+ /** User Id */
315
+ user_id?: number | null;
316
+ /**
317
+ * Uuid
318
+ * Format: uuid
319
+ */
320
+ uuid: string;
321
+ };
322
+ /** CommentGetWithStatus */
323
+ CommentGetWithStatus: {
324
+ /**
325
+ * Create Ts
326
+ * Format: date-time
327
+ */
328
+ create_ts: string;
329
+ /** Lecturer Id */
330
+ lecturer_id: number;
331
+ /** Mark Clarity */
332
+ mark_clarity: number;
333
+ /** Mark Freebie */
334
+ mark_freebie: number;
335
+ /** Mark General */
336
+ mark_general: number;
337
+ /** Mark Kindness */
338
+ mark_kindness: number;
339
+ review_status: components["schemas"]["ReviewStatus"];
340
+ /** Subject */
341
+ subject?: string | null;
342
+ /** Text */
343
+ text: string;
344
+ /**
345
+ * Update Ts
346
+ * Format: date-time
347
+ */
348
+ update_ts: string;
349
+ /** User Id */
350
+ user_id?: number | null;
351
+ /**
352
+ * Uuid
353
+ * Format: uuid
354
+ */
355
+ uuid: string;
356
+ };
357
+ /** CommentImport */
358
+ CommentImport: {
359
+ /** Create Ts */
360
+ create_ts?: string | null;
361
+ /** Lecturer Id */
362
+ lecturer_id: number;
363
+ /** Mark Clarity */
364
+ mark_clarity: number;
365
+ /** Mark Freebie */
366
+ mark_freebie: number;
367
+ /** Mark Kindness */
368
+ mark_kindness: number;
369
+ /** Subject */
370
+ subject?: string | null;
371
+ /** Text */
372
+ text: string;
373
+ /** Update Ts */
374
+ update_ts?: string | null;
375
+ };
376
+ /** CommentImportAll */
377
+ CommentImportAll: {
378
+ /** Comments */
379
+ comments: components["schemas"]["CommentImport"][];
380
+ };
216
381
  /** CommentPost */
217
382
  CommentPost: {
383
+ /** Create Ts */
384
+ create_ts?: string | null;
218
385
  /**
219
386
  * Is Anonymous
220
387
  * @default true
@@ -230,6 +397,21 @@ export interface components {
230
397
  subject: string;
231
398
  /** Text */
232
399
  text: string;
400
+ /** Update Ts */
401
+ update_ts?: string | null;
402
+ };
403
+ /** CommentUpdate */
404
+ CommentUpdate: {
405
+ /** Mark Clarity */
406
+ mark_clarity?: number;
407
+ /** Mark Freebie */
408
+ mark_freebie?: number;
409
+ /** Mark Kindness */
410
+ mark_kindness?: number;
411
+ /** Subject */
412
+ subject?: string;
413
+ /** Text */
414
+ text?: string;
233
415
  };
234
416
  /** HTTPValidationError */
235
417
  HTTPValidationError: {
@@ -256,6 +438,8 @@ export interface components {
256
438
  mark_general?: number | null;
257
439
  /** Mark Kindness */
258
440
  mark_kindness?: number | null;
441
+ /** Mark Weighted */
442
+ mark_weighted?: number | null;
259
443
  /** Middle Name */
260
444
  middle_name: string;
261
445
  /** Subjects */
@@ -301,8 +485,13 @@ export interface components {
301
485
  /** Middle Name */
302
486
  middle_name: string;
303
487
  /** Timetable Id */
304
- timetable_id: number;
488
+ timetable_id?: number | null;
305
489
  };
490
+ /**
491
+ * ReviewStatus
492
+ * @enum {string}
493
+ */
494
+ ReviewStatus: "approved" | "pending" | "dismissed";
306
495
  /** StatusResponseModel */
307
496
  StatusResponseModel: {
308
497
  /** Message */
@@ -352,7 +541,7 @@ export interface operations {
352
541
  [name: string]: unknown;
353
542
  };
354
543
  content: {
355
- "application/json": components["schemas"]["CommentGetAll"];
544
+ "application/json": components["schemas"]["CommentGetAll"] | components["schemas"]["CommentGetAllWithAllInfo"] | components["schemas"]["CommentGetAllWithStatus"];
356
545
  };
357
546
  };
358
547
  /** @description Validation Error */
@@ -463,7 +652,42 @@ export interface operations {
463
652
  };
464
653
  };
465
654
  };
466
- review_comment_comment__uuid__patch: {
655
+ update_comment_comment__uuid__patch: {
656
+ parameters: {
657
+ query?: never;
658
+ header?: never;
659
+ path: {
660
+ uuid: string;
661
+ };
662
+ cookie?: never;
663
+ };
664
+ requestBody: {
665
+ content: {
666
+ "application/json": components["schemas"]["CommentUpdate"];
667
+ };
668
+ };
669
+ responses: {
670
+ /** @description Successful Response */
671
+ 200: {
672
+ headers: {
673
+ [name: string]: unknown;
674
+ };
675
+ content: {
676
+ "application/json": components["schemas"]["CommentGet"];
677
+ };
678
+ };
679
+ /** @description Validation Error */
680
+ 422: {
681
+ headers: {
682
+ [name: string]: unknown;
683
+ };
684
+ content: {
685
+ "application/json": components["schemas"]["HTTPValidationError"];
686
+ };
687
+ };
688
+ };
689
+ };
690
+ review_comment_comment__uuid__review_patch: {
467
691
  parameters: {
468
692
  query?: {
469
693
  review_status?: "approved" | "dismissed";
@@ -482,7 +706,40 @@ export interface operations {
482
706
  [name: string]: unknown;
483
707
  };
484
708
  content: {
485
- "application/json": components["schemas"]["CommentGet"];
709
+ "application/json": components["schemas"]["CommentGetWithAllInfo"];
710
+ };
711
+ };
712
+ /** @description Validation Error */
713
+ 422: {
714
+ headers: {
715
+ [name: string]: unknown;
716
+ };
717
+ content: {
718
+ "application/json": components["schemas"]["HTTPValidationError"];
719
+ };
720
+ };
721
+ };
722
+ };
723
+ import_comments_comment_import_post: {
724
+ parameters: {
725
+ query?: never;
726
+ header?: never;
727
+ path?: never;
728
+ cookie?: never;
729
+ };
730
+ requestBody: {
731
+ content: {
732
+ "application/json": components["schemas"]["CommentImportAll"];
733
+ };
734
+ };
735
+ responses: {
736
+ /** @description Successful Response */
737
+ 200: {
738
+ headers: {
739
+ [name: string]: unknown;
740
+ };
741
+ content: {
742
+ "application/json": components["schemas"]["CommentGetAll"];
486
743
  };
487
744
  };
488
745
  /** @description Validation Error */
@@ -504,7 +761,7 @@ export interface operations {
504
761
  limit?: number;
505
762
  name?: string;
506
763
  offset?: number;
507
- order_by?: "mark_kindness" | "mark_freebie" | "mark_clarity" | "mark_general" | "last_name";
764
+ order_by?: "mark_weighted" | "mark_kindness" | "mark_freebie" | "mark_clarity" | "mark_general" | "last_name";
508
765
  subject?: string;
509
766
  };
510
767
  header?: never;
@@ -21,6 +21,8 @@ export interface paths {
21
21
  * Create Category
22
22
  * @description Создать категорию пользовательских данных. Получить категорию можно будет со скоупами, имена которых в category_inp.scopes
23
23
  * Ручка обновит документацию
24
+ *
25
+ * Scopes: `["userdata.category.create"]`
24
26
  */
25
27
  post: operations["create_category_category_post"];
26
28
  delete?: never;
@@ -45,6 +47,8 @@ export interface paths {
45
47
  /**
46
48
  * Create Param
47
49
  * @description Создать поле внутри категории. Ответ на пользовательские данные будет такой {..., category: {...,param: '', ...}}
50
+ *
51
+ * Scopes: `["userdata.param.create"]`
48
52
  */
49
53
  post: operations["create_param_category__category_id__param_post"];
50
54
  delete?: never;
@@ -70,6 +74,8 @@ export interface paths {
70
74
  /**
71
75
  * Delete Param
72
76
  * @description Удалить параметр внутри категории
77
+ *
78
+ * Scopes: `["userdata.param.delete"]`
73
79
  */
74
80
  delete: operations["delete_param_category__category_id__param__id__delete"];
75
81
  options?: never;
@@ -77,6 +83,8 @@ export interface paths {
77
83
  /**
78
84
  * Patch Param
79
85
  * @description Обновить параметр внутри категории
86
+ *
87
+ * Scopes: `["userdata.param.update"]`
80
88
  */
81
89
  patch: operations["patch_param_category__category_id__param__id__patch"];
82
90
  trace?: never;
@@ -98,6 +106,8 @@ export interface paths {
98
106
  /**
99
107
  * Delete Category
100
108
  * @description Удалить категорию
109
+ *
110
+ * Scopes: `["userdata.category.delete"]`
101
111
  */
102
112
  delete: operations["delete_category_category__id__delete"];
103
113
  options?: never;
@@ -105,6 +115,8 @@ export interface paths {
105
115
  /**
106
116
  * Patch Category
107
117
  * @description Обновить категорию
118
+ *
119
+ * Scopes: `["userdata.category.update"]`
108
120
  */
109
121
  patch: operations["patch_category_category__id__patch"];
110
122
  trace?: never;
@@ -125,6 +137,8 @@ export interface paths {
125
137
  /**
126
138
  * Create Source
127
139
  * @description Создать источник данных
140
+ *
141
+ * Scopes: `["userdata.source.create"]`
128
142
  */
129
143
  post: operations["create_source_source_post"];
130
144
  delete?: never;
@@ -150,6 +164,8 @@ export interface paths {
150
164
  /**
151
165
  * Delete Source
152
166
  * @description Удалить источник данных
167
+ *
168
+ * Scopes: `["userdata.source.delete"]`
153
169
  */
154
170
  delete: operations["delete_source_source__id__delete"];
155
171
  options?: never;
@@ -157,10 +173,35 @@ export interface paths {
157
173
  /**
158
174
  * Patch Source
159
175
  * @description Обновить источник данных
176
+ *
177
+ * Scopes: `["userdata.source.update"]`
160
178
  */
161
179
  patch: operations["patch_source_source__id__patch"];
162
180
  trace?: never;
163
181
  };
182
+ "/userdata/user": {
183
+ parameters: {
184
+ query?: never;
185
+ header?: never;
186
+ path?: never;
187
+ cookie?: never;
188
+ };
189
+ /**
190
+ * Get Users Info
191
+ * @description Получить информацию о пользователях.
192
+ * :param users: список id юзеров, про которых нужно вернуть информацию
193
+ * :param categories: список id категорий, параметры которых нужно вернуть
194
+ * :return: список данных о пользователях и данных категориях
195
+ */
196
+ get: operations["get_users_info_user_get"];
197
+ put?: never;
198
+ post?: never;
199
+ delete?: never;
200
+ options?: never;
201
+ head?: never;
202
+ patch?: never;
203
+ trace?: never;
204
+ };
164
205
  "/userdata/user/{id}": {
165
206
  parameters: {
166
207
  query?: never;
@@ -189,7 +230,7 @@ export interface paths {
189
230
  * Чтобы обновить от имени админиа, надо иметь скоуп `userdata.info.admin`
190
231
  * Чтобы обновить неизменяемую информацию надо обладать скоупом `userdata.info.update`
191
232
  * Для обновления своей информации(источник `user`) не нужны скоупы на обновление соответствующих категорий
192
- * Для обновления чужой информации от имени админа(источник `admin`)
233
+ * Для обновления чужой информации от имени админа(источник `admin`)
193
234
  * нужны скоупы на обновление всех указанных в теле запроса категорий пользовательских данных данных
194
235
  */
195
236
  post: operations["update_user_user__id__post"];
@@ -234,6 +275,17 @@ export interface components {
234
275
  /** Update Scope */
235
276
  update_scope?: string | null;
236
277
  };
278
+ /** ExtendedUserInfo */
279
+ ExtendedUserInfo: {
280
+ /** Category */
281
+ category: string;
282
+ /** Param */
283
+ param: string;
284
+ /** User Id */
285
+ user_id: number;
286
+ /** Value */
287
+ value?: string | null;
288
+ };
237
289
  /** HTTPValidationError */
238
290
  HTTPValidationError: {
239
291
  /** Detail */
@@ -252,6 +304,13 @@ export interface components {
252
304
  /** Name */
253
305
  name: string;
254
306
  type: components["schemas"]["ViewType"];
307
+ /** Validation */
308
+ validation?: string | null;
309
+ /**
310
+ * Visible In User Response
311
+ * @default true
312
+ */
313
+ visible_in_user_response: boolean;
255
314
  };
256
315
  /** ParamPatch */
257
316
  ParamPatch: {
@@ -262,6 +321,13 @@ export interface components {
262
321
  /** Name */
263
322
  name?: string | null;
264
323
  type?: components["schemas"]["ViewType"] | null;
324
+ /** Validation */
325
+ validation?: string | null;
326
+ /**
327
+ * Visible In User Response
328
+ * @default true
329
+ */
330
+ visible_in_user_response: boolean;
265
331
  };
266
332
  /** ParamPost */
267
333
  ParamPost: {
@@ -272,6 +338,13 @@ export interface components {
272
338
  /** Name */
273
339
  name: string;
274
340
  type: components["schemas"]["ViewType"];
341
+ /** Validation */
342
+ validation?: string | null;
343
+ /**
344
+ * Visible In User Response
345
+ * @default true
346
+ */
347
+ visible_in_user_response: boolean;
275
348
  };
276
349
  /** SourceGet */
277
350
  SourceGet: {
@@ -326,6 +399,11 @@ export interface components {
326
399
  /** Source */
327
400
  source: string;
328
401
  };
402
+ /** UsersInfoGet */
403
+ UsersInfoGet: {
404
+ /** Items */
405
+ items: components["schemas"]["ExtendedUserInfo"][];
406
+ };
329
407
  /** ValidationError */
330
408
  ValidationError: {
331
409
  /** Location */
@@ -830,9 +908,44 @@ export interface operations {
830
908
  };
831
909
  };
832
910
  };
911
+ get_users_info_user_get: {
912
+ parameters: {
913
+ query: {
914
+ additional_data?: number[];
915
+ categories: number[];
916
+ users: number[];
917
+ };
918
+ header?: never;
919
+ path?: never;
920
+ cookie?: never;
921
+ };
922
+ requestBody?: never;
923
+ responses: {
924
+ /** @description Successful Response */
925
+ 200: {
926
+ headers: {
927
+ [name: string]: unknown;
928
+ };
929
+ content: {
930
+ "application/json": components["schemas"]["UsersInfoGet"];
931
+ };
932
+ };
933
+ /** @description Validation Error */
934
+ 422: {
935
+ headers: {
936
+ [name: string]: unknown;
937
+ };
938
+ content: {
939
+ "application/json": components["schemas"]["HTTPValidationError"];
940
+ };
941
+ };
942
+ };
943
+ };
833
944
  get_user_info_user__id__get: {
834
945
  parameters: {
835
- query?: never;
946
+ query?: {
947
+ additional_data?: number[];
948
+ };
836
949
  header?: never;
837
950
  path: {
838
951
  id: number;