law-common 13.0.3-beta.1 → 13.0.3-beta.2
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/dist/src/entities/enums/client_quote_rate_action_enum.d.ts +8 -0
- package/dist/src/entities/enums/client_quote_rate_action_enum.js +17 -0
- package/dist/src/entities/enums/document_upload_action_enum.d.ts +8 -0
- package/dist/src/entities/enums/document_upload_action_enum.js +17 -0
- package/dist/src/entities/enums/holiday_list_action_enum.d.ts +8 -0
- package/dist/src/entities/enums/holiday_list_action_enum.js +17 -0
- package/dist/src/entities/flow-configs/client_quote_rate_flow.config.d.ts +6 -0
- package/dist/src/entities/flow-configs/client_quote_rate_flow.config.js +70 -0
- package/dist/src/entities/flow-configs/document_upload_flow.config.d.ts +6 -0
- package/dist/src/entities/flow-configs/document_upload_flow.config.js +70 -0
- package/dist/src/entities/flow-configs/holiday_list_flow.config.d.ts +6 -0
- package/dist/src/entities/flow-configs/holiday_list_flow.config.js +70 -0
- package/dist/src/entities/index.d.ts +7 -0
- package/dist/src/entities/index.js +7 -0
- package/dist/src/entities/model/client_quote_rate.entity.model.d.ts +16 -0
- package/dist/src/entities/model/client_quote_rate.entity.model.js +62 -0
- package/dist/src/entities/model/document_upload.entity.model.d.ts +16 -0
- package/dist/src/entities/model/document_upload.entity.model.js +62 -0
- package/dist/src/entities/model/holiday_list.entity.model.d.ts +16 -0
- package/dist/src/entities/model/holiday_list.entity.model.js +62 -0
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientQuoteRateActionEnum = void 0;
|
|
4
|
+
var ClientQuoteRateActionEnum;
|
|
5
|
+
(function (ClientQuoteRateActionEnum) {
|
|
6
|
+
ClientQuoteRateActionEnum["CREATE"] = "CREATE";
|
|
7
|
+
ClientQuoteRateActionEnum["UPDATE"] = "UPDATE";
|
|
8
|
+
ClientQuoteRateActionEnum["DELETE"] = "DELETE";
|
|
9
|
+
ClientQuoteRateActionEnum["DEACTIVATE"] = "DEACTIVATE";
|
|
10
|
+
ClientQuoteRateActionEnum["ACTIVATE"] = "ACTIVATE";
|
|
11
|
+
ClientQuoteRateActionEnum["RESTORE"] = "RESTORE";
|
|
12
|
+
// APPROVE = "APPROVE",
|
|
13
|
+
// REJECT = "REJECT",
|
|
14
|
+
// RECALL = "RECALL",
|
|
15
|
+
// REQUEST_CHANGES = "REQUEST_CHANGES",
|
|
16
|
+
// CHANGES_DONE = "CHANGES_DONE",
|
|
17
|
+
})(ClientQuoteRateActionEnum || (exports.ClientQuoteRateActionEnum = ClientQuoteRateActionEnum = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocumentUploadActionEnum = void 0;
|
|
4
|
+
var DocumentUploadActionEnum;
|
|
5
|
+
(function (DocumentUploadActionEnum) {
|
|
6
|
+
DocumentUploadActionEnum["CREATE"] = "CREATE";
|
|
7
|
+
DocumentUploadActionEnum["UPDATE"] = "UPDATE";
|
|
8
|
+
DocumentUploadActionEnum["DELETE"] = "DELETE";
|
|
9
|
+
DocumentUploadActionEnum["DEACTIVATE"] = "DEACTIVATE";
|
|
10
|
+
DocumentUploadActionEnum["ACTIVATE"] = "ACTIVATE";
|
|
11
|
+
DocumentUploadActionEnum["RESTORE"] = "RESTORE";
|
|
12
|
+
// APPROVE = "APPROVE",
|
|
13
|
+
// REJECT = "REJECT",
|
|
14
|
+
// RECALL = "RECALL",
|
|
15
|
+
// REQUEST_CHANGES = "REQUEST_CHANGES",
|
|
16
|
+
// CHANGES_DONE = "CHANGES_DONE",
|
|
17
|
+
})(DocumentUploadActionEnum || (exports.DocumentUploadActionEnum = DocumentUploadActionEnum = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HolidayListActionEnum = void 0;
|
|
4
|
+
var HolidayListActionEnum;
|
|
5
|
+
(function (HolidayListActionEnum) {
|
|
6
|
+
HolidayListActionEnum["CREATE"] = "CREATE";
|
|
7
|
+
HolidayListActionEnum["UPDATE"] = "UPDATE";
|
|
8
|
+
HolidayListActionEnum["DELETE"] = "DELETE";
|
|
9
|
+
HolidayListActionEnum["DEACTIVATE"] = "DEACTIVATE";
|
|
10
|
+
HolidayListActionEnum["ACTIVATE"] = "ACTIVATE";
|
|
11
|
+
HolidayListActionEnum["RESTORE"] = "RESTORE";
|
|
12
|
+
// APPROVE = "APPROVE",
|
|
13
|
+
// REJECT = "REJECT",
|
|
14
|
+
// RECALL = "RECALL",
|
|
15
|
+
// REQUEST_CHANGES = "REQUEST_CHANGES",
|
|
16
|
+
// CHANGES_DONE = "CHANGES_DONE",
|
|
17
|
+
})(HolidayListActionEnum || (exports.HolidayListActionEnum = HolidayListActionEnum = {}));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowConfig } from "./flow-config.type";
|
|
2
|
+
import { ClientQuoteRateActionEnum } from "../enums/client_quote_rate_action_enum";
|
|
3
|
+
import { ClientQuoteRateStatusEnum } from "../enums/client_quote_rate_status_enum";
|
|
4
|
+
export interface IClientQuoteRateFlowConfigContextData {
|
|
5
|
+
}
|
|
6
|
+
export declare const clientQuoteRateFlowConfig: FlowConfig<ClientQuoteRateStatusEnum, ClientQuoteRateActionEnum, IClientQuoteRateFlowConfigContextData>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clientQuoteRateFlowConfig = void 0;
|
|
4
|
+
const base_flow_config_factory_1 = require("./base-flow-config.factory");
|
|
5
|
+
const client_quote_rate_action_enum_1 = require("../enums/client_quote_rate_action_enum");
|
|
6
|
+
const client_quote_rate_status_enum_1 = require("../enums/client_quote_rate_status_enum");
|
|
7
|
+
const CLIENT_QUOTE_RATE_CREATE_PERMISSION = ["CLIENT_QUOTE_RATE_CREATE"];
|
|
8
|
+
const CLIENT_QUOTE_RATE_UPDATE_PERMISSION = ["CLIENT_QUOTE_RATE_UPDATE"];
|
|
9
|
+
const CLIENT_QUOTE_RATE_DELETE_PERMISSION = ["CLIENT_QUOTE_RATE_DELETE"];
|
|
10
|
+
const CLIENT_QUOTE_RATE_DEACTIVATE_PERMISSION = ["CLIENT_QUOTE_RATE_DEACTIVATE"];
|
|
11
|
+
const CLIENT_QUOTE_RATE_ACTIVATE_PERMISSION = ["CLIENT_QUOTE_RATE_ACTIVATE"];
|
|
12
|
+
const CLIENT_QUOTE_RATE_RESTORE_PERMISSION = ["CLIENT_QUOTE_RATE_RESTORE"];
|
|
13
|
+
const ACTION_MAP = {
|
|
14
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.CREATE]: {
|
|
15
|
+
reachableStatues: [client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED],
|
|
16
|
+
permissions: CLIENT_QUOTE_RATE_CREATE_PERMISSION,
|
|
17
|
+
},
|
|
18
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.UPDATE]: {
|
|
19
|
+
reachableStatues: [client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED],
|
|
20
|
+
permissions: CLIENT_QUOTE_RATE_UPDATE_PERMISSION,
|
|
21
|
+
},
|
|
22
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DELETE]: {
|
|
23
|
+
reachableStatues: [client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.DELETED],
|
|
24
|
+
permissions: CLIENT_QUOTE_RATE_DELETE_PERMISSION,
|
|
25
|
+
},
|
|
26
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DEACTIVATE]: {
|
|
27
|
+
reachableStatues: [client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.DEACTIVATED],
|
|
28
|
+
permissions: CLIENT_QUOTE_RATE_DEACTIVATE_PERMISSION,
|
|
29
|
+
},
|
|
30
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.ACTIVATE]: {
|
|
31
|
+
reachableStatues: [client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED],
|
|
32
|
+
permissions: CLIENT_QUOTE_RATE_ACTIVATE_PERMISSION,
|
|
33
|
+
},
|
|
34
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.RESTORE]: {
|
|
35
|
+
reachableStatues: [client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED],
|
|
36
|
+
permissions: CLIENT_QUOTE_RATE_RESTORE_PERMISSION,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const { createActionConfig } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
40
|
+
// APPROVED status transitions
|
|
41
|
+
const transitionApprovedStatusUpdateAction = createActionConfig(client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.UPDATE, client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED);
|
|
42
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DELETE, client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.DELETED);
|
|
43
|
+
const transitionApprovedStatusDeactivateAction = createActionConfig(client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DEACTIVATE, client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.DEACTIVATED);
|
|
44
|
+
// DEACTIVATED status transitions
|
|
45
|
+
const transitionDeactivatedStatusDeleteAction = createActionConfig(client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DELETE, client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.DELETED);
|
|
46
|
+
const transitionDeactivatedStatusActivateAction = createActionConfig(client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.ACTIVATE, client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED);
|
|
47
|
+
// DELETED status transitions
|
|
48
|
+
const transitionDeletedStatusUpdateAction = createActionConfig(client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.UPDATE, client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED);
|
|
49
|
+
const transitionDeletedStatusRestoreAction = createActionConfig(client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.RESTORE, client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED);
|
|
50
|
+
exports.clientQuoteRateFlowConfig = {
|
|
51
|
+
[client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.APPROVED]: {
|
|
52
|
+
actions: {
|
|
53
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.UPDATE]: transitionApprovedStatusUpdateAction,
|
|
54
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
55
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DEACTIVATE]: transitionApprovedStatusDeactivateAction,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
[client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.DEACTIVATED]: {
|
|
59
|
+
actions: {
|
|
60
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.DELETE]: transitionDeactivatedStatusDeleteAction,
|
|
61
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.ACTIVATE]: transitionDeactivatedStatusActivateAction,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
[client_quote_rate_status_enum_1.ClientQuoteRateStatusEnum.DELETED]: {
|
|
65
|
+
actions: {
|
|
66
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.UPDATE]: transitionDeletedStatusUpdateAction,
|
|
67
|
+
[client_quote_rate_action_enum_1.ClientQuoteRateActionEnum.RESTORE]: transitionDeletedStatusRestoreAction,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowConfig } from "./flow-config.type";
|
|
2
|
+
import { DocumentUploadActionEnum } from "../enums/document_upload_action_enum";
|
|
3
|
+
import { DocumentUploadStatusEnum } from "../enums/document_upload_status_enum";
|
|
4
|
+
export interface IDocumentUploadFlowConfigContextData {
|
|
5
|
+
}
|
|
6
|
+
export declare const documentUploadFlowConfig: FlowConfig<DocumentUploadStatusEnum, DocumentUploadActionEnum, IDocumentUploadFlowConfigContextData>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.documentUploadFlowConfig = void 0;
|
|
4
|
+
const base_flow_config_factory_1 = require("./base-flow-config.factory");
|
|
5
|
+
const document_upload_action_enum_1 = require("../enums/document_upload_action_enum");
|
|
6
|
+
const document_upload_status_enum_1 = require("../enums/document_upload_status_enum");
|
|
7
|
+
const DOCUMENT_UPLOAD_CREATE_PERMISSION = ["DOCUMENT_UPLOAD_CREATE"];
|
|
8
|
+
const DOCUMENT_UPLOAD_UPDATE_PERMISSION = ["DOCUMENT_UPLOAD_UPDATE"];
|
|
9
|
+
const DOCUMENT_UPLOAD_DELETE_PERMISSION = ["DOCUMENT_UPLOAD_DELETE"];
|
|
10
|
+
const DOCUMENT_UPLOAD_DEACTIVATE_PERMISSION = ["DOCUMENT_UPLOAD_DEACTIVATE"];
|
|
11
|
+
const DOCUMENT_UPLOAD_ACTIVATE_PERMISSION = ["DOCUMENT_UPLOAD_ACTIVATE"];
|
|
12
|
+
const DOCUMENT_UPLOAD_RESTORE_PERMISSION = ["DOCUMENT_UPLOAD_RESTORE"];
|
|
13
|
+
const ACTION_MAP = {
|
|
14
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.CREATE]: {
|
|
15
|
+
reachableStatues: [document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED],
|
|
16
|
+
permissions: DOCUMENT_UPLOAD_CREATE_PERMISSION,
|
|
17
|
+
},
|
|
18
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.UPDATE]: {
|
|
19
|
+
reachableStatues: [document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED],
|
|
20
|
+
permissions: DOCUMENT_UPLOAD_UPDATE_PERMISSION,
|
|
21
|
+
},
|
|
22
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.DELETE]: {
|
|
23
|
+
reachableStatues: [document_upload_status_enum_1.DocumentUploadStatusEnum.DELETED],
|
|
24
|
+
permissions: DOCUMENT_UPLOAD_DELETE_PERMISSION,
|
|
25
|
+
},
|
|
26
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.DEACTIVATE]: {
|
|
27
|
+
reachableStatues: [document_upload_status_enum_1.DocumentUploadStatusEnum.DEACTIVATED],
|
|
28
|
+
permissions: DOCUMENT_UPLOAD_DEACTIVATE_PERMISSION,
|
|
29
|
+
},
|
|
30
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.ACTIVATE]: {
|
|
31
|
+
reachableStatues: [document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED],
|
|
32
|
+
permissions: DOCUMENT_UPLOAD_ACTIVATE_PERMISSION,
|
|
33
|
+
},
|
|
34
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.RESTORE]: {
|
|
35
|
+
reachableStatues: [document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED],
|
|
36
|
+
permissions: DOCUMENT_UPLOAD_RESTORE_PERMISSION,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const { createActionConfig } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
40
|
+
// APPROVED status transitions
|
|
41
|
+
const transitionApprovedStatusUpdateAction = createActionConfig(document_upload_action_enum_1.DocumentUploadActionEnum.UPDATE, document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED);
|
|
42
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(document_upload_action_enum_1.DocumentUploadActionEnum.DELETE, document_upload_status_enum_1.DocumentUploadStatusEnum.DELETED);
|
|
43
|
+
const transitionApprovedStatusDeactivateAction = createActionConfig(document_upload_action_enum_1.DocumentUploadActionEnum.DEACTIVATE, document_upload_status_enum_1.DocumentUploadStatusEnum.DEACTIVATED);
|
|
44
|
+
// DEACTIVATED status transitions
|
|
45
|
+
const transitionDeactivatedStatusDeleteAction = createActionConfig(document_upload_action_enum_1.DocumentUploadActionEnum.DELETE, document_upload_status_enum_1.DocumentUploadStatusEnum.DELETED);
|
|
46
|
+
const transitionDeactivatedStatusActivateAction = createActionConfig(document_upload_action_enum_1.DocumentUploadActionEnum.ACTIVATE, document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED);
|
|
47
|
+
// DELETED status transitions
|
|
48
|
+
const transitionDeletedStatusUpdateAction = createActionConfig(document_upload_action_enum_1.DocumentUploadActionEnum.UPDATE, document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED);
|
|
49
|
+
const transitionDeletedStatusRestoreAction = createActionConfig(document_upload_action_enum_1.DocumentUploadActionEnum.RESTORE, document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED);
|
|
50
|
+
exports.documentUploadFlowConfig = {
|
|
51
|
+
[document_upload_status_enum_1.DocumentUploadStatusEnum.APPROVED]: {
|
|
52
|
+
actions: {
|
|
53
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.UPDATE]: transitionApprovedStatusUpdateAction,
|
|
54
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
55
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.DEACTIVATE]: transitionApprovedStatusDeactivateAction,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
[document_upload_status_enum_1.DocumentUploadStatusEnum.DEACTIVATED]: {
|
|
59
|
+
actions: {
|
|
60
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.DELETE]: transitionDeactivatedStatusDeleteAction,
|
|
61
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.ACTIVATE]: transitionDeactivatedStatusActivateAction,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
[document_upload_status_enum_1.DocumentUploadStatusEnum.DELETED]: {
|
|
65
|
+
actions: {
|
|
66
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.UPDATE]: transitionDeletedStatusUpdateAction,
|
|
67
|
+
[document_upload_action_enum_1.DocumentUploadActionEnum.RESTORE]: transitionDeletedStatusRestoreAction,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowConfig } from "./flow-config.type";
|
|
2
|
+
import { HolidayListActionEnum } from "../enums/holiday_list_action_enum";
|
|
3
|
+
import { HolidayListStatusEnum } from "../enums/holiday_list_status_enum";
|
|
4
|
+
export interface IHolidayListFlowConfigContextData {
|
|
5
|
+
}
|
|
6
|
+
export declare const holidayListFlowConfig: FlowConfig<HolidayListStatusEnum, HolidayListActionEnum, IHolidayListFlowConfigContextData>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.holidayListFlowConfig = void 0;
|
|
4
|
+
const base_flow_config_factory_1 = require("./base-flow-config.factory");
|
|
5
|
+
const holiday_list_action_enum_1 = require("../enums/holiday_list_action_enum");
|
|
6
|
+
const holiday_list_status_enum_1 = require("../enums/holiday_list_status_enum");
|
|
7
|
+
const HOLIDAY_LIST_CREATE_PERMISSION = ["HOLIDAY_LIST_CREATE"];
|
|
8
|
+
const HOLIDAY_LIST_UPDATE_PERMISSION = ["HOLIDAY_LIST_UPDATE"];
|
|
9
|
+
const HOLIDAY_LIST_DELETE_PERMISSION = ["HOLIDAY_LIST_DELETE"];
|
|
10
|
+
const HOLIDAY_LIST_DEACTIVATE_PERMISSION = ["HOLIDAY_LIST_DEACTIVATE"];
|
|
11
|
+
const HOLIDAY_LIST_ACTIVATE_PERMISSION = ["HOLIDAY_LIST_ACTIVATE"];
|
|
12
|
+
const HOLIDAY_LIST_RESTORE_PERMISSION = ["HOLIDAY_LIST_RESTORE"];
|
|
13
|
+
const ACTION_MAP = {
|
|
14
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.CREATE]: {
|
|
15
|
+
reachableStatues: [holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED],
|
|
16
|
+
permissions: HOLIDAY_LIST_CREATE_PERMISSION,
|
|
17
|
+
},
|
|
18
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.UPDATE]: {
|
|
19
|
+
reachableStatues: [holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED],
|
|
20
|
+
permissions: HOLIDAY_LIST_UPDATE_PERMISSION,
|
|
21
|
+
},
|
|
22
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.DELETE]: {
|
|
23
|
+
reachableStatues: [holiday_list_status_enum_1.HolidayListStatusEnum.DELETED],
|
|
24
|
+
permissions: HOLIDAY_LIST_DELETE_PERMISSION,
|
|
25
|
+
},
|
|
26
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.DEACTIVATE]: {
|
|
27
|
+
reachableStatues: [holiday_list_status_enum_1.HolidayListStatusEnum.DEACTIVATED],
|
|
28
|
+
permissions: HOLIDAY_LIST_DEACTIVATE_PERMISSION,
|
|
29
|
+
},
|
|
30
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.ACTIVATE]: {
|
|
31
|
+
reachableStatues: [holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED],
|
|
32
|
+
permissions: HOLIDAY_LIST_ACTIVATE_PERMISSION,
|
|
33
|
+
},
|
|
34
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.RESTORE]: {
|
|
35
|
+
reachableStatues: [holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED],
|
|
36
|
+
permissions: HOLIDAY_LIST_RESTORE_PERMISSION,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const { createActionConfig } = (0, base_flow_config_factory_1.createFlowConfigFactory)()(ACTION_MAP);
|
|
40
|
+
// APPROVED status transitions
|
|
41
|
+
const transitionApprovedStatusUpdateAction = createActionConfig(holiday_list_action_enum_1.HolidayListActionEnum.UPDATE, holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED);
|
|
42
|
+
const transitionApprovedStatusDeleteAction = createActionConfig(holiday_list_action_enum_1.HolidayListActionEnum.DELETE, holiday_list_status_enum_1.HolidayListStatusEnum.DELETED);
|
|
43
|
+
const transitionApprovedStatusDeactivateAction = createActionConfig(holiday_list_action_enum_1.HolidayListActionEnum.DEACTIVATE, holiday_list_status_enum_1.HolidayListStatusEnum.DEACTIVATED);
|
|
44
|
+
// DEACTIVATED status transitions
|
|
45
|
+
const transitionDeactivatedStatusDeleteAction = createActionConfig(holiday_list_action_enum_1.HolidayListActionEnum.DELETE, holiday_list_status_enum_1.HolidayListStatusEnum.DELETED);
|
|
46
|
+
const transitionDeactivatedStatusActivateAction = createActionConfig(holiday_list_action_enum_1.HolidayListActionEnum.ACTIVATE, holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED);
|
|
47
|
+
// DELETED status transitions
|
|
48
|
+
const transitionDeletedStatusUpdateAction = createActionConfig(holiday_list_action_enum_1.HolidayListActionEnum.UPDATE, holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED);
|
|
49
|
+
const transitionDeletedStatusRestoreAction = createActionConfig(holiday_list_action_enum_1.HolidayListActionEnum.RESTORE, holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED);
|
|
50
|
+
exports.holidayListFlowConfig = {
|
|
51
|
+
[holiday_list_status_enum_1.HolidayListStatusEnum.APPROVED]: {
|
|
52
|
+
actions: {
|
|
53
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.UPDATE]: transitionApprovedStatusUpdateAction,
|
|
54
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.DELETE]: transitionApprovedStatusDeleteAction,
|
|
55
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.DEACTIVATE]: transitionApprovedStatusDeactivateAction,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
[holiday_list_status_enum_1.HolidayListStatusEnum.DEACTIVATED]: {
|
|
59
|
+
actions: {
|
|
60
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.DELETE]: transitionDeactivatedStatusDeleteAction,
|
|
61
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.ACTIVATE]: transitionDeactivatedStatusActivateAction,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
[holiday_list_status_enum_1.HolidayListStatusEnum.DELETED]: {
|
|
65
|
+
actions: {
|
|
66
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.UPDATE]: transitionDeletedStatusUpdateAction,
|
|
67
|
+
[holiday_list_action_enum_1.HolidayListActionEnum.RESTORE]: transitionDeletedStatusRestoreAction,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
@@ -115,7 +115,10 @@ export * from "./enums/holiday_status_enum";
|
|
|
115
115
|
export * from "./flow-configs/holiday_flow.config";
|
|
116
116
|
export * from "./interface/holiday.entity.interface";
|
|
117
117
|
export * from "./interface/field-constraint/holiday_field_constraints.interface";
|
|
118
|
+
export * from "./enums/holiday_list_action_enum";
|
|
118
119
|
export * from "./enums/holiday_list_status_enum";
|
|
120
|
+
export * from "./flow-configs/holiday_list_flow.config";
|
|
121
|
+
export * from "./model/holiday_list.entity.model";
|
|
119
122
|
export * from "./interface/holiday_list.entity.interface";
|
|
120
123
|
export * from "./interface/field-constraint/holiday_list_field_constraints.interface";
|
|
121
124
|
export * from "./enums/configuration_key_enum";
|
|
@@ -211,7 +214,9 @@ export * from "./enums/invoice_number_prefix_enum";
|
|
|
211
214
|
export * from "./model/intermediary_bank.entity.model";
|
|
212
215
|
export * from "./enums/billing_status_category.enum";
|
|
213
216
|
export * from "./enums/billing_summarry_export_type.enum";
|
|
217
|
+
export * from "./enums/document_upload_action_enum";
|
|
214
218
|
export * from "./enums/document_upload_status_enum";
|
|
219
|
+
export * from "./flow-configs/document_upload_flow.config";
|
|
215
220
|
export * from "./interface/document_upload.entity.interface";
|
|
216
221
|
export * from "./interface/field-constraint/document_upload_field_constraints.interface";
|
|
217
222
|
export * from "./model/document_upload.entity.model";
|
|
@@ -253,7 +258,9 @@ export * from "./enums/client_quote_rate_type_enum";
|
|
|
253
258
|
export * from "./enums/client_quote_status_enum";
|
|
254
259
|
export * from "./interface/client_quote.entity.interface";
|
|
255
260
|
export * from "./interface/field-constraint/client_quote_field_constraints.interface";
|
|
261
|
+
export * from "./enums/client_quote_rate_action_enum";
|
|
256
262
|
export * from "./enums/client_quote_rate_status_enum";
|
|
263
|
+
export * from "./flow-configs/client_quote_rate_flow.config";
|
|
257
264
|
export * from "./interface/client_quote_rate.entity.interface";
|
|
258
265
|
export * from "./interface/field-constraint/client_quote_rate_field_constraints.interface";
|
|
259
266
|
export * from "./model/client_quote.entity.model";
|
|
@@ -131,7 +131,10 @@ __exportStar(require("./enums/holiday_status_enum"), exports);
|
|
|
131
131
|
__exportStar(require("./flow-configs/holiday_flow.config"), exports);
|
|
132
132
|
__exportStar(require("./interface/holiday.entity.interface"), exports);
|
|
133
133
|
__exportStar(require("./interface/field-constraint/holiday_field_constraints.interface"), exports);
|
|
134
|
+
__exportStar(require("./enums/holiday_list_action_enum"), exports);
|
|
134
135
|
__exportStar(require("./enums/holiday_list_status_enum"), exports);
|
|
136
|
+
__exportStar(require("./flow-configs/holiday_list_flow.config"), exports);
|
|
137
|
+
__exportStar(require("./model/holiday_list.entity.model"), exports);
|
|
135
138
|
__exportStar(require("./interface/holiday_list.entity.interface"), exports);
|
|
136
139
|
__exportStar(require("./interface/field-constraint/holiday_list_field_constraints.interface"), exports);
|
|
137
140
|
__exportStar(require("./enums/configuration_key_enum"), exports);
|
|
@@ -227,7 +230,9 @@ __exportStar(require("./enums/invoice_number_prefix_enum"), exports);
|
|
|
227
230
|
__exportStar(require("./model/intermediary_bank.entity.model"), exports);
|
|
228
231
|
__exportStar(require("./enums/billing_status_category.enum"), exports);
|
|
229
232
|
__exportStar(require("./enums/billing_summarry_export_type.enum"), exports);
|
|
233
|
+
__exportStar(require("./enums/document_upload_action_enum"), exports);
|
|
230
234
|
__exportStar(require("./enums/document_upload_status_enum"), exports);
|
|
235
|
+
__exportStar(require("./flow-configs/document_upload_flow.config"), exports);
|
|
231
236
|
__exportStar(require("./interface/document_upload.entity.interface"), exports);
|
|
232
237
|
__exportStar(require("./interface/field-constraint/document_upload_field_constraints.interface"), exports);
|
|
233
238
|
__exportStar(require("./model/document_upload.entity.model"), exports);
|
|
@@ -269,7 +274,9 @@ __exportStar(require("./enums/client_quote_rate_type_enum"), exports);
|
|
|
269
274
|
__exportStar(require("./enums/client_quote_status_enum"), exports);
|
|
270
275
|
__exportStar(require("./interface/client_quote.entity.interface"), exports);
|
|
271
276
|
__exportStar(require("./interface/field-constraint/client_quote_field_constraints.interface"), exports);
|
|
277
|
+
__exportStar(require("./enums/client_quote_rate_action_enum"), exports);
|
|
272
278
|
__exportStar(require("./enums/client_quote_rate_status_enum"), exports);
|
|
279
|
+
__exportStar(require("./flow-configs/client_quote_rate_flow.config"), exports);
|
|
273
280
|
__exportStar(require("./interface/client_quote_rate.entity.interface"), exports);
|
|
274
281
|
__exportStar(require("./interface/field-constraint/client_quote_rate_field_constraints.interface"), exports);
|
|
275
282
|
__exportStar(require("./model/client_quote.entity.model"), exports);
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { ClientQuoteRateActionEnum } from "../enums/client_quote_rate_action_enum";
|
|
2
|
+
import { IClientQuoteRateFlowConfigContextData } from "../flow-configs/client_quote_rate_flow.config";
|
|
3
|
+
import { IUserEntity } from "../interface/user.entity.interface";
|
|
4
|
+
import { IRowActions } from "./interface/row-actions.interface";
|
|
5
|
+
import { UserEntityModel } from "./user.entity.model";
|
|
1
6
|
import { EntityEnum } from "../interface/entity.utils.interface";
|
|
2
7
|
import { RelationConfigs } from "../interface/relation-config.interface";
|
|
3
8
|
import { BaseEntityModel } from "./base.entity.model";
|
|
@@ -21,4 +26,15 @@ export declare class ClientQuoteRateEntityModel extends BaseEntityModel<EntityEn
|
|
|
21
26
|
static relationConfigs: RelationConfigs<[EntityEnum.CLIENT_QUOTE], EntityEnum.CLIENT_QUOTE_RATE>;
|
|
22
27
|
static fromEntity(entity: IClientQuoteRateEntity): ClientQuoteRateEntityModel;
|
|
23
28
|
getRelationConfigs(): any[];
|
|
29
|
+
getNextStatus(currentUser: IUserEntity, action: ClientQuoteRateActionEnum, clientQuoteRateFlowConfigContextData: IClientQuoteRateFlowConfigContextData): ClientQuoteRateStatusEnum;
|
|
30
|
+
getAvailableActions(currentUser: UserEntityModel, config?: {
|
|
31
|
+
combinedActions?: Record<string, {
|
|
32
|
+
combineActions: ClientQuoteRateActionEnum[];
|
|
33
|
+
label: string;
|
|
34
|
+
}>;
|
|
35
|
+
customLabels?: Partial<Record<ClientQuoteRateActionEnum, string>>;
|
|
36
|
+
}): IRowActions<EntityEnum.CLIENT_QUOTE_RATE>[];
|
|
37
|
+
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
38
|
+
[key: string]: () => boolean;
|
|
39
|
+
};
|
|
24
40
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClientQuoteRateEntityModel = void 0;
|
|
4
|
+
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
5
|
+
const exceptions_1 = require("../../exceptions");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const client_quote_rate_flow_config_1 = require("../flow-configs/client_quote_rate_flow.config");
|
|
4
8
|
const entity_utils_interface_1 = require("../interface/entity.utils.interface");
|
|
5
9
|
const base_entity_model_1 = require("./base.entity.model");
|
|
6
10
|
const client_quote_rate_status_enum_1 = require("../enums/client_quote_rate_status_enum");
|
|
@@ -29,6 +33,64 @@ class ClientQuoteRateEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
29
33
|
getRelationConfigs() {
|
|
30
34
|
return this.constructor.prototype.constructor.relationConfigs || [];
|
|
31
35
|
}
|
|
36
|
+
getNextStatus(currentUser, action, clientQuoteRateFlowConfigContextData) {
|
|
37
|
+
if (!this.status) {
|
|
38
|
+
throw new exceptions_1.AppBadRequestException({
|
|
39
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
40
|
+
message: [`Status not found: ${this.status}`],
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
const flowForStatus = client_quote_rate_flow_config_1.clientQuoteRateFlowConfig[this.status];
|
|
44
|
+
if (!flowForStatus) {
|
|
45
|
+
throw new exceptions_1.AppBadRequestException({
|
|
46
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
47
|
+
message: [`No flow configuration found for status: ${this.status}`],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (!action) {
|
|
51
|
+
throw new exceptions_1.AppBadRequestException({
|
|
52
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION_DATA,
|
|
53
|
+
message: ["actionData is required"],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const matchingPermissionConfig = flowForStatus.actions[action];
|
|
57
|
+
if (!matchingPermissionConfig) {
|
|
58
|
+
throw new exceptions_1.AppBadRequestException({
|
|
59
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
60
|
+
message: [`Action '${action}' is not valid for the current status.`],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (!currentUser.permissions || currentUser.permissions.length === 0) {
|
|
64
|
+
throw new exceptions_1.AppBadRequestException({
|
|
65
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSIONS,
|
|
66
|
+
message: ["Permission not available for currentUser"],
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const hasPermission = matchingPermissionConfig.permissions.some((permission) => currentUser.permissions.includes(permission));
|
|
70
|
+
if (!hasPermission) {
|
|
71
|
+
throw new exceptions_1.AppBadRequestException({
|
|
72
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSION,
|
|
73
|
+
message: [`Current user does not have permission to ${action} client quote rate`],
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const nextStatus = matchingPermissionConfig.next(clientQuoteRateFlowConfigContextData);
|
|
77
|
+
return nextStatus;
|
|
78
|
+
}
|
|
79
|
+
getAvailableActions(currentUser, config) {
|
|
80
|
+
var _a;
|
|
81
|
+
const params = {
|
|
82
|
+
flowConfig: client_quote_rate_flow_config_1.clientQuoteRateFlowConfig,
|
|
83
|
+
currentStatus: this.status,
|
|
84
|
+
userPermissions: (_a = currentUser.permissions) !== null && _a !== void 0 ? _a : [],
|
|
85
|
+
visibilityData: this.getUpdateActionVisibility.bind(this, currentUser),
|
|
86
|
+
combinedActions: config === null || config === void 0 ? void 0 : config.combinedActions,
|
|
87
|
+
customLabels: config === null || config === void 0 ? void 0 : config.customLabels,
|
|
88
|
+
};
|
|
89
|
+
return utils_1.EntityActionFlowResolverV2.getAvailableActionsData(params);
|
|
90
|
+
}
|
|
91
|
+
getUpdateActionVisibility(currentUser) {
|
|
92
|
+
return {};
|
|
93
|
+
}
|
|
32
94
|
}
|
|
33
95
|
exports.ClientQuoteRateEntityModel = ClientQuoteRateEntityModel;
|
|
34
96
|
ClientQuoteRateEntityModel.relationConfigs = [
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { DocumentUploadActionEnum } from "../enums/document_upload_action_enum";
|
|
2
|
+
import { IDocumentUploadFlowConfigContextData } from "../flow-configs/document_upload_flow.config";
|
|
3
|
+
import { IUserEntity } from "../interface/user.entity.interface";
|
|
4
|
+
import { IRowActions } from "./interface/row-actions.interface";
|
|
5
|
+
import { UserEntityModel } from "./user.entity.model";
|
|
1
6
|
import { DocumentUploadStatusEnum } from "../enums/document_upload_status_enum";
|
|
2
7
|
import { EntityEnum } from "../interface/entity.utils.interface";
|
|
3
8
|
import { BaseEntityModel } from "./base.entity.model";
|
|
@@ -17,4 +22,15 @@ export declare class DocumentUploadEntityModel extends BaseEntityModel<EntityEnu
|
|
|
17
22
|
static relationConfigs: RelationConfigs<[], EntityEnum.DOCUMENT_UPLOAD>;
|
|
18
23
|
static fromEntity(entity: IDocumentUploadEntity): DocumentUploadEntityModel;
|
|
19
24
|
getRelationConfigs(): any[];
|
|
25
|
+
getNextStatus(currentUser: IUserEntity, action: DocumentUploadActionEnum, documentUploadFlowConfigContextData: IDocumentUploadFlowConfigContextData): DocumentUploadStatusEnum;
|
|
26
|
+
getAvailableActions(currentUser: UserEntityModel, config?: {
|
|
27
|
+
combinedActions?: Record<string, {
|
|
28
|
+
combineActions: DocumentUploadActionEnum[];
|
|
29
|
+
label: string;
|
|
30
|
+
}>;
|
|
31
|
+
customLabels?: Partial<Record<DocumentUploadActionEnum, string>>;
|
|
32
|
+
}): IRowActions<EntityEnum.DOCUMENT_UPLOAD>[];
|
|
33
|
+
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
34
|
+
[key: string]: () => boolean;
|
|
35
|
+
};
|
|
20
36
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DocumentUploadEntityModel = void 0;
|
|
4
|
+
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
5
|
+
const exceptions_1 = require("../../exceptions");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const document_upload_flow_config_1 = require("../flow-configs/document_upload_flow.config");
|
|
4
8
|
const document_upload_status_enum_1 = require("../enums/document_upload_status_enum");
|
|
5
9
|
const entity_utils_interface_1 = require("../interface/entity.utils.interface");
|
|
6
10
|
const base_entity_model_1 = require("./base.entity.model");
|
|
@@ -23,6 +27,64 @@ class DocumentUploadEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
23
27
|
getRelationConfigs() {
|
|
24
28
|
return this.constructor.prototype.constructor.relationConfigs || [];
|
|
25
29
|
}
|
|
30
|
+
getNextStatus(currentUser, action, documentUploadFlowConfigContextData) {
|
|
31
|
+
if (!this.status) {
|
|
32
|
+
throw new exceptions_1.AppBadRequestException({
|
|
33
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
34
|
+
message: [`Status not found: ${this.status}`],
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const flowForStatus = document_upload_flow_config_1.documentUploadFlowConfig[this.status];
|
|
38
|
+
if (!flowForStatus) {
|
|
39
|
+
throw new exceptions_1.AppBadRequestException({
|
|
40
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
41
|
+
message: [`No flow configuration found for status: ${this.status}`],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (!action) {
|
|
45
|
+
throw new exceptions_1.AppBadRequestException({
|
|
46
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION_DATA,
|
|
47
|
+
message: ["actionData is required"],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const matchingPermissionConfig = flowForStatus.actions[action];
|
|
51
|
+
if (!matchingPermissionConfig) {
|
|
52
|
+
throw new exceptions_1.AppBadRequestException({
|
|
53
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
54
|
+
message: [`Action '${action}' is not valid for the current status.`],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (!currentUser.permissions || currentUser.permissions.length === 0) {
|
|
58
|
+
throw new exceptions_1.AppBadRequestException({
|
|
59
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSIONS,
|
|
60
|
+
message: ["Permission not available for currentUser"],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const hasPermission = matchingPermissionConfig.permissions.some((permission) => currentUser.permissions.includes(permission));
|
|
64
|
+
if (!hasPermission) {
|
|
65
|
+
throw new exceptions_1.AppBadRequestException({
|
|
66
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSION,
|
|
67
|
+
message: [`Current user does not have permission to ${action} document upload`],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const nextStatus = matchingPermissionConfig.next(documentUploadFlowConfigContextData);
|
|
71
|
+
return nextStatus;
|
|
72
|
+
}
|
|
73
|
+
getAvailableActions(currentUser, config) {
|
|
74
|
+
var _a;
|
|
75
|
+
const params = {
|
|
76
|
+
flowConfig: document_upload_flow_config_1.documentUploadFlowConfig,
|
|
77
|
+
currentStatus: this.status,
|
|
78
|
+
userPermissions: (_a = currentUser.permissions) !== null && _a !== void 0 ? _a : [],
|
|
79
|
+
visibilityData: this.getUpdateActionVisibility.bind(this, currentUser),
|
|
80
|
+
combinedActions: config === null || config === void 0 ? void 0 : config.combinedActions,
|
|
81
|
+
customLabels: config === null || config === void 0 ? void 0 : config.customLabels,
|
|
82
|
+
};
|
|
83
|
+
return utils_1.EntityActionFlowResolverV2.getAvailableActionsData(params);
|
|
84
|
+
}
|
|
85
|
+
getUpdateActionVisibility(currentUser) {
|
|
86
|
+
return {};
|
|
87
|
+
}
|
|
26
88
|
}
|
|
27
89
|
exports.DocumentUploadEntityModel = DocumentUploadEntityModel;
|
|
28
90
|
DocumentUploadEntityModel.relationConfigs = [];
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { HolidayListActionEnum } from "../enums/holiday_list_action_enum";
|
|
2
|
+
import { IHolidayListFlowConfigContextData } from "../flow-configs/holiday_list_flow.config";
|
|
3
|
+
import { IUserEntity } from "../interface/user.entity.interface";
|
|
4
|
+
import { IRowActions } from "./interface/row-actions.interface";
|
|
5
|
+
import { UserEntityModel } from "./user.entity.model";
|
|
1
6
|
import { HolidayListStatusEnum } from "../enums/holiday_list_status_enum";
|
|
2
7
|
import { EntityEnum } from "../interface/entity.utils.interface";
|
|
3
8
|
import { IHolidayListEntity } from "../interface/holiday_list.entity.interface";
|
|
@@ -14,4 +19,15 @@ export declare class HolidayListEntityModel extends BaseEntityModel<EntityEnum.H
|
|
|
14
19
|
static relationConfigs: RelationConfigs<[], EntityEnum.HOLIDAY_LIST>;
|
|
15
20
|
static fromEntity(entity: IHolidayListEntity): HolidayListEntityModel;
|
|
16
21
|
getRelationConfigs(): [];
|
|
22
|
+
getNextStatus(currentUser: IUserEntity, action: HolidayListActionEnum, holidayListFlowConfigContextData: IHolidayListFlowConfigContextData): HolidayListStatusEnum;
|
|
23
|
+
getAvailableActions(currentUser: UserEntityModel, config?: {
|
|
24
|
+
combinedActions?: Record<string, {
|
|
25
|
+
combineActions: HolidayListActionEnum[];
|
|
26
|
+
label: string;
|
|
27
|
+
}>;
|
|
28
|
+
customLabels?: Partial<Record<HolidayListActionEnum, string>>;
|
|
29
|
+
}): IRowActions<EntityEnum.HOLIDAY_LIST>[];
|
|
30
|
+
getUpdateActionVisibility(currentUser: UserEntityModel): {
|
|
31
|
+
[key: string]: () => boolean;
|
|
32
|
+
};
|
|
17
33
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HolidayListEntityModel = void 0;
|
|
4
|
+
const error_key_enum_1 = require("../../enums/error.key.enum");
|
|
5
|
+
const exceptions_1 = require("../../exceptions");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const holiday_list_flow_config_1 = require("../flow-configs/holiday_list_flow.config");
|
|
4
8
|
const holiday_list_status_enum_1 = require("../enums/holiday_list_status_enum");
|
|
5
9
|
const entity_utils_interface_1 = require("../interface/entity.utils.interface");
|
|
6
10
|
const base_entity_model_1 = require("./base.entity.model");
|
|
@@ -23,6 +27,64 @@ class HolidayListEntityModel extends base_entity_model_1.BaseEntityModel {
|
|
|
23
27
|
getRelationConfigs() {
|
|
24
28
|
return HolidayListEntityModel.relationConfigs;
|
|
25
29
|
}
|
|
30
|
+
getNextStatus(currentUser, action, holidayListFlowConfigContextData) {
|
|
31
|
+
if (!this.status) {
|
|
32
|
+
throw new exceptions_1.AppBadRequestException({
|
|
33
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
34
|
+
message: [`Status not found: ${this.status}`],
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const flowForStatus = holiday_list_flow_config_1.holidayListFlowConfig[this.status];
|
|
38
|
+
if (!flowForStatus) {
|
|
39
|
+
throw new exceptions_1.AppBadRequestException({
|
|
40
|
+
key: error_key_enum_1.ErrorKeyEnum.STATUS,
|
|
41
|
+
message: [`No flow configuration found for status: ${this.status}`],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (!action) {
|
|
45
|
+
throw new exceptions_1.AppBadRequestException({
|
|
46
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION_DATA,
|
|
47
|
+
message: ["actionData is required"],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const matchingPermissionConfig = flowForStatus.actions[action];
|
|
51
|
+
if (!matchingPermissionConfig) {
|
|
52
|
+
throw new exceptions_1.AppBadRequestException({
|
|
53
|
+
key: error_key_enum_1.ErrorKeyEnum.ACTION,
|
|
54
|
+
message: [`Action '${action}' is not valid for the current status.`],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (!currentUser.permissions || currentUser.permissions.length === 0) {
|
|
58
|
+
throw new exceptions_1.AppBadRequestException({
|
|
59
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSIONS,
|
|
60
|
+
message: ["Permission not available for currentUser"],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const hasPermission = matchingPermissionConfig.permissions.some((permission) => currentUser.permissions.includes(permission));
|
|
64
|
+
if (!hasPermission) {
|
|
65
|
+
throw new exceptions_1.AppBadRequestException({
|
|
66
|
+
key: error_key_enum_1.ErrorKeyEnum.PERMISSION,
|
|
67
|
+
message: [`Current user does not have permission to ${action} holiday list`],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const nextStatus = matchingPermissionConfig.next(holidayListFlowConfigContextData);
|
|
71
|
+
return nextStatus;
|
|
72
|
+
}
|
|
73
|
+
getAvailableActions(currentUser, config) {
|
|
74
|
+
var _a;
|
|
75
|
+
const params = {
|
|
76
|
+
flowConfig: holiday_list_flow_config_1.holidayListFlowConfig,
|
|
77
|
+
currentStatus: this.status,
|
|
78
|
+
userPermissions: (_a = currentUser.permissions) !== null && _a !== void 0 ? _a : [],
|
|
79
|
+
visibilityData: this.getUpdateActionVisibility.bind(this, currentUser),
|
|
80
|
+
combinedActions: config === null || config === void 0 ? void 0 : config.combinedActions,
|
|
81
|
+
customLabels: config === null || config === void 0 ? void 0 : config.customLabels,
|
|
82
|
+
};
|
|
83
|
+
return utils_1.EntityActionFlowResolverV2.getAvailableActionsData(params);
|
|
84
|
+
}
|
|
85
|
+
getUpdateActionVisibility(currentUser) {
|
|
86
|
+
return {};
|
|
87
|
+
}
|
|
26
88
|
}
|
|
27
89
|
exports.HolidayListEntityModel = HolidayListEntityModel;
|
|
28
90
|
HolidayListEntityModel.relationConfigs = [];
|