@aristid/leav-types 1.4.1-86f093d7 → 1.4.1-8dd5ba55
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/apps/core/config/default.d.ts +15 -2
- package/apps/core/src/_types/config.d.ts +10 -0
- package/apps/core/src/_types/notification.d.ts +51 -0
- package/apps/core/src/domain/export/exportDomain.d.ts +3 -1
- package/apps/core/src/domain/notification/channels/emailChannel.d.ts +6 -0
- package/apps/core/src/domain/notification/channels/webSocketChannel.d.ts +6 -0
- package/apps/core/src/domain/notification/index.d.ts +3 -0
- package/apps/core/src/domain/notification/notificationDomain.d.ts +12 -0
- package/package.json +1 -1
|
@@ -200,6 +200,19 @@ export declare namespace preview {
|
|
|
200
200
|
let directory_3: string;
|
|
201
201
|
export { directory_3 as directory };
|
|
202
202
|
}
|
|
203
|
+
export declare namespace notification {
|
|
204
|
+
let enable_3: boolean;
|
|
205
|
+
export { enable_3 as enable };
|
|
206
|
+
export namespace email_3 {
|
|
207
|
+
let enable_4: boolean;
|
|
208
|
+
export { enable_4 as enable };
|
|
209
|
+
}
|
|
210
|
+
export { email_3 as email };
|
|
211
|
+
export namespace webSocket {
|
|
212
|
+
let enable_5: boolean;
|
|
213
|
+
export { enable_5 as enable };
|
|
214
|
+
}
|
|
215
|
+
}
|
|
203
216
|
export declare namespace applications {
|
|
204
217
|
let rootFolder: string;
|
|
205
218
|
}
|
|
@@ -208,8 +221,8 @@ export declare namespace files {
|
|
|
208
221
|
let originalsPathPrefix: string;
|
|
209
222
|
}
|
|
210
223
|
export declare namespace dbProfiler {
|
|
211
|
-
let
|
|
212
|
-
export {
|
|
224
|
+
let enable_6: boolean;
|
|
225
|
+
export { enable_6 as enable };
|
|
213
226
|
}
|
|
214
227
|
export declare namespace elasticsearch {
|
|
215
228
|
export let indexPrefix: string;
|
|
@@ -16,6 +16,7 @@ export interface IConfig {
|
|
|
16
16
|
indexationManager: IIndexationManager;
|
|
17
17
|
tasksManager: ITasksManager;
|
|
18
18
|
eventsManager: IEventsManager;
|
|
19
|
+
notification: INotificationConfig;
|
|
19
20
|
debug?: boolean;
|
|
20
21
|
env?: string;
|
|
21
22
|
defaultUserId: string;
|
|
@@ -226,6 +227,15 @@ export interface IFilesConfig {
|
|
|
226
227
|
export interface IDbProfilerConfig {
|
|
227
228
|
enable: boolean;
|
|
228
229
|
}
|
|
230
|
+
export interface INotificationConfig {
|
|
231
|
+
enable: boolean;
|
|
232
|
+
email: {
|
|
233
|
+
enable: boolean;
|
|
234
|
+
};
|
|
235
|
+
webSocket: {
|
|
236
|
+
enable: boolean;
|
|
237
|
+
};
|
|
238
|
+
}
|
|
229
239
|
export interface IElasticsearchConfig {
|
|
230
240
|
indexPrefix: string;
|
|
231
241
|
url: string;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type IQueryInfos } from './queryInfos';
|
|
2
|
+
export interface INotification {
|
|
3
|
+
/**
|
|
4
|
+
* Timestamp of the notification creation in milliseconds since epoch
|
|
5
|
+
*/
|
|
6
|
+
date: number;
|
|
7
|
+
/**
|
|
8
|
+
* User ID of the notification recipient
|
|
9
|
+
*/
|
|
10
|
+
recipientUserId: string;
|
|
11
|
+
content: INotificationContent;
|
|
12
|
+
}
|
|
13
|
+
export interface INotificationContent {
|
|
14
|
+
level: 'info' | 'warning';
|
|
15
|
+
title: string;
|
|
16
|
+
message: string;
|
|
17
|
+
relatedEntities?: Array<{
|
|
18
|
+
url: string;
|
|
19
|
+
label: string;
|
|
20
|
+
}>;
|
|
21
|
+
attachments?: Array<{
|
|
22
|
+
url: string;
|
|
23
|
+
label: string;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
export interface ICreateNotification {
|
|
27
|
+
emitterUserId: string;
|
|
28
|
+
/**
|
|
29
|
+
* Recipients of the notification, need at least one userId or groupId
|
|
30
|
+
*/
|
|
31
|
+
recipients: {
|
|
32
|
+
userIds: string[];
|
|
33
|
+
/**
|
|
34
|
+
* No implementation yet
|
|
35
|
+
*/
|
|
36
|
+
groupIds: string[];
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Priority of the notification, may change which channel is used to send it (no yet implemented)
|
|
40
|
+
*/
|
|
41
|
+
priority: 'urgent' | 'normal';
|
|
42
|
+
content: INotificationContent;
|
|
43
|
+
}
|
|
44
|
+
export declare enum NotificationChannels {
|
|
45
|
+
EMAIL = "email",
|
|
46
|
+
WEB_SOCKET = "web_socket"
|
|
47
|
+
}
|
|
48
|
+
export interface INotificationChannel {
|
|
49
|
+
type: NotificationChannels;
|
|
50
|
+
sendNotifications(notifications: INotification[], ctx: IQueryInfos): Promise<void>;
|
|
51
|
+
}
|
|
@@ -11,6 +11,7 @@ import { type IQueryInfos } from '../../_types/queryInfos';
|
|
|
11
11
|
import { type IRecordFilterLight } from '../../_types/record';
|
|
12
12
|
import { type ITaskFuncParams } from '../../_types/tasksManager';
|
|
13
13
|
import { type IValidateHelper } from '../helpers/validate';
|
|
14
|
+
import { type INotificationDomain } from 'domain/notification/notificationDomain';
|
|
14
15
|
export interface IExportParams {
|
|
15
16
|
library: string;
|
|
16
17
|
attributes: string[];
|
|
@@ -39,8 +40,9 @@ export interface IExportDomainDeps {
|
|
|
39
40
|
'core.domain.helpers.validate': IValidateHelper;
|
|
40
41
|
'core.domain.helpers.updateTaskProgress': UpdateTaskProgress;
|
|
41
42
|
'core.domain.eventsManager': IEventsManagerDomain;
|
|
43
|
+
'core.domain.notification': INotificationDomain;
|
|
42
44
|
'core.utils': IUtils;
|
|
43
45
|
translator: i18n;
|
|
44
46
|
config: Config.IConfig;
|
|
45
47
|
}
|
|
46
|
-
export default function ({ config, 'core.domain.record': recordDomain, 'core.domain.helpers.validate': validateHelper, 'core.domain.attribute': attributeDomain, 'core.domain.library': libraryDomain, 'core.domain.tasksManager': tasksManager, 'core.domain.helpers.updateTaskProgress': updateTaskProgress, 'core.domain.eventsManager': eventsManagerDomain, 'core.utils': utils, translator }: IExportDomainDeps): IExportDomain;
|
|
48
|
+
export default function ({ config, 'core.domain.record': recordDomain, 'core.domain.helpers.validate': validateHelper, 'core.domain.attribute': attributeDomain, 'core.domain.library': libraryDomain, 'core.domain.tasksManager': tasksManager, 'core.domain.helpers.updateTaskProgress': updateTaskProgress, 'core.domain.eventsManager': eventsManagerDomain, 'core.domain.notification': notificationDomain, 'core.utils': utils, translator }: IExportDomainDeps): IExportDomain;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type INotificationChannel } from '../../../_types/notification';
|
|
2
|
+
import { type IMailerService } from 'infra/mailer/mailerService';
|
|
3
|
+
export interface INotificationByEmailChannelDeps {
|
|
4
|
+
'core.infra.mailer.mailerService': IMailerService;
|
|
5
|
+
}
|
|
6
|
+
export default function ({ 'core.infra.mailer.mailerService': mailerService }: INotificationByEmailChannelDeps): INotificationChannel;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type INotificationChannel } from '../../../_types/notification';
|
|
2
|
+
import { type IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
|
|
3
|
+
export interface INotificationByWebSocketChannelDeps {
|
|
4
|
+
'core.domain.eventsManager': IEventsManagerDomain;
|
|
5
|
+
}
|
|
6
|
+
export default function ({ 'core.domain.eventsManager': eventsManagerDomain }: INotificationByWebSocketChannelDeps): INotificationChannel;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type IConfig } from '_types/config';
|
|
2
|
+
import { type INotificationChannel, type ICreateNotification } from '_types/notification';
|
|
3
|
+
import { type IQueryInfos } from '_types/queryInfos';
|
|
4
|
+
export interface INotificationDomain {
|
|
5
|
+
createNotification(notification: ICreateNotification, ctx: IQueryInfos): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export interface INotificationDomainDeps {
|
|
8
|
+
'core.domain.notification.emailChannel': INotificationChannel;
|
|
9
|
+
'core.domain.notification.webSocketChannel': INotificationChannel;
|
|
10
|
+
config: IConfig;
|
|
11
|
+
}
|
|
12
|
+
export default function ({ 'core.domain.notification.emailChannel': emailChannel, 'core.domain.notification.webSocketChannel': webSocketChannel, config }: INotificationDomainDeps): INotificationDomain;
|