@ampsec/platform-client 84.28.4 → 84.30.1
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/build/src/dto/contexts.dto.d.ts +10 -10
- package/build/src/dto/conversations.dto.d.ts +5 -5
- package/build/src/dto/engagementContexts.dto.d.ts +6 -6
- package/build/src/dto/engagementConversations.dto.d.ts +7 -7
- package/build/src/dto/engagementLogs.dto.d.ts +54 -0
- package/build/src/dto/engagementLogs.dto.js +23 -0
- package/build/src/dto/engagementLogs.dto.js.map +1 -0
- package/build/src/dto/flows.dto.js.map +1 -1
- package/build/src/dto/index.d.ts +3 -0
- package/build/src/dto/index.js +3 -0
- package/build/src/dto/index.js.map +1 -1
- package/build/src/dto/notification.dto.d.ts +70 -66
- package/build/src/dto/notification.dto.js.map +1 -1
- package/build/src/dto/platform/platform.contexts.dto.d.ts +10 -10
- package/build/src/dto/platform/platform.dialogues.dto.d.ts +5 -5
- package/build/src/dto/platform/platform.engagementContexts.dto.d.ts +6 -6
- package/build/src/dto/platform/platform.engagementConversations.dto.d.ts +2 -2
- package/build/src/dto/tagSpecs.dto.d.ts +3 -3
- package/build/src/dto/trainingSchedules.dto.d.ts +324 -0
- package/build/src/dto/trainingSchedules.dto.js +67 -0
- package/build/src/dto/trainingSchedules.dto.js.map +1 -0
- package/build/src/services/AmpApi.d.ts +2 -0
- package/build/src/services/AmpApi.js +2 -0
- package/build/src/services/AmpApi.js.map +1 -1
- package/build/src/services/constants.d.ts +1 -0
- package/build/src/services/constants.js +1 -0
- package/build/src/services/constants.js.map +1 -1
- package/build/src/services/engagementLogs.service.d.ts +9 -0
- package/build/src/services/engagementLogs.service.js +27 -0
- package/build/src/services/engagementLogs.service.js.map +1 -0
- package/package.json +1 -1
- package/src/dto/engagementLogs.dto.ts +50 -0
- package/src/dto/flows.dto.ts +2 -1
- package/src/dto/index.ts +3 -0
- package/src/dto/notification.dto.ts +5 -0
- package/src/dto/tagSpecs.dto.ts +3 -3
- package/src/dto/trainingSchedules.dto.ts +81 -0
- package/src/services/AmpApi.ts +3 -0
- package/src/services/constants.ts +1 -0
- package/src/services/engagementLogs.service.ts +29 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/services/constants.ts"],"names":[],"mappings":";;;AAIa,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAGhC,QAAA,mBAAmB,GAAc,UAAU,CAAC;AAC5C,QAAA,gBAAgB,GAAc,KAAK,CAAC;AACpC,QAAA,iBAAiB,GAAc,KAAK,CAAC;AAErC,QAAA,IAAI,GAAG;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,oBAAoB,EAAE,sBAAsB;IAC5C,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,oBAAoB,EAAE,uBAAuB;IAC7C,QAAQ,EAAE,WAAW;IACrB,wBAAwB,EAAE,0BAA0B;IACpD,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,eAAe;IACnC,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,gBAAgB;IAC/B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,iBAAiB;IAClC,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,wBAAwB;IAChD,iBAAiB,EAAE,mBAAmB;IACtC,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,UAAU;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,qBAAqB,EAAE,uBAAuB;CAC/C,CAAC;AAEW,QAAA,OAAO,GAAG;IACrB,YAAY,EAAE,cAAc;IAC5B,yBAAyB,EAAE,qCAAqC;IAChE,yBAAyB,EAAE,qCAAqC;IAChE,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,qBAAqB,EAAE,uBAAuB;IAC9C,2BAA2B,EAAE,6BAA6B;IAC1D,YAAY,EAAE,0BAA0B;IACxC,qBAAqB,EAAE,uBAAuB;IAC9C,gBAAgB,EAAE,kBAAkB;IACpC,WAAW,EAAE,aAAa;IAC1B,mBAAmB;IACnB,kBAAkB,EAAE,sBAAsB;CAC3C,CAAC;AAEF,MAAa,iBAAiB;;AAA9B,8CAkCC;AAjCiB,kCAAgB,GAAG;IACjC,6BAA6B;IAC7B,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACf,CAAC;AAEc,qCAAmB,GAAG;IACpC,OAAO,EAAE;QACP,6BAA6B;QAC7B,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,cAAc;QAC5B,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;KACb;IACD,IAAI,EAAE;QACJ,6BAA6B;QAC7B,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,eAAe;QACzB,YAAY,EAAE,mBAAmB;QACjC,UAAU,EAAE,iBAAiB;QAC7B,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,gBAAgB;KACxB;IACD,KAAK,EAAE;QACL,6BAA6B;QAC7B,YAAY,EAAE,oBAAoB;QAClC,YAAY,EAAE,gBAAgB;QAC9B,UAAU,EAAE,qBAAqB;KAClC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/services/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FlowStateWithRelationsDto, Page } from '../dto';
|
|
2
|
+
import { RestClient } from './rest';
|
|
3
|
+
import { FilterCriteria } from '../FilterCriteria';
|
|
4
|
+
import { AmpDataServiceImpl } from './data.service';
|
|
5
|
+
export declare class EngagementLogsService extends AmpDataServiceImpl<FlowStateWithRelationsDto> {
|
|
6
|
+
constructor(rest: RestClient);
|
|
7
|
+
list: (filter: FilterCriteria) => Promise<Page<FlowStateWithRelationsDto>>;
|
|
8
|
+
getById: (flowStateId: string) => Promise<Page<FlowStateWithRelationsDto>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EngagementLogsService = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
const data_service_1 = require("./data.service");
|
|
6
|
+
class EngagementLogsService extends data_service_1.AmpDataServiceImpl {
|
|
7
|
+
constructor(rest) {
|
|
8
|
+
super(rest, constants_1.KIND.ENGAGEMENT_LOGS);
|
|
9
|
+
this.list = async (filter) => {
|
|
10
|
+
const res = await this.rest.call({
|
|
11
|
+
url: `/${this.targetApi}/v1/${constants_1.KIND.ENGAGEMENT_LOGS}`,
|
|
12
|
+
method: 'GET',
|
|
13
|
+
params: filter,
|
|
14
|
+
});
|
|
15
|
+
return res.data;
|
|
16
|
+
};
|
|
17
|
+
this.getById = async (flowStateId) => {
|
|
18
|
+
const res = await this.rest.call({
|
|
19
|
+
url: `/${this.targetApi}/v1/${constants_1.KIND.ENGAGEMENT_LOGS}/${flowStateId}`,
|
|
20
|
+
method: 'GET',
|
|
21
|
+
});
|
|
22
|
+
return res.data;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.EngagementLogsService = EngagementLogsService;
|
|
27
|
+
//# sourceMappingURL=engagementLogs.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engagementLogs.service.js","sourceRoot":"","sources":["../../../src/services/engagementLogs.service.ts"],"names":[],"mappings":";;;AAGA,2CAAiC;AAEjC,iDAAkD;AAElD,MAAa,qBAAsB,SAAQ,iCAA6C;IACtF,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,EAAE,gBAAI,CAAC,eAAe,CAAC,CAAC;QAGpC,SAAI,GAAG,KAAK,EAAE,MAAsB,EAA4C,EAAE;YAChF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC/B,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,OAAO,gBAAI,CAAC,eAAe,EAAE;gBACpD,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAuC,CAAC;QACrD,CAAC,CAAC;QAEF,YAAO,GAAG,KAAK,EAAE,WAAmB,EAA4C,EAAE;YAChF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC/B,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,OAAO,gBAAI,CAAC,eAAe,IAAI,WAAW,EAAE;gBACnE,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAuC,CAAC;QACrD,CAAC,CAAC;IAjBF,CAAC;CAkBF;AArBD,sDAqBC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {z} from 'zod';
|
|
2
|
+
import {FlowStateDto} from './flows.dto';
|
|
3
|
+
import {NotificationWithConversationContextDto} from './notification.dto';
|
|
4
|
+
import {SimpleUserDto} from './users.dto';
|
|
5
|
+
import {SimpleAssetDto} from './assets.dto';
|
|
6
|
+
import {FindingDto} from './findings.dto';
|
|
7
|
+
import {SaasComponentDto} from './saasComponents.dto';
|
|
8
|
+
import {DialogueDto} from './conversations.dto';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Event types for engagement feed items.
|
|
12
|
+
*/
|
|
13
|
+
export const _EngagementLogEventType = z.enum(['StateTrigger', 'StateTransaction', 'BackgroundStateTransaction', 'Notification', 'Dialogue', 'ConversationContext']);
|
|
14
|
+
|
|
15
|
+
export type EngagementLogEventType = z.infer<typeof _EngagementLogEventType>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Actor types for engagement events.
|
|
19
|
+
*/
|
|
20
|
+
export const _EngagementLogEventActor = z.enum(['SYSTEM', 'USER', 'BOT', 'ADMIN']);
|
|
21
|
+
|
|
22
|
+
export type EngagementLogEventActor = z.infer<typeof _EngagementLogEventActor>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* A single event in the engagement feed.
|
|
26
|
+
* Represents a unified view of state transitions, notifications, dialogues, etc.
|
|
27
|
+
*/
|
|
28
|
+
export const _EngagementLogEventDto = z.object({
|
|
29
|
+
timestamp: z.string(),
|
|
30
|
+
eventType: _EngagementLogEventType,
|
|
31
|
+
data: z.record(z.any()),
|
|
32
|
+
actor: z.string(),
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export type EngagementLogEventDto = z.infer<typeof _EngagementLogEventDto>;
|
|
36
|
+
export type EngagementLogStatsDto = Record<string, string | number>;
|
|
37
|
+
/**
|
|
38
|
+
* Extended FlowState DTO that includes optional related entities.
|
|
39
|
+
* Used when querying flow states with additional context for engagement logs.
|
|
40
|
+
*/
|
|
41
|
+
export type FlowStateWithRelationsDto = FlowStateDto & {
|
|
42
|
+
notifications?: NotificationWithConversationContextDto[];
|
|
43
|
+
dialogues?: DialogueDto[];
|
|
44
|
+
user?: SimpleUserDto;
|
|
45
|
+
finding?: FindingDto;
|
|
46
|
+
asset?: SimpleAssetDto;
|
|
47
|
+
saasComponent?: SaasComponentDto;
|
|
48
|
+
stats: EngagementLogStatsDto;
|
|
49
|
+
log?: EngagementLogEventDto[];
|
|
50
|
+
};
|
package/src/dto/flows.dto.ts
CHANGED
|
@@ -2,7 +2,8 @@ import {z} from 'zod';
|
|
|
2
2
|
import {_BaseDto, _BaseUpsertDto} from './base.dto';
|
|
3
3
|
import {_PaginationFilter, _SortFilter} from '../FilterCriteria';
|
|
4
4
|
import {FindingStatus} from './enums';
|
|
5
|
-
|
|
5
|
+
import {_NotificationDto} from './notification.dto';
|
|
6
|
+
import {_SimpleUserDto} from './users.dto';
|
|
6
7
|
export const EMAIL_CID = 'E00000000000';
|
|
7
8
|
export const CUSTOM_FINDINGS_CID = 'C00000000000';
|
|
8
9
|
|
package/src/dto/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from './defaultConnector.dto';
|
|
|
12
12
|
export * from './eng';
|
|
13
13
|
export * from './engagementContexts.dto';
|
|
14
14
|
export * from './engagementConversations.dto';
|
|
15
|
+
export * from './engagementLogs.dto';
|
|
15
16
|
export * from './engagementMappings.dto';
|
|
16
17
|
export * from './entityIdSummaries.dto';
|
|
17
18
|
export * from './enum.dto';
|
|
@@ -38,6 +39,8 @@ export * from './tenants.dto';
|
|
|
38
39
|
export * from './tenantNotes.dto';
|
|
39
40
|
export * from './tokens.dto';
|
|
40
41
|
export * from './testEngagements.dto';
|
|
42
|
+
export * from './trainingSchedules.dto';
|
|
43
|
+
export * from './trainings.dto';
|
|
41
44
|
export * from './users.dto';
|
|
42
45
|
export * from './messagingChannels';
|
|
43
46
|
export * from './cohort.dto';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {z} from 'zod';
|
|
2
2
|
import {BaseDto, _BaseDto, _BaseUpsertDto} from './base.dto';
|
|
3
|
+
import {ConversationContextDto} from './conversations.dto';
|
|
3
4
|
|
|
4
5
|
export enum NotificationStatus {
|
|
5
6
|
ERROR = 'ERROR',
|
|
@@ -213,3 +214,7 @@ export const _CreateNotificationDto = _BaseUpsertDto.merge(
|
|
|
213
214
|
})
|
|
214
215
|
);
|
|
215
216
|
export type CreateNotificationDto = z.infer<typeof _CreateNotificationDto>;
|
|
217
|
+
|
|
218
|
+
export type NotificationWithConversationContextDto = NotificationDto & {
|
|
219
|
+
conversationContext?: ConversationContextDto;
|
|
220
|
+
};
|
package/src/dto/tagSpecs.dto.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {z} from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import {BaseDto, BaseUpsertDto} from './base.dto';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* ------------------------
|
|
@@ -33,7 +33,7 @@ export const _TagSpecBase = z.object({
|
|
|
33
33
|
*/
|
|
34
34
|
export const _TagSpecUpsertDto = _TagSpecBase;
|
|
35
35
|
|
|
36
|
-
export type TagSpecUpsertDto =
|
|
36
|
+
export type TagSpecUpsertDto = BaseUpsertDto & z.infer<typeof _TagSpecUpsertDto>;
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* ------------------------
|
|
@@ -44,7 +44,7 @@ export const _TagSpecDto = _TagSpecBase.extend({
|
|
|
44
44
|
id: z.string(),
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
-
export type TagSpecDto =
|
|
47
|
+
export type TagSpecDto = BaseDto & z.infer<typeof _TagSpecDto>;
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
50
|
* ------------------------
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import {z} from 'zod';
|
|
2
|
+
import {BaseDto, BaseUpsertDto} from './base.dto';
|
|
3
|
+
import {_TrainingDto} from './trainings.dto';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* ------------------------
|
|
7
|
+
* Enums
|
|
8
|
+
* ------------------------
|
|
9
|
+
*/
|
|
10
|
+
export const TrainingScheduleStatus = z.enum(['enabled', 'disabled']);
|
|
11
|
+
|
|
12
|
+
export const TrainingFrequency = z.enum(['quarterly', 'every_6_months', 'yearly']);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* ------------------------
|
|
16
|
+
* Schedule Config
|
|
17
|
+
* ------------------------
|
|
18
|
+
*/
|
|
19
|
+
export const _ScheduleConfig = z
|
|
20
|
+
.object({
|
|
21
|
+
frequency: TrainingFrequency,
|
|
22
|
+
dayOfMonth: z.number().min(1).max(31).optional(),
|
|
23
|
+
dayOfWeek: z.number().min(0).max(6).optional(),
|
|
24
|
+
})
|
|
25
|
+
.refine(cfg => cfg.dayOfMonth || cfg.dayOfWeek, {
|
|
26
|
+
message: 'Either dayOfMonth or dayOfWeek must be provided',
|
|
27
|
+
})
|
|
28
|
+
.refine(cfg => !(cfg.dayOfMonth && cfg.dayOfWeek), {
|
|
29
|
+
message: 'Only one of dayOfMonth or dayOfWeek can be provided',
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* ------------------------
|
|
34
|
+
* Base Training Schedule
|
|
35
|
+
* ------------------------
|
|
36
|
+
*/
|
|
37
|
+
export const _TrainingScheduleBase = z.object({
|
|
38
|
+
/** Tenant ID */
|
|
39
|
+
tid: z.string(),
|
|
40
|
+
|
|
41
|
+
/** Schedule name */
|
|
42
|
+
name: z.string(),
|
|
43
|
+
|
|
44
|
+
/** Optional description */
|
|
45
|
+
description: z.string().nullish(),
|
|
46
|
+
|
|
47
|
+
/** Enabled / Disabled */
|
|
48
|
+
status: TrainingScheduleStatus.default('enabled'),
|
|
49
|
+
|
|
50
|
+
/** Training metadata */
|
|
51
|
+
trainingConfig: _TrainingDto,
|
|
52
|
+
|
|
53
|
+
/** Schedule rules */
|
|
54
|
+
scheduleConfig: _ScheduleConfig,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* ------------------------
|
|
59
|
+
* Upsert DTO
|
|
60
|
+
* ------------------------
|
|
61
|
+
*/
|
|
62
|
+
export const _TrainingScheduleUpsertDto = _TrainingScheduleBase;
|
|
63
|
+
|
|
64
|
+
export type TrainingScheduleUpsertDto = BaseUpsertDto & z.infer<typeof _TrainingScheduleUpsertDto>;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* ------------------------
|
|
68
|
+
* Read DTO
|
|
69
|
+
* ------------------------
|
|
70
|
+
*/
|
|
71
|
+
export const _TrainingScheduleDto = _TrainingScheduleBase.extend({
|
|
72
|
+
id: z.string(),
|
|
73
|
+
|
|
74
|
+
/** Last execution timestamp */
|
|
75
|
+
lastRunAt: z.string().datetime().nullish(),
|
|
76
|
+
|
|
77
|
+
/** Next scheduled execution */
|
|
78
|
+
nextRunAt: z.string().datetime().nullish(),
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
export type TrainingScheduleDto = BaseDto & z.infer<typeof _TrainingScheduleDto>;
|
package/src/services/AmpApi.ts
CHANGED
|
@@ -40,6 +40,7 @@ import {CohortService} from './rest/CohortService';
|
|
|
40
40
|
import {AgentsService} from './AgentsService';
|
|
41
41
|
import {EngagementService} from './engagements.service';
|
|
42
42
|
import {TrainingsService} from './trainings.service';
|
|
43
|
+
import {EngagementLogsService} from './engagementLogs.service';
|
|
43
44
|
|
|
44
45
|
export type AmpApiOptions = AmpRestClientOptions;
|
|
45
46
|
|
|
@@ -86,6 +87,7 @@ export class AmpApi {
|
|
|
86
87
|
readonly users: AmpDataService<UserDto>;
|
|
87
88
|
readonly usersInsights: UsersInsightsService;
|
|
88
89
|
readonly prediction: PredictionService;
|
|
90
|
+
readonly engagementLogs: EngagementLogsService;
|
|
89
91
|
|
|
90
92
|
constructor(rest: RestClient) {
|
|
91
93
|
this.actionExecutions = new AmpDataServiceImpl<ActionExecutionDto>(rest, KIND.ACTION_EXECUTION);
|
|
@@ -97,6 +99,7 @@ export class AmpApi {
|
|
|
97
99
|
this.customScoreCohorts = new AmpEntityServiceImpl<CustomScoreCohortUpsertDto, CustomScoreCohortDto>(rest, KIND.CUSTOM_SCORE_COHORTS);
|
|
98
100
|
this.customScoreValues = new AmpEntityServiceImpl<CustomScoreValueUpsertDto, CustomScoreValueDto>(rest, KIND.CUSTOM_SCORE_VALUES);
|
|
99
101
|
this.engagements = new EngagementService(rest);
|
|
102
|
+
this.engagementLogs = new EngagementLogsService(rest);
|
|
100
103
|
this.enums = new DefaultEnumService(rest);
|
|
101
104
|
this.findings = new FindingsService(rest);
|
|
102
105
|
this.findingsInsights = new FindingsInsightsService(rest, KIND.FINDINGS_INSIGHTS);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import {FlowStateWithRelationsDto, Page} from '../dto';
|
|
3
|
+
import {RestClient} from './rest';
|
|
4
|
+
import {KIND} from './constants';
|
|
5
|
+
import {FilterCriteria} from '../FilterCriteria';
|
|
6
|
+
import {AmpDataServiceImpl} from './data.service';
|
|
7
|
+
|
|
8
|
+
export class EngagementLogsService extends AmpDataServiceImpl<FlowStateWithRelationsDto> {
|
|
9
|
+
constructor(rest: RestClient) {
|
|
10
|
+
super(rest, KIND.ENGAGEMENT_LOGS);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
list = async (filter: FilterCriteria): Promise<Page<FlowStateWithRelationsDto>> => {
|
|
14
|
+
const res = await this.rest.call({
|
|
15
|
+
url: `/${this.targetApi}/v1/${KIND.ENGAGEMENT_LOGS}`,
|
|
16
|
+
method: 'GET',
|
|
17
|
+
params: filter,
|
|
18
|
+
});
|
|
19
|
+
return res.data as Page<FlowStateWithRelationsDto>;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
getById = async (flowStateId: string): Promise<Page<FlowStateWithRelationsDto>> => {
|
|
23
|
+
const res = await this.rest.call({
|
|
24
|
+
url: `/${this.targetApi}/v1/${KIND.ENGAGEMENT_LOGS}/${flowStateId}`,
|
|
25
|
+
method: 'GET',
|
|
26
|
+
});
|
|
27
|
+
return res.data as Page<FlowStateWithRelationsDto>;
|
|
28
|
+
};
|
|
29
|
+
}
|