@iblai/web-utils 1.6.6 → 1.6.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,66 @@
1
+ import { SERVICES } from '@data-layer/constants';
2
+ export declare const WATCHED_GROUPS_REDUCER_PATH = "watchedGroupsApiSlice";
3
+ export declare const WATCHED_GROUPS_QUERY_KEYS: {
4
+ readonly WATCHED_GROUPS: "WATCHED_GROUPS";
5
+ readonly WATCHED_GROUP: "WATCHED_GROUP";
6
+ readonly WATCHED_USERS: "WATCHED_USERS";
7
+ readonly WATCHERS: "WATCHERS";
8
+ readonly WATCHER: "WATCHER";
9
+ };
10
+ export declare const WATCHED_GROUPS_ENDPOINTS: {
11
+ LIST_WATCHED_GROUPS: {
12
+ service: SERVICES;
13
+ path: () => string;
14
+ };
15
+ CREATE_WATCHED_GROUP: {
16
+ service: SERVICES;
17
+ path: () => string;
18
+ };
19
+ GET_WATCHED_GROUP: {
20
+ service: SERVICES;
21
+ path: (id: number) => string;
22
+ };
23
+ UPDATE_WATCHED_GROUP: {
24
+ service: SERVICES;
25
+ path: (id: number) => string;
26
+ };
27
+ DELETE_WATCHED_GROUP: {
28
+ service: SERVICES;
29
+ path: (id: number) => string;
30
+ };
31
+ LIST_WATCHED_USERS: {
32
+ service: SERVICES;
33
+ path: (watchedGroupPk: number) => string;
34
+ };
35
+ ADD_WATCHED_USER: {
36
+ service: SERVICES;
37
+ path: (watchedGroupPk: number) => string;
38
+ };
39
+ REMOVE_WATCHED_USER: {
40
+ service: SERVICES;
41
+ path: (watchedGroupPk: number, id: number) => string;
42
+ };
43
+ LIST_WATCHERS: {
44
+ service: SERVICES;
45
+ path: (watchedGroupPk: number) => string;
46
+ };
47
+ ADD_WATCHER: {
48
+ service: SERVICES;
49
+ path: (watchedGroupPk: number) => string;
50
+ };
51
+ GET_WATCHER: {
52
+ service: SERVICES;
53
+ path: (watchedGroupPk: number, id: number) => string;
54
+ };
55
+ UPDATE_WATCHER: {
56
+ service: SERVICES;
57
+ path: (watchedGroupPk: number, id: number) => string;
58
+ };
59
+ DELETE_WATCHER: {
60
+ service: SERVICES;
61
+ path: (watchedGroupPk: number, id: number) => string;
62
+ };
63
+ };
64
+ export declare const WATCHER_NOTIFICATION_EVENTS: readonly ["USER_NOTIF_COURSE_ENROLLMENT", "ADMIN_NOTIF_COURSE_ENROLLMENT", "USER_NOTIF_USER_INACTIVITY", "USER_NOTIF_COURSE_COMPLETION", "USER_NOTIF_CREDENTIALS", "USER_NOTIF_LEARNER_PROGRESS", "PROACTIVE_LEARNER_NOTIFICATION", "ACTIVITY_NEW_CONTENT", "ACTIVITY_COURSE_MILESTONE", "SKILL_MASTERY_CHANGE", "PROGRAM_ENROLLMENT_CONFIRMATION", "PATHWAY_ENROLLMENT_CONFIRMATION", "COURSE_SCHEDULE_CHANGE", "COURSES_PROGRESS_SUMMARY", "SUBSECTION_GRADE_UPDATE"];
65
+ export type WatcherNotificationEvent = (typeof WATCHER_NOTIFICATION_EVENTS)[number];
66
+ export declare const WATCHER_NOTIFICATION_EVENT_LABELS: Record<WatcherNotificationEvent, string>;
@@ -0,0 +1,143 @@
1
+ export interface PaginatedResponse<T> {
2
+ count: number;
3
+ next: string | null;
4
+ previous: string | null;
5
+ results: T[];
6
+ }
7
+ export interface WatchedGroupListItem {
8
+ id: number;
9
+ name: string;
10
+ platform_key: string;
11
+ }
12
+ export interface WatchedGroupDetail {
13
+ id: number;
14
+ name: string;
15
+ platform_key: string;
16
+ watcher_count: number;
17
+ watchers: WatcherSummary[] | string[];
18
+ watched_user_count: number;
19
+ watched_users: WatchedUserSummary[] | string[];
20
+ }
21
+ export interface WatcherSummary {
22
+ id: number;
23
+ username: string;
24
+ email: string;
25
+ events: string | string[];
26
+ }
27
+ export interface WatchedUserSummary {
28
+ id: number;
29
+ username: string;
30
+ email: string;
31
+ }
32
+ export interface WatchedGroupListParams {
33
+ limit?: number;
34
+ offset?: number;
35
+ platform_key?: string;
36
+ }
37
+ export interface WatchedGroupDetailParams {
38
+ platform_key?: string;
39
+ watched_user_limit?: number;
40
+ watcher_limit?: number;
41
+ }
42
+ export interface WatcherCreatePayload {
43
+ watcher_id: number;
44
+ events: string[];
45
+ }
46
+ export interface CreateWatchedGroupBody {
47
+ name: string;
48
+ watched_users?: number[];
49
+ watchers?: WatcherCreatePayload[];
50
+ owner_id?: number;
51
+ }
52
+ export interface UpdateWatchedGroupBody {
53
+ name: string;
54
+ }
55
+ export interface AddWatchedUserBody {
56
+ user_id: number;
57
+ }
58
+ export interface UpdateWatcherBody {
59
+ events: string[];
60
+ }
61
+ export type GetWatchedGroupsArgs = {
62
+ params?: WatchedGroupListParams;
63
+ };
64
+ export type GetWatchedGroupArgs = {
65
+ id: number;
66
+ params?: WatchedGroupDetailParams;
67
+ };
68
+ export type CreateWatchedGroupArgs = {
69
+ body: CreateWatchedGroupBody;
70
+ params?: WatchedGroupDetailParams;
71
+ };
72
+ export type UpdateWatchedGroupArgs = {
73
+ id: number;
74
+ body: UpdateWatchedGroupBody;
75
+ params?: {
76
+ platform_key?: string;
77
+ };
78
+ };
79
+ export type DeleteWatchedGroupArgs = {
80
+ id: number;
81
+ params?: {
82
+ platform_key?: string;
83
+ };
84
+ };
85
+ export type GetWatchedUsersArgs = {
86
+ watchedGroupPk: number;
87
+ params?: {
88
+ limit?: number;
89
+ offset?: number;
90
+ platform_key?: string;
91
+ };
92
+ };
93
+ export type AddWatchedUserArgs = {
94
+ watchedGroupPk: number;
95
+ body: AddWatchedUserBody;
96
+ params?: {
97
+ platform_key?: string;
98
+ };
99
+ };
100
+ export type RemoveWatchedUserArgs = {
101
+ watchedGroupPk: number;
102
+ id: number;
103
+ params?: {
104
+ platform_key?: string;
105
+ };
106
+ };
107
+ export type GetWatchersArgs = {
108
+ watchedGroupPk: number;
109
+ params?: {
110
+ limit?: number;
111
+ offset?: number;
112
+ platform_key?: string;
113
+ };
114
+ };
115
+ export type AddWatcherArgs = {
116
+ watchedGroupPk: number;
117
+ body: WatcherCreatePayload;
118
+ params?: {
119
+ platform_key?: string;
120
+ };
121
+ };
122
+ export type GetWatcherArgs = {
123
+ watchedGroupPk: number;
124
+ id: number;
125
+ params?: {
126
+ platform_key?: string;
127
+ };
128
+ };
129
+ export type UpdateWatcherArgs = {
130
+ watchedGroupPk: number;
131
+ id: number;
132
+ body: UpdateWatcherBody;
133
+ params?: {
134
+ platform_key?: string;
135
+ };
136
+ };
137
+ export type DeleteWatcherArgs = {
138
+ watchedGroupPk: number;
139
+ id: number;
140
+ params?: {
141
+ platform_key?: string;
142
+ };
143
+ };
@@ -104,6 +104,9 @@ export * from './features/workflows/constants';
104
104
  export * from './features/audit-logs/api-slice';
105
105
  export * from './features/audit-logs/constants';
106
106
  export * from './features/audit-logs/types';
107
+ export * from './features/watched-groups/api-slice';
108
+ export * from './features/watched-groups/constants';
109
+ export * from './features/watched-groups/types';
107
110
  export * from './reducers';
108
111
  export * from './utils';
109
112
  export type { CustomQueryArgs } from './features/utils';
package/dist/index.d.ts CHANGED
@@ -832,7 +832,7 @@ declare const isWeb: () => boolean;
832
832
  declare const isNode: () => string | false;
833
833
  declare const isExpo: () => any;
834
834
  declare const isTauri: () => boolean;
835
- declare const getPlatform: () => "web" | "react-native" | "node" | "unknown";
835
+ declare const getPlatform: () => "react-native" | "web" | "node" | "unknown";
836
836
  declare const safeRequire: (moduleName: string) => any;
837
837
  declare const getNextNavigation: () => any;
838
838
 
package/dist/index.esm.js CHANGED
@@ -3008,13 +3008,6 @@ function useAuthProvider({ middleware = new Map(), onAuthSuccess, onAuthFailure,
3008
3008
  return;
3009
3009
  }
3010
3010
  const { needsRefresh, userDataOutOfSync } = await syncCookiesToLocalStorage(storageService);
3011
- console.log("[AuthProvider] interval poll result", {
3012
- needsRefresh,
3013
- userDataOutOfSync,
3014
- pathname,
3015
- currentLogoutTimestamp,
3016
- lastLogoutTimestampRef: lastLogoutTimestampRef.current,
3017
- });
3018
3011
  if (needsRefresh) {
3019
3012
  console.log("[auth-redirect] Cookie sync detected changes from another SPA, refreshing page");
3020
3013
  let cookieTenantKey;
@@ -3356,6 +3349,7 @@ function TenantProvider({ children, fallback, onAuthSuccess, onAuthFailure, curr
3356
3349
  "/roles/",
3357
3350
  "/policies/",
3358
3351
  "/usergroups/",
3352
+ "/watchedgroups/",
3359
3353
  ],
3360
3354
  },
3361
3355
  }).unwrap();
@@ -19110,6 +19104,231 @@ createApi({
19110
19104
  }),
19111
19105
  });
19112
19106
 
19107
+ const WATCHED_GROUPS_REDUCER_PATH = 'watchedGroupsApiSlice';
19108
+ const WATCHED_GROUPS_QUERY_KEYS = {
19109
+ WATCHED_GROUPS: 'WATCHED_GROUPS',
19110
+ WATCHED_GROUP: 'WATCHED_GROUP',
19111
+ WATCHED_USERS: 'WATCHED_USERS',
19112
+ WATCHERS: 'WATCHERS',
19113
+ WATCHER: 'WATCHER',
19114
+ };
19115
+ const WATCHED_GROUPS_ENDPOINTS = {
19116
+ LIST_WATCHED_GROUPS: {
19117
+ service: SERVICES.DM,
19118
+ path: () => `/api/core/watched-groups/`,
19119
+ },
19120
+ CREATE_WATCHED_GROUP: {
19121
+ service: SERVICES.DM,
19122
+ path: () => `/api/core/watched-groups/`,
19123
+ },
19124
+ GET_WATCHED_GROUP: {
19125
+ service: SERVICES.DM,
19126
+ path: (id) => `/api/core/watched-groups/${id}/`,
19127
+ },
19128
+ UPDATE_WATCHED_GROUP: {
19129
+ service: SERVICES.DM,
19130
+ path: (id) => `/api/core/watched-groups/${id}/`,
19131
+ },
19132
+ DELETE_WATCHED_GROUP: {
19133
+ service: SERVICES.DM,
19134
+ path: (id) => `/api/core/watched-groups/${id}/`,
19135
+ },
19136
+ LIST_WATCHED_USERS: {
19137
+ service: SERVICES.DM,
19138
+ path: (watchedGroupPk) => `/api/core/watched-groups/${watchedGroupPk}/watched-users/`,
19139
+ },
19140
+ ADD_WATCHED_USER: {
19141
+ service: SERVICES.DM,
19142
+ path: (watchedGroupPk) => `/api/core/watched-groups/${watchedGroupPk}/watched-users/`,
19143
+ },
19144
+ REMOVE_WATCHED_USER: {
19145
+ service: SERVICES.DM,
19146
+ path: (watchedGroupPk, id) => `/api/core/watched-groups/${watchedGroupPk}/watched-users/${id}/`,
19147
+ },
19148
+ LIST_WATCHERS: {
19149
+ service: SERVICES.DM,
19150
+ path: (watchedGroupPk) => `/api/core/watched-groups/${watchedGroupPk}/watchers/`,
19151
+ },
19152
+ ADD_WATCHER: {
19153
+ service: SERVICES.DM,
19154
+ path: (watchedGroupPk) => `/api/core/watched-groups/${watchedGroupPk}/watchers/`,
19155
+ },
19156
+ GET_WATCHER: {
19157
+ service: SERVICES.DM,
19158
+ path: (watchedGroupPk, id) => `/api/core/watched-groups/${watchedGroupPk}/watchers/${id}/`,
19159
+ },
19160
+ UPDATE_WATCHER: {
19161
+ service: SERVICES.DM,
19162
+ path: (watchedGroupPk, id) => `/api/core/watched-groups/${watchedGroupPk}/watchers/${id}/`,
19163
+ },
19164
+ DELETE_WATCHER: {
19165
+ service: SERVICES.DM,
19166
+ path: (watchedGroupPk, id) => `/api/core/watched-groups/${watchedGroupPk}/watchers/${id}/`,
19167
+ },
19168
+ };
19169
+
19170
+ createApi({
19171
+ reducerPath: WATCHED_GROUPS_REDUCER_PATH,
19172
+ baseQuery: iblFetchBaseQuery,
19173
+ tagTypes: [
19174
+ WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUPS,
19175
+ WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUP,
19176
+ WATCHED_GROUPS_QUERY_KEYS.WATCHED_USERS,
19177
+ WATCHED_GROUPS_QUERY_KEYS.WATCHERS,
19178
+ WATCHED_GROUPS_QUERY_KEYS.WATCHER,
19179
+ ],
19180
+ endpoints: (builder) => ({
19181
+ getWatchedGroups: builder.query({
19182
+ query: (args) => ({
19183
+ url: WATCHED_GROUPS_ENDPOINTS.LIST_WATCHED_GROUPS.path(),
19184
+ service: WATCHED_GROUPS_ENDPOINTS.LIST_WATCHED_GROUPS.service,
19185
+ method: 'GET',
19186
+ params: args === null || args === void 0 ? void 0 : args.params,
19187
+ }),
19188
+ providesTags: [WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUPS],
19189
+ }),
19190
+ getWatchedGroup: builder.query({
19191
+ query: ({ id, params }) => ({
19192
+ url: WATCHED_GROUPS_ENDPOINTS.GET_WATCHED_GROUP.path(id),
19193
+ service: WATCHED_GROUPS_ENDPOINTS.GET_WATCHED_GROUP.service,
19194
+ method: 'GET',
19195
+ params,
19196
+ }),
19197
+ providesTags: (_result, _error, { id }) => [
19198
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUP, id },
19199
+ ],
19200
+ }),
19201
+ createWatchedGroup: builder.mutation({
19202
+ query: ({ body, params }) => ({
19203
+ url: WATCHED_GROUPS_ENDPOINTS.CREATE_WATCHED_GROUP.path(),
19204
+ service: WATCHED_GROUPS_ENDPOINTS.CREATE_WATCHED_GROUP.service,
19205
+ method: 'POST',
19206
+ body,
19207
+ params,
19208
+ }),
19209
+ invalidatesTags: [WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUPS],
19210
+ }),
19211
+ updateWatchedGroup: builder.mutation({
19212
+ query: ({ id, body, params }) => ({
19213
+ url: WATCHED_GROUPS_ENDPOINTS.UPDATE_WATCHED_GROUP.path(id),
19214
+ service: WATCHED_GROUPS_ENDPOINTS.UPDATE_WATCHED_GROUP.service,
19215
+ method: 'PATCH',
19216
+ body,
19217
+ params,
19218
+ }),
19219
+ invalidatesTags: (_result, _error, { id }) => [
19220
+ WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUPS,
19221
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUP, id },
19222
+ ],
19223
+ }),
19224
+ deleteWatchedGroup: builder.mutation({
19225
+ query: ({ id, params }) => ({
19226
+ url: WATCHED_GROUPS_ENDPOINTS.DELETE_WATCHED_GROUP.path(id),
19227
+ service: WATCHED_GROUPS_ENDPOINTS.DELETE_WATCHED_GROUP.service,
19228
+ method: 'DELETE',
19229
+ params,
19230
+ }),
19231
+ invalidatesTags: [WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUPS],
19232
+ }),
19233
+ getWatchedUsers: builder.query({
19234
+ query: ({ watchedGroupPk, params }) => ({
19235
+ url: WATCHED_GROUPS_ENDPOINTS.LIST_WATCHED_USERS.path(watchedGroupPk),
19236
+ service: WATCHED_GROUPS_ENDPOINTS.LIST_WATCHED_USERS.service,
19237
+ method: 'GET',
19238
+ params,
19239
+ }),
19240
+ providesTags: (_result, _error, { watchedGroupPk }) => [
19241
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_USERS, id: watchedGroupPk },
19242
+ ],
19243
+ }),
19244
+ addWatchedUser: builder.mutation({
19245
+ query: ({ watchedGroupPk, body, params }) => ({
19246
+ url: WATCHED_GROUPS_ENDPOINTS.ADD_WATCHED_USER.path(watchedGroupPk),
19247
+ service: WATCHED_GROUPS_ENDPOINTS.ADD_WATCHED_USER.service,
19248
+ method: 'POST',
19249
+ body,
19250
+ params,
19251
+ }),
19252
+ invalidatesTags: (_result, _error, { watchedGroupPk }) => [
19253
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_USERS, id: watchedGroupPk },
19254
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUP, id: watchedGroupPk },
19255
+ ],
19256
+ }),
19257
+ removeWatchedUser: builder.mutation({
19258
+ query: ({ watchedGroupPk, id, params }) => ({
19259
+ url: WATCHED_GROUPS_ENDPOINTS.REMOVE_WATCHED_USER.path(watchedGroupPk, id),
19260
+ service: WATCHED_GROUPS_ENDPOINTS.REMOVE_WATCHED_USER.service,
19261
+ method: 'DELETE',
19262
+ params,
19263
+ }),
19264
+ invalidatesTags: (_result, _error, { watchedGroupPk }) => [
19265
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_USERS, id: watchedGroupPk },
19266
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUP, id: watchedGroupPk },
19267
+ ],
19268
+ }),
19269
+ getWatchers: builder.query({
19270
+ query: ({ watchedGroupPk, params }) => ({
19271
+ url: WATCHED_GROUPS_ENDPOINTS.LIST_WATCHERS.path(watchedGroupPk),
19272
+ service: WATCHED_GROUPS_ENDPOINTS.LIST_WATCHERS.service,
19273
+ method: 'GET',
19274
+ params,
19275
+ }),
19276
+ providesTags: (_result, _error, { watchedGroupPk }) => [
19277
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHERS, id: watchedGroupPk },
19278
+ ],
19279
+ }),
19280
+ addWatcher: builder.mutation({
19281
+ query: ({ watchedGroupPk, body, params }) => ({
19282
+ url: WATCHED_GROUPS_ENDPOINTS.ADD_WATCHER.path(watchedGroupPk),
19283
+ service: WATCHED_GROUPS_ENDPOINTS.ADD_WATCHER.service,
19284
+ method: 'POST',
19285
+ body,
19286
+ params,
19287
+ }),
19288
+ invalidatesTags: (_result, _error, { watchedGroupPk }) => [
19289
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHERS, id: watchedGroupPk },
19290
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUP, id: watchedGroupPk },
19291
+ ],
19292
+ }),
19293
+ getWatcher: builder.query({
19294
+ query: ({ watchedGroupPk, id, params }) => ({
19295
+ url: WATCHED_GROUPS_ENDPOINTS.GET_WATCHER.path(watchedGroupPk, id),
19296
+ service: WATCHED_GROUPS_ENDPOINTS.GET_WATCHER.service,
19297
+ method: 'GET',
19298
+ params,
19299
+ }),
19300
+ providesTags: (_result, _error, { watchedGroupPk, id }) => [
19301
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHER, id: `${watchedGroupPk}-${id}` },
19302
+ ],
19303
+ }),
19304
+ updateWatcher: builder.mutation({
19305
+ query: ({ watchedGroupPk, id, body, params }) => ({
19306
+ url: WATCHED_GROUPS_ENDPOINTS.UPDATE_WATCHER.path(watchedGroupPk, id),
19307
+ service: WATCHED_GROUPS_ENDPOINTS.UPDATE_WATCHER.service,
19308
+ method: 'PATCH',
19309
+ body,
19310
+ params,
19311
+ }),
19312
+ invalidatesTags: (_result, _error, { watchedGroupPk, id }) => [
19313
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHERS, id: watchedGroupPk },
19314
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHER, id: `${watchedGroupPk}-${id}` },
19315
+ ],
19316
+ }),
19317
+ deleteWatcher: builder.mutation({
19318
+ query: ({ watchedGroupPk, id, params }) => ({
19319
+ url: WATCHED_GROUPS_ENDPOINTS.DELETE_WATCHER.path(watchedGroupPk, id),
19320
+ service: WATCHED_GROUPS_ENDPOINTS.DELETE_WATCHER.service,
19321
+ method: 'DELETE',
19322
+ params,
19323
+ }),
19324
+ invalidatesTags: (_result, _error, { watchedGroupPk }) => [
19325
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHERS, id: watchedGroupPk },
19326
+ { type: WATCHED_GROUPS_QUERY_KEYS.WATCHED_GROUP, id: watchedGroupPk },
19327
+ ],
19328
+ }),
19329
+ }),
19330
+ });
19331
+
19113
19332
  function useMentorSettings({ mentorId, tenantKey, username, isPublicRoute, }) {
19114
19333
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
19115
19334
  const isLoggedIn = username !== ANONYMOUS_USERNAME;