@aristid/leav-types 0.0.7-dc9cdc7 → 0.0.7-e01724a
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 +2 -1
- package/apps/core/config/test.d.ts +1 -0
- package/apps/core/src/__tests__/e2e/api/joinLibraries/joinLibraries.test.d.ts +1 -0
- package/apps/core/src/__tests__/mockers/amqp.d.ts +8 -0
- package/apps/core/src/__tests__/mockers/logger.d.ts +7 -0
- package/apps/core/src/__tests__/mocks/attribute.d.ts +2 -1
- package/apps/core/src/__tests__/mocks/cache.d.ts +4 -0
- package/apps/core/src/_constants/attributes.d.ts +1 -0
- package/apps/core/src/_types/attribute.d.ts +6 -0
- package/apps/core/src/_types/config.d.ts +1 -2
- package/apps/core/src/_types/forms.d.ts +10 -0
- package/apps/core/src/_types/globalSettings.d.ts +2 -0
- package/apps/core/src/_types/library.d.ts +3 -1
- package/apps/core/src/_types/queryInfos.d.ts +1 -1
- package/apps/core/src/_types/value.d.ts +62 -3
- package/apps/core/src/app/auth/authApp.d.ts +3 -1
- package/apps/core/src/app/core/formApp/formApp.d.ts +3 -1
- package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.d.ts +11 -0
- package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.spec.d.ts +1 -0
- package/apps/core/src/domain/attribute/helpers/index.d.ts +1 -0
- package/apps/core/src/domain/globalSettings/globalSettingsDomain.d.ts +5 -1
- package/apps/core/src/domain/permission/_types.d.ts +1 -13
- package/apps/core/src/domain/permission/helpers/permissionByUserGroups.d.ts +16 -1
- package/apps/core/src/domain/record/_types.d.ts +4 -3
- package/apps/core/src/domain/record/helpers/createRecord.d.ts +21 -0
- package/apps/core/src/domain/record/helpers/deleteRecord.d.ts +19 -0
- package/apps/core/src/domain/record/helpers/getAccessPermissionFilters.d.ts +24 -0
- package/apps/core/src/domain/record/helpers/index.d.ts +3 -0
- package/apps/core/src/domain/record/recordDomain.d.ts +19 -3
- package/apps/core/src/domain/value/helpers/prepareValue.d.ts +3 -3
- package/apps/core/src/domain/value/helpers/saveOneValue.d.ts +2 -2
- package/apps/core/src/domain/value/helpers/validateValue.d.ts +3 -3
- package/apps/core/src/domain/value/valueDomain.d.ts +11 -4
- package/apps/core/src/errors/LeavError.d.ts +6 -0
- package/apps/core/src/infra/attributeTypes/attributeAdvancedLinkRepo.d.ts +5 -2
- package/apps/core/src/infra/attributeTypes/attributeAdvancedRepo.d.ts +3 -1
- package/apps/core/src/infra/attributeTypes/attributeSimpleLinkRepo.d.ts +5 -2
- package/apps/core/src/infra/attributeTypes/attributeSimpleRepo.d.ts +3 -1
- package/apps/core/src/infra/attributeTypes/attributeTreeRepo.d.ts +3 -1
- package/apps/core/src/infra/attributeTypes/attributeTypesRepo.d.ts +27 -21
- package/apps/core/src/infra/db/dbUtils.d.ts +1 -3
- package/apps/core/src/infra/db/migrations/008-addSkeletonApp.d.ts +7 -0
- package/apps/core/src/infra/db/migrations/009-addDisplayMultiLinkOptAttributeProperty.d.ts +11 -0
- package/apps/core/src/infra/db/migrations/010-formSidePanel.d.ts +8 -0
- package/apps/core/src/infra/db/migrations/011-moveSkeletonApptoAppStudio.d.ts +7 -0
- package/apps/core/src/infra/oidc/oidcClientService.d.ts +1 -1
- package/apps/core/src/infra/permission/permissionRepo.d.ts +9 -1
- package/apps/core/src/infra/record/recordRepo.d.ts +2 -0
- package/apps/core/src/infra/value/valueRepo.d.ts +3 -3
- package/apps/core/src/pluginsLoader.d.ts +1 -1
- package/apps/core/src/utils/utils.d.ts +1 -0
- package/libs/utils/src/types/forms.d.ts +1 -0
- package/package.json +5 -2
|
@@ -69,6 +69,7 @@ export declare namespace logs {
|
|
|
69
69
|
let level: string;
|
|
70
70
|
let transport: string;
|
|
71
71
|
let destinationFile: string;
|
|
72
|
+
let useJsonFormat: string | boolean;
|
|
72
73
|
}
|
|
73
74
|
export declare namespace permissions {
|
|
74
75
|
let _default_1: boolean;
|
|
@@ -188,5 +189,5 @@ export declare namespace elasticSearch {
|
|
|
188
189
|
let url_1: string;
|
|
189
190
|
export { url_1 as url };
|
|
190
191
|
}
|
|
191
|
-
export declare let pluginsPath: string;
|
|
192
|
+
export declare let pluginsPath: string | any[];
|
|
192
193
|
export { _export as export, _import as import };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AttributeFormats, AttributeTypes, IAttribute } from '../../_types/attribute';
|
|
1
|
+
import { AttributeFormats, AttributeTypes, MultiLinkDisplayOption, IAttribute } from '../../_types/attribute';
|
|
2
2
|
export declare const mockAttrSimple: IAttribute;
|
|
3
3
|
export declare const mockUniqueAttrSimple: IAttribute;
|
|
4
4
|
export declare const mockAttrId: IAttribute;
|
|
@@ -31,6 +31,7 @@ export declare const mockAttrTree: {
|
|
|
31
31
|
unique?: boolean;
|
|
32
32
|
description?: import("../../_types/systemTranslation").ISystemTranslation;
|
|
33
33
|
settings?: import("../../_types/shared").IKeyValue<any>;
|
|
34
|
+
multi_link_display_option?: MultiLinkDisplayOption;
|
|
34
35
|
label?: import("../../_types/systemTranslation").ISystemTranslation | string;
|
|
35
36
|
};
|
|
36
37
|
export declare const mockAttrTreeVersionable: IAttribute;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const baseAttributes: string[];
|
|
@@ -25,6 +25,7 @@ export interface IAttribute extends ICoreEntity {
|
|
|
25
25
|
unique?: boolean;
|
|
26
26
|
description?: ISystemTranslation;
|
|
27
27
|
settings?: IKeyValue<any>;
|
|
28
|
+
multi_link_display_option?: MultiLinkDisplayOption;
|
|
28
29
|
}
|
|
29
30
|
export declare enum ValueVersionMode {
|
|
30
31
|
SIMPLE = "simple",
|
|
@@ -88,6 +89,11 @@ export declare enum AttributeFormats {
|
|
|
88
89
|
COLOR = "color",
|
|
89
90
|
RICH_TEXT = "rich_text"
|
|
90
91
|
}
|
|
92
|
+
export declare enum MultiLinkDisplayOption {
|
|
93
|
+
AVATAR = "avatar",
|
|
94
|
+
TAG = "tag",
|
|
95
|
+
BADGE_QTY = "badge_qty"
|
|
96
|
+
}
|
|
91
97
|
export declare enum IOTypes {
|
|
92
98
|
STRING = "string",
|
|
93
99
|
NUMBER = "number",
|
|
@@ -28,7 +28,7 @@ export interface IConfig {
|
|
|
28
28
|
dbProfiler: IDbProfilerConfig;
|
|
29
29
|
instanceId: string;
|
|
30
30
|
elasticSearch: IElasticSearchConfig;
|
|
31
|
-
pluginsPath: string;
|
|
31
|
+
pluginsPath: string[];
|
|
32
32
|
}
|
|
33
33
|
export declare enum CoreMode {
|
|
34
34
|
SERVER = "server",
|
|
@@ -113,7 +113,6 @@ export interface IAmqp {
|
|
|
113
113
|
exchange: string;
|
|
114
114
|
type: string;
|
|
115
115
|
prefetch?: number;
|
|
116
|
-
queues?: string[];
|
|
117
116
|
}
|
|
118
117
|
export interface IRedis {
|
|
119
118
|
host: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IAttribute } from './attribute';
|
|
1
2
|
import { IKeyValue } from './shared';
|
|
2
3
|
import { IValue } from './value';
|
|
3
4
|
export interface IForm extends ICoreEntity {
|
|
@@ -5,6 +6,11 @@ export interface IForm extends ICoreEntity {
|
|
|
5
6
|
system?: boolean;
|
|
6
7
|
dependencyAttributes?: string[];
|
|
7
8
|
elements?: IFormDependentElements[];
|
|
9
|
+
sidePanel: IFormSidePanel;
|
|
10
|
+
}
|
|
11
|
+
export interface IFormSidePanel {
|
|
12
|
+
enable: boolean;
|
|
13
|
+
isOpenByDefault: boolean;
|
|
8
14
|
}
|
|
9
15
|
export interface IRecordForm {
|
|
10
16
|
id: string;
|
|
@@ -13,6 +19,7 @@ export interface IRecordForm {
|
|
|
13
19
|
recordId: string;
|
|
14
20
|
dependencyAttributes?: string[];
|
|
15
21
|
elements: IFormElementWithValues[];
|
|
22
|
+
sidePanel: IFormSidePanel;
|
|
16
23
|
}
|
|
17
24
|
export declare enum FormElementTypes {
|
|
18
25
|
field = "field",
|
|
@@ -48,3 +55,6 @@ export type IFormElementWithValuesAndChildren = IFormElementWithValues & {
|
|
|
48
55
|
export interface IFormFilterOptions extends ICoreEntityFilterOptions {
|
|
49
56
|
library?: string;
|
|
50
57
|
}
|
|
58
|
+
export interface IFormElementJoinLibraryContext {
|
|
59
|
+
mandatoryAttribute: IAttribute;
|
|
60
|
+
}
|
|
@@ -7,6 +7,7 @@ import { IKeyValue } from './shared';
|
|
|
7
7
|
export interface ILibrary extends ICoreEntity {
|
|
8
8
|
system?: boolean;
|
|
9
9
|
behavior?: LibraryBehavior;
|
|
10
|
+
mandatoryAttribute?: string;
|
|
10
11
|
/**
|
|
11
12
|
* List of attributes usable in this library
|
|
12
13
|
*/
|
|
@@ -45,8 +46,9 @@ export interface ILibraryPreviewsSettings {
|
|
|
45
46
|
}
|
|
46
47
|
export declare enum LibraryBehavior {
|
|
47
48
|
STANDARD = "standard",
|
|
49
|
+
DIRECTORIES = "directories",
|
|
48
50
|
FILES = "files",
|
|
49
|
-
|
|
51
|
+
JOIN = "join"
|
|
50
52
|
}
|
|
51
53
|
export declare const USERS_LIBRARY = "users";
|
|
52
54
|
export declare const USERS_GROUPS_LIBRARY = "users_groups";
|
|
@@ -3,12 +3,12 @@ import { IDbProfiler } from './dbProfiler';
|
|
|
3
3
|
import { IValueVersion } from './value';
|
|
4
4
|
export interface IQueryInfos {
|
|
5
5
|
userId: string;
|
|
6
|
+
groupsId?: string[];
|
|
6
7
|
lang?: string;
|
|
7
8
|
defaultLang?: string;
|
|
8
9
|
queryId?: string;
|
|
9
10
|
version?: IValueVersion;
|
|
10
11
|
treeId?: string;
|
|
11
|
-
groupsId?: string[];
|
|
12
12
|
applicationId?: string;
|
|
13
13
|
dbProfiler?: IDbProfiler;
|
|
14
14
|
trigger?: string;
|
|
@@ -3,6 +3,7 @@ import { IDbEdge } from 'infra/db/_types';
|
|
|
3
3
|
import { IRecord } from './record';
|
|
4
4
|
import { ITreeNode, TreePaths } from './tree';
|
|
5
5
|
import { EMPTY_VALUE } from 'infra/value/valueRepo';
|
|
6
|
+
import { AttributeTypes } from './attribute';
|
|
6
7
|
export type IValueFromGql = Override<Omit<IValue, 'version'>, {
|
|
7
8
|
value: IValue['payload'];
|
|
8
9
|
metadata: Array<{
|
|
@@ -30,8 +31,12 @@ export interface IValueMetadata {
|
|
|
30
31
|
[fieldName: string]: IStandardValue | AnyPrimitive;
|
|
31
32
|
}
|
|
32
33
|
export type EmptyValue = typeof EMPTY_VALUE;
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
interface ICommonGenericSaveValue {
|
|
35
|
+
/**
|
|
36
|
+
* The id of the edge for advanced, advanced link or tree values
|
|
37
|
+
* In case of advanced reverse link from simple link, this is the id of the linked record
|
|
38
|
+
*/
|
|
39
|
+
id_value?: string | null;
|
|
35
40
|
attribute?: string;
|
|
36
41
|
created_at?: number;
|
|
37
42
|
modified_at?: number;
|
|
@@ -39,21 +44,60 @@ export interface IGenericValue {
|
|
|
39
44
|
modified_by?: string;
|
|
40
45
|
version?: IValueVersion;
|
|
41
46
|
metadata?: IValueMetadata;
|
|
47
|
+
}
|
|
48
|
+
export interface IGenericValue extends ICommonGenericSaveValue {
|
|
42
49
|
isInherited?: boolean;
|
|
43
50
|
isCalculated?: boolean;
|
|
44
51
|
}
|
|
45
52
|
export interface IStandardValue extends IGenericValue {
|
|
53
|
+
/**
|
|
54
|
+
* Computed value after get actions on attribute are done
|
|
55
|
+
* TODO remove that any when possible
|
|
56
|
+
* TODO remove optional when possible
|
|
57
|
+
*/
|
|
46
58
|
payload?: any | EmptyValue;
|
|
47
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Raw value from the database, before any computation
|
|
61
|
+
* TODO, remove that any when possible
|
|
62
|
+
*/
|
|
63
|
+
raw_payload?: any;
|
|
48
64
|
}
|
|
49
65
|
export interface ILinkValue extends IGenericValue {
|
|
66
|
+
/**
|
|
67
|
+
* Linked record
|
|
68
|
+
* TODO remove optional when possible
|
|
69
|
+
*/
|
|
50
70
|
payload?: IRecord;
|
|
51
71
|
}
|
|
52
72
|
export interface ITreeValue extends IGenericValue {
|
|
73
|
+
/**
|
|
74
|
+
* Linked tree node
|
|
75
|
+
* TODO remove optional when possible
|
|
76
|
+
*/
|
|
53
77
|
payload?: ITreeNode;
|
|
54
78
|
treeId: string;
|
|
55
79
|
}
|
|
56
80
|
export type IValue = IStandardValue | ILinkValue | ITreeValue;
|
|
81
|
+
type IGenericSaveValue = ICommonGenericSaveValue;
|
|
82
|
+
export interface ISaveStandardValue extends IGenericSaveValue {
|
|
83
|
+
/**
|
|
84
|
+
* Any base type value to save
|
|
85
|
+
*/
|
|
86
|
+
payload: number | string | boolean | EmptyValue | null;
|
|
87
|
+
}
|
|
88
|
+
export interface ISaveLinkValue extends IGenericSaveValue {
|
|
89
|
+
/**
|
|
90
|
+
* Record id to link
|
|
91
|
+
*/
|
|
92
|
+
payload: string | null;
|
|
93
|
+
}
|
|
94
|
+
export interface ISaveTreeValue extends IGenericSaveValue {
|
|
95
|
+
/**
|
|
96
|
+
* Tree node id to link
|
|
97
|
+
*/
|
|
98
|
+
payload: string | null;
|
|
99
|
+
}
|
|
100
|
+
export type ISaveValue = ISaveStandardValue | ISaveLinkValue | ISaveTreeValue;
|
|
57
101
|
export interface IDateRangeValue<T = string | number> {
|
|
58
102
|
from: T;
|
|
59
103
|
to: T;
|
|
@@ -78,3 +122,18 @@ export interface IValueEdge extends IDbEdge {
|
|
|
78
122
|
version?: IDbValueVersion;
|
|
79
123
|
metadata?: IValueMetadata;
|
|
80
124
|
}
|
|
125
|
+
export interface IValueByAttributeType {
|
|
126
|
+
[AttributeTypes.SIMPLE]: IStandardValue;
|
|
127
|
+
[AttributeTypes.SIMPLE_LINK]: ILinkValue;
|
|
128
|
+
[AttributeTypes.ADVANCED]: IStandardValue;
|
|
129
|
+
[AttributeTypes.ADVANCED_LINK]: ILinkValue;
|
|
130
|
+
[AttributeTypes.TREE]: ITreeValue;
|
|
131
|
+
}
|
|
132
|
+
export interface ISaveValueByAttributeType {
|
|
133
|
+
[AttributeTypes.SIMPLE]: ISaveStandardValue;
|
|
134
|
+
[AttributeTypes.SIMPLE_LINK]: ISaveLinkValue;
|
|
135
|
+
[AttributeTypes.ADVANCED]: ISaveStandardValue;
|
|
136
|
+
[AttributeTypes.ADVANCED_LINK]: ISaveLinkValue;
|
|
137
|
+
[AttributeTypes.TREE]: ISaveTreeValue;
|
|
138
|
+
}
|
|
139
|
+
export {};
|
|
@@ -13,6 +13,7 @@ import { IOIDCClientService } from '../../infra/oidc/oidcClientService';
|
|
|
13
13
|
import { InitQueryContextFunc } from '../helpers/initQueryContext';
|
|
14
14
|
import { IConvertOIDCIdentifier } from '../helpers/convertOIDCIdentifier';
|
|
15
15
|
import { IncomingHttpHeaders } from 'http';
|
|
16
|
+
import { IRecordRepo } from '../../infra/record/recordRepo';
|
|
16
17
|
export interface IAuthApp {
|
|
17
18
|
getGraphQLSchema(): IAppGraphQLSchema;
|
|
18
19
|
validateRequestToken(params: {
|
|
@@ -26,6 +27,7 @@ export interface IAuthApp {
|
|
|
26
27
|
export interface IAuthAppDeps {
|
|
27
28
|
'core.domain.value': IValueDomain;
|
|
28
29
|
'core.domain.record': IRecordDomain;
|
|
30
|
+
'core.infra.record': IRecordRepo;
|
|
29
31
|
'core.domain.apiKey': IApiKeyDomain;
|
|
30
32
|
'core.domain.user': IUserDomain;
|
|
31
33
|
'core.infra.cache.cacheService': ICachesService;
|
|
@@ -35,4 +37,4 @@ export interface IAuthAppDeps {
|
|
|
35
37
|
'core.app.helpers.convertOIDCIdentifier': IConvertOIDCIdentifier;
|
|
36
38
|
config: IConfig;
|
|
37
39
|
}
|
|
38
|
-
export default function ({ 'core.domain.value': valueDomain, 'core.domain.record': recordDomain, 'core.domain.apiKey': apiKeyDomain, 'core.domain.user': userDomain, 'core.utils.logger': logger, 'core.infra.cache.cacheService': cacheService, 'core.infra.oidc.oidcClientService': oidcClientService, 'core.app.helpers.initQueryContext': initQueryContext, 'core.app.helpers.convertOIDCIdentifier': convertOIDCIdentifier, config }: IAuthAppDeps): IAuthApp;
|
|
40
|
+
export default function ({ 'core.domain.value': valueDomain, 'core.domain.record': recordDomain, 'core.infra.record': recordRepo, 'core.domain.apiKey': apiKeyDomain, 'core.domain.user': userDomain, 'core.utils.logger': logger, 'core.infra.cache.cacheService': cacheService, 'core.infra.oidc.oidcClientService': oidcClientService, 'core.app.helpers.initQueryContext': initQueryContext, 'core.app.helpers.convertOIDCIdentifier': convertOIDCIdentifier, config }: IAuthAppDeps): IAuthApp;
|
|
@@ -4,6 +4,7 @@ import { IFormDomain } from 'domain/form/formDomain';
|
|
|
4
4
|
import { ILibraryDomain } from 'domain/library/libraryDomain';
|
|
5
5
|
import { IUtils } from 'utils/utils';
|
|
6
6
|
import { IAppGraphQLSchema } from '_types/graphql';
|
|
7
|
+
import { IfLibraryJoinLinkAttribute } from 'domain/attribute/helpers/ifLibraryJoinLinkAttribute';
|
|
7
8
|
export interface ICoreFormApp {
|
|
8
9
|
getGraphQLSchema(): IAppGraphQLSchema;
|
|
9
10
|
}
|
|
@@ -12,9 +13,10 @@ interface IDeps {
|
|
|
12
13
|
'core.domain.form': IFormDomain;
|
|
13
14
|
'core.domain.library': ILibraryDomain;
|
|
14
15
|
'core.app.helpers.convertVersionFromGqlFormat': ConvertVersionFromGqlFormatFunc;
|
|
16
|
+
'core.domain.attribute.helpers.ifLibraryJoinLinkAttribute': IfLibraryJoinLinkAttribute;
|
|
15
17
|
'core.utils': IUtils;
|
|
16
18
|
}
|
|
17
|
-
export default function ({ 'core.domain.attribute': attributeDomain, 'core.domain.form': formDomain, 'core.domain.library': libraryDomain, 'core.app.helpers.convertVersionFromGqlFormat': convertVersionFromGqlFormat, 'core.utils': utils }: IDeps): {
|
|
19
|
+
export default function ({ 'core.domain.attribute': attributeDomain, 'core.domain.form': formDomain, 'core.domain.library': libraryDomain, 'core.app.helpers.convertVersionFromGqlFormat': convertVersionFromGqlFormat, 'core.domain.attribute.helpers.ifLibraryJoinLinkAttribute': ifLibraryJoinLinkAttribute, 'core.utils': utils }: IDeps): {
|
|
18
20
|
getGraphQLSchema(): IAppGraphQLSchema;
|
|
19
21
|
};
|
|
20
22
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IAttribute } from '../../../_types/attribute';
|
|
2
|
+
import { IQueryInfos } from '../../../_types/queryInfos';
|
|
3
|
+
import { IAttributeDomain } from 'domain/attribute/attributeDomain';
|
|
4
|
+
import { GetCoreEntityByIdFunc } from 'domain/helpers/getCoreEntityById';
|
|
5
|
+
export type IfLibraryJoinLinkAttributeCallback<R> = (joinLibId: string, joinAttributeProps: IAttribute) => Promise<R>;
|
|
6
|
+
export type IfLibraryJoinLinkAttribute = <R = unknown>(attributeProps: IAttribute, callback: IfLibraryJoinLinkAttributeCallback<R>, ctx: IQueryInfos) => Promise<R | void>;
|
|
7
|
+
export interface IIfLibraryJoinLinkDeps {
|
|
8
|
+
'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
|
|
9
|
+
'core.domain.attribute': IAttributeDomain;
|
|
10
|
+
}
|
|
11
|
+
export default function ({ 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.attribute': attributeDomain }: IIfLibraryJoinLinkDeps): IfLibraryJoinLinkAttribute;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ifLibraryJoinLinkAttribute } from './ifLibraryJoinLinkAttribute';
|
|
@@ -3,6 +3,8 @@ import { IAdminPermissionDomain } from 'domain/permission/adminPermissionDomain'
|
|
|
3
3
|
import { IGlobalSettingsRepo } from 'infra/globalSettings/globalSettingsRepo';
|
|
4
4
|
import { IGlobalSettings } from '_types/globalSettings';
|
|
5
5
|
import { IQueryInfos } from '_types/queryInfos';
|
|
6
|
+
import { IUtils } from '../../utils/utils';
|
|
7
|
+
import { ICachesService } from '../../infra/cache/cacheService';
|
|
6
8
|
export interface IGlobalSettingsDomain {
|
|
7
9
|
saveSettings({ settings, ctx }: {
|
|
8
10
|
settings: IGlobalSettings;
|
|
@@ -14,5 +16,7 @@ export interface IGlobalSettingsDomainDeps {
|
|
|
14
16
|
'core.domain.permission.admin': IAdminPermissionDomain;
|
|
15
17
|
'core.domain.eventsManager': IEventsManagerDomain;
|
|
16
18
|
'core.infra.globalSettings': IGlobalSettingsRepo;
|
|
19
|
+
'core.infra.cache.cacheService': ICachesService;
|
|
20
|
+
'core.utils': IUtils;
|
|
17
21
|
}
|
|
18
|
-
export default function ({ 'core.domain.permission.admin': adminPermissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.infra.globalSettings': globalSettingsRepo }: IGlobalSettingsDomainDeps): IGlobalSettingsDomain;
|
|
22
|
+
export default function ({ 'core.domain.permission.admin': adminPermissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.infra.globalSettings': globalSettingsRepo, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils }: IGlobalSettingsDomainDeps): IGlobalSettingsDomain;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AdminPermissionsActions, ApplicationPermissionsActions, AttributePermissionsActions, IPermissionsTreeTarget, ITreePermissionsConf, LibraryPermissionsActions, PermissionsActions, PermissionTypes, RecordAttributePermissionsActions, RecordPermissionsActions, TreeNodePermissionsActions, TreePermissionsActions } from '_types/permissions';
|
|
2
2
|
import { IQueryInfos } from '_types/queryInfos';
|
|
3
|
-
import {
|
|
3
|
+
import { TreePaths } from '_types/tree';
|
|
4
4
|
export declare const PERMISSIONS_CACHE_HEADER = "permissions";
|
|
5
5
|
export declare const PERMISSIONS_NULL_PLACEHOLDER = "__null__";
|
|
6
6
|
export interface IPermissionTarget {
|
|
@@ -28,18 +28,6 @@ export interface IGetPermissionsByActionsParams {
|
|
|
28
28
|
export type PermByActionsRes = {
|
|
29
29
|
[name: string]: boolean | null;
|
|
30
30
|
} | null;
|
|
31
|
-
export interface IGetPermissionByUserGroupsParams {
|
|
32
|
-
type: PermissionTypes;
|
|
33
|
-
action: PermissionsActions;
|
|
34
|
-
userGroupsPaths: TreePaths[];
|
|
35
|
-
applyTo?: string;
|
|
36
|
-
treeTarget?: {
|
|
37
|
-
tree: string;
|
|
38
|
-
path: ITreeNode[];
|
|
39
|
-
};
|
|
40
|
-
getDefaultPermission?: () => Promise<boolean> | boolean;
|
|
41
|
-
ctx: IQueryInfos;
|
|
42
|
-
}
|
|
43
31
|
export interface IGetAdminPermissionParams {
|
|
44
32
|
action: AdminPermissionsActions;
|
|
45
33
|
userId: string;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IPermissionRepo } from 'infra/permission/permissionRepo';
|
|
2
|
-
import { IGetPermissionByUserGroupsParams } from '../_types';
|
|
3
2
|
import { IReducePermissionsArrayHelper } from './reducePermissionsArray';
|
|
4
3
|
import { ISimplePermissionHelper } from './simplePermission';
|
|
5
4
|
import { IDefaultPermissionHelper } from './defaultPermission';
|
|
6
5
|
import { IElementAncestorsHelper } from 'domain/tree/helpers/elementAncestors';
|
|
6
|
+
import { ITreeNode, TreePaths } from '../../../_types/tree';
|
|
7
|
+
import { PermissionsActions, PermissionTypes } from '../../../_types/permissions';
|
|
8
|
+
import { IQueryInfos } from '../../../_types/queryInfos';
|
|
7
9
|
export interface IPermissionByUserGroupsHelperDeps {
|
|
8
10
|
'core.domain.permission.helpers.simplePermission': ISimplePermissionHelper;
|
|
9
11
|
'core.domain.permission.helpers.reducePermissionsArray': IReducePermissionsArrayHelper;
|
|
@@ -11,7 +13,20 @@ export interface IPermissionByUserGroupsHelperDeps {
|
|
|
11
13
|
'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
|
|
12
14
|
'core.infra.permission'?: IPermissionRepo;
|
|
13
15
|
}
|
|
16
|
+
interface IGetPermissionByUserGroupsParams {
|
|
17
|
+
type: PermissionTypes;
|
|
18
|
+
action: PermissionsActions;
|
|
19
|
+
userGroupsPaths: TreePaths[];
|
|
20
|
+
applyTo?: string;
|
|
21
|
+
treeTarget?: {
|
|
22
|
+
tree: string;
|
|
23
|
+
path: ITreeNode[];
|
|
24
|
+
};
|
|
25
|
+
getDefaultPermission?: () => Promise<boolean> | boolean;
|
|
26
|
+
ctx: IQueryInfos;
|
|
27
|
+
}
|
|
14
28
|
export interface IPermissionByUserGroupsHelper {
|
|
15
29
|
getPermissionByUserGroups: (params: IGetPermissionByUserGroupsParams) => Promise<boolean>;
|
|
16
30
|
}
|
|
17
31
|
export default function (deps: IPermissionByUserGroupsHelperDeps): IPermissionByUserGroupsHelper;
|
|
32
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ErrorTypes } from '@leav/utils';
|
|
2
|
+
import { Errors } from '_types/errors';
|
|
2
3
|
import { ICursorPaginationParams, IPaginationParams } from '_types/list';
|
|
3
4
|
import { IRecord, IRecordFilterLight, IRecordSortLight } from '_types/record';
|
|
4
5
|
import { IValue, IValuesOptions, IValueVersion } from '_types/value';
|
|
@@ -11,6 +12,7 @@ export interface IFindRecordParams {
|
|
|
11
12
|
withCount?: boolean;
|
|
12
13
|
retrieveInactive?: boolean;
|
|
13
14
|
fulltextSearch?: string;
|
|
15
|
+
ignorePermissions?: boolean;
|
|
14
16
|
}
|
|
15
17
|
export interface ICreateRecordParams {
|
|
16
18
|
library: string;
|
|
@@ -20,10 +22,9 @@ export interface ICreateRecordParams {
|
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
24
|
export interface ICreateRecordValueError {
|
|
23
|
-
|
|
24
|
-
type: ErrorTypes;
|
|
25
|
+
attribute: string;
|
|
26
|
+
type: ErrorTypes | Errors;
|
|
25
27
|
message: string;
|
|
26
|
-
id_value?: string;
|
|
27
28
|
input?: any;
|
|
28
29
|
}
|
|
29
30
|
export interface ICreateRecordResult {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
|
|
2
|
+
import { ILibraryPermissionDomain } from 'domain/permission/libraryPermissionDomain';
|
|
3
|
+
import { IRecordRepo } from 'infra/record/recordRepo';
|
|
4
|
+
import { IQueryInfos } from '../../../_types/queryInfos';
|
|
5
|
+
import { ICreateRecordResult, ICreateRecordValueError } from '../_types';
|
|
6
|
+
export type IPreCreateRecordCallback = () => Promise<ICreateRecordValueError[]>;
|
|
7
|
+
export type CreateRecordHelper = (params: {
|
|
8
|
+
library: string;
|
|
9
|
+
/**
|
|
10
|
+
* Can be use to validate potential values to post create insert to record
|
|
11
|
+
*/
|
|
12
|
+
preCreateCallback?: IPreCreateRecordCallback;
|
|
13
|
+
ctx: IQueryInfos;
|
|
14
|
+
}) => Promise<ICreateRecordResult>;
|
|
15
|
+
interface IDeps {
|
|
16
|
+
'core.domain.eventsManager': IEventsManagerDomain;
|
|
17
|
+
'core.domain.permission.library': ILibraryPermissionDomain;
|
|
18
|
+
'core.infra.record': IRecordRepo;
|
|
19
|
+
}
|
|
20
|
+
export default function ({ 'core.domain.eventsManager': eventsManager, 'core.domain.permission.library': libraryPermissionDomain, 'core.infra.record': recordRepo }: IDeps): CreateRecordHelper;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
|
|
2
|
+
import { IQueryInfos } from '../../../_types/queryInfos';
|
|
3
|
+
import { IRecordPermissionDomain } from 'domain/permission/recordPermissionDomain';
|
|
4
|
+
import { IValidateHelper } from 'domain/helpers/validate';
|
|
5
|
+
import { IRecordRepo } from 'infra/record/recordRepo';
|
|
6
|
+
import { ITreeRepo } from 'infra/tree/treeRepo';
|
|
7
|
+
import { IValueRepo } from 'infra/value/valueRepo';
|
|
8
|
+
import { IRecord } from '../../../_types/record';
|
|
9
|
+
export type DeleteRecordHelper = (library: string, id: string, ctx: IQueryInfos) => Promise<IRecord>;
|
|
10
|
+
interface IDeps {
|
|
11
|
+
'core.domain.helpers.validate': IValidateHelper;
|
|
12
|
+
'core.domain.eventsManager': IEventsManagerDomain;
|
|
13
|
+
'core.domain.permission.record': IRecordPermissionDomain;
|
|
14
|
+
'core.infra.record': IRecordRepo;
|
|
15
|
+
'core.infra.tree': ITreeRepo;
|
|
16
|
+
'core.infra.value': IValueRepo;
|
|
17
|
+
}
|
|
18
|
+
export default function ({ 'core.domain.eventsManager': eventsManager, 'core.domain.helpers.validate': validateHelper, 'core.domain.permission.record': recordPermissionDomain, 'core.infra.record': recordRepo, 'core.infra.tree': treeRepo, 'core.infra.value': valueRepo }: IDeps): DeleteRecordHelper;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IAttribute } from '_types/attribute';
|
|
2
|
+
import { IQueryInfos } from '_types/queryInfos';
|
|
3
|
+
import { ITreeNode } from '_types/tree';
|
|
4
|
+
import { GetCoreEntityByIdFunc } from 'domain/helpers/getCoreEntityById';
|
|
5
|
+
import { IPermissionRepo } from 'infra/permission/permissionRepo';
|
|
6
|
+
import { ITreeRepo } from 'infra/tree/treeRepo';
|
|
7
|
+
import { IDefaultPermissionHelper } from 'domain/permission/helpers/defaultPermission';
|
|
8
|
+
interface IAccessPermissionFilterDeps {
|
|
9
|
+
'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
|
|
10
|
+
'core.infra.tree': ITreeRepo;
|
|
11
|
+
'core.infra.permission': IPermissionRepo;
|
|
12
|
+
'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
|
|
13
|
+
}
|
|
14
|
+
export interface IGetAccessPermissionsValue {
|
|
15
|
+
treeId: string;
|
|
16
|
+
attribute: IAttribute;
|
|
17
|
+
permissions: {
|
|
18
|
+
true: Array<ITreeNode['id']>;
|
|
19
|
+
false: Array<ITreeNode['id']>;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export type IGetAccessPermissions = (groupsIds: string[][], library: string, deps: IAccessPermissionFilterDeps, ctx: IQueryInfos) => Promise<IGetAccessPermissionsValue[]>;
|
|
23
|
+
declare const getAccessPermissionsFilters: IGetAccessPermissions;
|
|
24
|
+
export default getAccessPermissionsFilters;
|
|
@@ -1 +1,4 @@
|
|
|
1
|
+
export { default as createRecord } from './createRecord';
|
|
2
|
+
export { default as deleteRecord } from './deleteRecord';
|
|
1
3
|
export { default as sendRecordUpdateEvent } from './sendRecordUpdateEvent';
|
|
4
|
+
export { default as getAccessPermissionFilters } from './getAccessPermissionFilters';
|
|
@@ -11,7 +11,7 @@ import { IValueRepo } from 'infra/value/valueRepo';
|
|
|
11
11
|
import { IUtils } from 'utils/utils';
|
|
12
12
|
import * as Config from '_types/config';
|
|
13
13
|
import { IListWithCursor } from '_types/list';
|
|
14
|
-
import { IValue, IValuesOptions } from '_types/value';
|
|
14
|
+
import { ISaveValue, IValue, IValuesOptions } from '_types/value';
|
|
15
15
|
import { ICachesService } from '../../infra/cache/cacheService';
|
|
16
16
|
import { IQueryInfos } from '../../_types/queryInfos';
|
|
17
17
|
import { IRecord, IRecordFilterLight, IRecordIdentity } from '../../_types/record';
|
|
@@ -22,10 +22,15 @@ import { ICreateRecordResult, IFindRecordParams } from './_types';
|
|
|
22
22
|
import { IFormRepo } from 'infra/form/formRepo';
|
|
23
23
|
import { IRecordAttributePermissionDomain } from '../permission/recordAttributePermissionDomain';
|
|
24
24
|
import { IAttributePermissionDomain } from '../permission/attributePermissionDomain';
|
|
25
|
+
import { IPermissionRepo } from '../../infra/permission/permissionRepo';
|
|
26
|
+
import { IDefaultPermissionHelper } from 'domain/permission/helpers/defaultPermission';
|
|
27
|
+
import { DeleteRecordHelper } from './helpers/deleteRecord';
|
|
28
|
+
import { CreateRecordHelper } from './helpers/createRecord';
|
|
29
|
+
import { IElementAncestorsHelper } from 'domain/tree/helpers/elementAncestors';
|
|
25
30
|
export interface IRecordDomain {
|
|
26
31
|
createRecord(params: {
|
|
27
32
|
library: string;
|
|
28
|
-
values?:
|
|
33
|
+
values?: ISaveValue[];
|
|
29
34
|
verifyRequiredAttributes?: boolean;
|
|
30
35
|
ctx: IQueryInfos;
|
|
31
36
|
}): Promise<ICreateRecordResult>;
|
|
@@ -80,6 +85,12 @@ export interface IRecordDomain {
|
|
|
80
85
|
filters?: IRecordFilterLight[];
|
|
81
86
|
ctx: IQueryInfos;
|
|
82
87
|
}): Promise<IRecord[]>;
|
|
88
|
+
activateRecordsBatch(params: {
|
|
89
|
+
libraryId: string;
|
|
90
|
+
recordsIds?: string[];
|
|
91
|
+
filters?: IRecordFilterLight[];
|
|
92
|
+
ctx: IQueryInfos;
|
|
93
|
+
}): Promise<IRecord[]>;
|
|
83
94
|
purgeInactiveRecords(params: {
|
|
84
95
|
libraryId: string;
|
|
85
96
|
ctx: IQueryInfos;
|
|
@@ -94,16 +105,21 @@ export interface IRecordDomainDeps {
|
|
|
94
105
|
'core.domain.permission.library': ILibraryPermissionDomain;
|
|
95
106
|
'core.domain.permission.attribute': IAttributePermissionDomain;
|
|
96
107
|
'core.domain.permission.recordAttribute': IRecordAttributePermissionDomain;
|
|
108
|
+
'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
|
|
97
109
|
'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
|
|
98
110
|
'core.domain.helpers.validate': IValidateHelper;
|
|
111
|
+
'core.domain.record.helpers.createRecord': CreateRecordHelper;
|
|
112
|
+
'core.domain.record.helpers.deleteRecord': DeleteRecordHelper;
|
|
99
113
|
'core.domain.record.helpers.sendRecordUpdateEvent': SendRecordUpdateEventHelper;
|
|
100
114
|
'core.infra.library': ILibraryRepo;
|
|
101
115
|
'core.infra.tree': ITreeRepo;
|
|
116
|
+
'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
|
|
102
117
|
'core.infra.value': IValueRepo;
|
|
103
118
|
'core.infra.form': IFormRepo;
|
|
119
|
+
'core.infra.permission': IPermissionRepo;
|
|
104
120
|
'core.domain.eventsManager': IEventsManagerDomain;
|
|
105
121
|
'core.infra.cache.cacheService': ICachesService;
|
|
106
122
|
'core.utils': IUtils;
|
|
107
123
|
translator: i18n;
|
|
108
124
|
}
|
|
109
|
-
export default function ({ config, 'core.infra.record': recordRepo, 'core.domain.attribute': attributeDomain, 'core.domain.value': valueDomain, 'core.domain.permission.record': recordPermissionDomain, 'core.domain.permission.library': libraryPermissionDomain, 'core.domain.permission.attribute': attrPermissionDomain, 'core.domain.permission.recordAttribute': recordAttributePermissionDomain, 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.helpers.validate': validateHelper, 'core.domain.record.helpers.sendRecordUpdateEvent': sendRecordUpdateEvent, 'core.infra.library': libraryRepo, 'core.infra.tree': treeRepo, 'core.infra.value': valueRepo, 'core.infra.form': formRepo, 'core.domain.eventsManager': eventsManager, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils, translator }: IRecordDomainDeps): IRecordDomain;
|
|
125
|
+
export default function ({ config, 'core.infra.record': recordRepo, 'core.domain.attribute': attributeDomain, 'core.domain.value': valueDomain, 'core.domain.permission.record': recordPermissionDomain, 'core.domain.permission.library': libraryPermissionDomain, 'core.domain.permission.attribute': attrPermissionDomain, 'core.domain.permission.recordAttribute': recordAttributePermissionDomain, 'core.domain.permission.helpers.defaultPermission': defaultPermHelper, 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.helpers.validate': validateHelper, 'core.domain.record.helpers.createRecord': createRecordHelper, 'core.domain.record.helpers.deleteRecord': deleteRecordHelper, 'core.domain.record.helpers.sendRecordUpdateEvent': sendRecordUpdateEvent, 'core.infra.library': libraryRepo, 'core.infra.tree': treeRepo, 'core.domain.tree.helpers.elementAncestors': elementAncestorsHelper, 'core.infra.value': valueRepo, 'core.infra.form': formRepo, 'core.infra.permission': permissionRepo, 'core.domain.eventsManager': eventsManager, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils, translator }: IRecordDomainDeps): IRecordDomain;
|
|
@@ -3,10 +3,10 @@ import { IAttributeDomain } from 'domain/attribute/attributeDomain';
|
|
|
3
3
|
import { IUtils } from 'utils/utils';
|
|
4
4
|
import { IAttribute } from '_types/attribute';
|
|
5
5
|
import { IQueryInfos } from '_types/queryInfos';
|
|
6
|
-
import {
|
|
6
|
+
import { ISaveValue } from '_types/value';
|
|
7
7
|
interface IPrepareValueParams {
|
|
8
8
|
attributeProps: IAttribute;
|
|
9
|
-
value:
|
|
9
|
+
value: ISaveValue;
|
|
10
10
|
library: string;
|
|
11
11
|
recordId: string;
|
|
12
12
|
infos?: IQueryInfos;
|
|
@@ -18,5 +18,5 @@ interface IPrepareValueParams {
|
|
|
18
18
|
};
|
|
19
19
|
ctx: IQueryInfos;
|
|
20
20
|
}
|
|
21
|
-
declare const _default: (params: IPrepareValueParams) => Promise<
|
|
21
|
+
declare const _default: (params: IPrepareValueParams) => Promise<ISaveValue[]>;
|
|
22
22
|
export default _default;
|
|
@@ -7,7 +7,7 @@ import { ITreeRepo } from 'infra/tree/treeRepo';
|
|
|
7
7
|
import { IValueRepo } from 'infra/value/valueRepo';
|
|
8
8
|
import { IQueryInfos } from '_types/queryInfos';
|
|
9
9
|
import { IAttribute } from '../../../_types/attribute';
|
|
10
|
-
import { IValue } from '../../../_types/value';
|
|
10
|
+
import { ISaveValue, IValue } from '../../../_types/value';
|
|
11
11
|
interface ISaveOneValueDeps {
|
|
12
12
|
valueRepo: IValueRepo;
|
|
13
13
|
recordRepo: IRecordRepo;
|
|
@@ -17,5 +17,5 @@ interface ISaveOneValueDeps {
|
|
|
17
17
|
attributeDomain: IAttributeDomain;
|
|
18
18
|
versionProfileDomain: IVersionProfileDomain;
|
|
19
19
|
}
|
|
20
|
-
declare const _default: (library: string, recordId: string, attribute: IAttribute, value:
|
|
20
|
+
declare const _default: (library: string, recordId: string, attribute: IAttribute, value: ISaveValue, deps: ISaveOneValueDeps, ctx: IQueryInfos) => Promise<IValue>;
|
|
21
21
|
export default _default;
|
|
@@ -5,10 +5,10 @@ import { IValueRepo } from 'infra/value/valueRepo';
|
|
|
5
5
|
import { IAttribute } from '../../../_types/attribute';
|
|
6
6
|
import { ErrorFieldDetail } from '../../../_types/errors';
|
|
7
7
|
import { IQueryInfos } from '../../../_types/queryInfos';
|
|
8
|
-
import {
|
|
8
|
+
import { ISaveValue } from '../../../_types/value';
|
|
9
9
|
interface IValidateValueParams {
|
|
10
10
|
attributeProps: IAttribute;
|
|
11
|
-
value:
|
|
11
|
+
value: ISaveValue;
|
|
12
12
|
library: string;
|
|
13
13
|
recordId?: string;
|
|
14
14
|
infos?: IQueryInfos;
|
|
@@ -21,5 +21,5 @@ interface IValidateValueParams {
|
|
|
21
21
|
};
|
|
22
22
|
ctx: IQueryInfos;
|
|
23
23
|
}
|
|
24
|
-
declare const _default: (params: IValidateValueParams) => Promise<ErrorFieldDetail<
|
|
24
|
+
declare const _default: (params: IValidateValueParams) => Promise<ErrorFieldDetail<ISaveValue>>;
|
|
25
25
|
export default _default;
|
|
@@ -14,13 +14,16 @@ import * as Config from '_types/config';
|
|
|
14
14
|
import { IRecord } from '_types/record';
|
|
15
15
|
import { IAttribute } from '../../_types/attribute';
|
|
16
16
|
import { IQueryInfos } from '../../_types/queryInfos';
|
|
17
|
-
import { IValue, IValuesOptions } from '../../_types/value';
|
|
17
|
+
import { ISaveValue, IValue, IValuesOptions } from '../../_types/value';
|
|
18
18
|
import { IActionsListDomain } from '../actionsList/actionsListDomain';
|
|
19
19
|
import { IAttributeDomain } from '../attribute/attributeDomain';
|
|
20
20
|
import { IValidateHelper } from '../helpers/validate';
|
|
21
21
|
import { IRecordAttributePermissionDomain } from '../permission/recordAttributePermissionDomain';
|
|
22
22
|
import { IRecordPermissionDomain } from '../permission/recordPermissionDomain';
|
|
23
23
|
import { IDeleteValueParams, IRunActionListParams } from './_types';
|
|
24
|
+
import { DeleteRecordHelper } from 'domain/record/helpers/deleteRecord';
|
|
25
|
+
import { CreateRecordHelper } from 'domain/record/helpers/createRecord';
|
|
26
|
+
import { IfLibraryJoinLinkAttribute } from '../attribute/helpers/ifLibraryJoinLinkAttribute';
|
|
24
27
|
export interface ISaveBatchValueError {
|
|
25
28
|
type: string;
|
|
26
29
|
message: string;
|
|
@@ -58,7 +61,7 @@ export interface IValueDomain {
|
|
|
58
61
|
library: string;
|
|
59
62
|
recordId: string;
|
|
60
63
|
attribute: string;
|
|
61
|
-
value:
|
|
64
|
+
value: ISaveValue;
|
|
62
65
|
ctx: IQueryInfos;
|
|
63
66
|
}): Promise<IValue[]>;
|
|
64
67
|
/**
|
|
@@ -70,9 +73,10 @@ export interface IValueDomain {
|
|
|
70
73
|
saveValueBatch(params: {
|
|
71
74
|
library: string;
|
|
72
75
|
recordId: string;
|
|
73
|
-
values:
|
|
76
|
+
values: ISaveValue[];
|
|
74
77
|
ctx: IQueryInfos;
|
|
75
78
|
keepEmpty?: boolean;
|
|
79
|
+
skipPermission?: boolean;
|
|
76
80
|
}): Promise<ISaveBatchValueResult>;
|
|
77
81
|
deleteValue(params: IDeleteValueParams): Promise<IValue[]>;
|
|
78
82
|
formatValue(params: {
|
|
@@ -101,6 +105,9 @@ export interface IValueDomainDeps {
|
|
|
101
105
|
'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
|
|
102
106
|
'core.domain.tree.helpers.getDefaultElement': IGetDefaultElementHelper;
|
|
103
107
|
'core.domain.record.helpers.sendRecordUpdateEvent': SendRecordUpdateEventHelper;
|
|
108
|
+
'core.domain.record.helpers.createRecord': CreateRecordHelper;
|
|
109
|
+
'core.domain.record.helpers.deleteRecord': DeleteRecordHelper;
|
|
110
|
+
'core.domain.attribute.helpers.ifLibraryJoinLinkAttribute': IfLibraryJoinLinkAttribute;
|
|
104
111
|
'core.domain.versionProfile': IVersionProfileDomain;
|
|
105
112
|
'core.infra.record': IRecordRepo;
|
|
106
113
|
'core.infra.tree': ITreeRepo;
|
|
@@ -109,5 +116,5 @@ export interface IValueDomainDeps {
|
|
|
109
116
|
'core.utils.logger': winston.Winston;
|
|
110
117
|
'core.domain.tree': ITreeDomain;
|
|
111
118
|
}
|
|
112
|
-
declare const valueDomain: ({ config, "core.domain.actionsList": actionsListDomain, "core.domain.attribute": attributeDomain, "core.domain.permission.recordAttribute": recordAttributePermissionDomain, "core.domain.permission.record": recordPermissionDomain, "core.domain.eventsManager": eventsManager, "core.domain.helpers.validate": validate, "core.domain.helpers.updateRecordLastModif": updateRecordLastModif, "core.domain.tree.helpers.elementAncestors": elementAncestors, "core.domain.tree.helpers.getDefaultElement": getDefaultElementHelper, "core.domain.record.helpers.sendRecordUpdateEvent": sendRecordUpdateEvent, "core.domain.versionProfile": versionProfileDomain, "core.infra.record": recordRepo, "core.infra.tree": treeRepo, "core.infra.value": valueRepo, "core.utils": utils, "core.utils.logger": logger }: IValueDomainDeps) => IValueDomain;
|
|
119
|
+
declare const valueDomain: ({ config, "core.domain.actionsList": actionsListDomain, "core.domain.attribute": attributeDomain, "core.domain.permission.recordAttribute": recordAttributePermissionDomain, "core.domain.permission.record": recordPermissionDomain, "core.domain.eventsManager": eventsManager, "core.domain.helpers.validate": validate, "core.domain.helpers.updateRecordLastModif": updateRecordLastModif, "core.domain.tree.helpers.elementAncestors": elementAncestors, "core.domain.tree.helpers.getDefaultElement": getDefaultElementHelper, "core.domain.record.helpers.sendRecordUpdateEvent": sendRecordUpdateEvent, "core.domain.record.helpers.createRecord": createRecordHelper, "core.domain.record.helpers.deleteRecord": deleteRecordHelper, "core.domain.attribute.helpers.ifLibraryJoinLinkAttribute": ifLibraryJoinLinkAttribute, "core.domain.versionProfile": versionProfileDomain, "core.infra.record": recordRepo, "core.infra.tree": treeRepo, "core.infra.value": valueRepo, "core.utils": utils, "core.utils.logger": logger }: IValueDomainDeps) => IValueDomain;
|
|
113
120
|
export default valueDomain;
|
|
@@ -14,6 +14,12 @@ export default class LeavError<T, E = ErrorTypes> extends Error {
|
|
|
14
14
|
fields?: ErrorFieldDetail<T>;
|
|
15
15
|
type: E;
|
|
16
16
|
record?: ILeavErrorRecord;
|
|
17
|
+
/**
|
|
18
|
+
* Use this ID to identify the error in logs or for debugging purposes.
|
|
19
|
+
* It is generated using uuid v1, which includes a timestamp and a unique identifier.
|
|
20
|
+
* This allows for tracking the error across different systems and logs.
|
|
21
|
+
*/
|
|
22
|
+
errorId: string;
|
|
17
23
|
constructor(type: E, message?: string, details?: ILeavErrorDetails);
|
|
18
24
|
}
|
|
19
25
|
export {};
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { IFilterTypesHelper } from 'infra/record/helpers/filterTypes';
|
|
2
2
|
import { IUtils } from 'utils/utils';
|
|
3
|
+
import { AttributeTypes } from '../../_types/attribute';
|
|
3
4
|
import { IDbService } from '../db/dbService';
|
|
4
5
|
import { IDbUtils } from '../db/dbUtils';
|
|
5
6
|
import { IAttributeTypeRepo } from './attributeTypesRepo';
|
|
6
7
|
import { GetConditionPart } from './helpers/getConditionPart';
|
|
8
|
+
import { IAttributeSimpleLinkRepo } from './attributeSimpleLinkRepo';
|
|
9
|
+
export type IAttributeAdvancedLinkRepo = IAttributeTypeRepo<AttributeTypes.ADVANCED_LINK>;
|
|
7
10
|
interface IDeps {
|
|
8
11
|
'core.infra.db.dbService'?: IDbService;
|
|
9
12
|
'core.infra.db.dbUtils'?: IDbUtils;
|
|
10
|
-
'core.infra.attributeTypes.attributeSimpleLink'?:
|
|
13
|
+
'core.infra.attributeTypes.attributeSimpleLink'?: IAttributeSimpleLinkRepo;
|
|
11
14
|
'core.infra.attributeTypes.helpers.getConditionPart'?: GetConditionPart;
|
|
12
15
|
'core.infra.record.helpers.filterTypes'?: IFilterTypesHelper;
|
|
13
16
|
'core.utils'?: IUtils;
|
|
14
17
|
}
|
|
15
|
-
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.attributeSimpleLink': attributeSimpleLinkRepo, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypes, 'core.utils': utils }?: IDeps):
|
|
18
|
+
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.attributeSimpleLink': attributeSimpleLinkRepo, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypes, 'core.utils': utils }?: IDeps): IAttributeAdvancedLinkRepo;
|
|
16
19
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IDbUtils } from 'infra/db/dbUtils';
|
|
2
2
|
import { IFilterTypesHelper } from 'infra/record/helpers/filterTypes';
|
|
3
|
+
import { AttributeTypes } from '../../_types/attribute';
|
|
3
4
|
import { IDbService } from '../db/dbService';
|
|
4
5
|
import { IAttributeTypeRepo } from './attributeTypesRepo';
|
|
5
6
|
import { GetConditionPart } from './helpers/getConditionPart';
|
|
@@ -9,4 +10,5 @@ export interface IAttributeAdvancedRepoDeps {
|
|
|
9
10
|
'core.infra.attributeTypes.helpers.getConditionPart': GetConditionPart;
|
|
10
11
|
'core.infra.record.helpers.filterTypes': IFilterTypesHelper;
|
|
11
12
|
}
|
|
12
|
-
export
|
|
13
|
+
export type IAttributeAdvancedRepo = IAttributeTypeRepo<AttributeTypes.ADVANCED>;
|
|
14
|
+
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypesHelper }: IAttributeAdvancedRepoDeps): IAttributeAdvancedRepo;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { IFilterTypesHelper } from 'infra/record/helpers/filterTypes';
|
|
2
|
+
import { AttributeTypes } from '../../_types/attribute';
|
|
2
3
|
import { IDbService } from '../db/dbService';
|
|
3
4
|
import { IDbUtils } from '../db/dbUtils';
|
|
4
5
|
import { IAttributeTypeRepo } from './attributeTypesRepo';
|
|
5
6
|
import { GetConditionPart } from './helpers/getConditionPart';
|
|
7
|
+
import { IAttributeSimpleRepo } from './attributeSimpleRepo';
|
|
6
8
|
interface IDeps {
|
|
7
9
|
'core.infra.db.dbService'?: IDbService;
|
|
8
10
|
'core.infra.db.dbUtils'?: IDbUtils;
|
|
9
|
-
'core.infra.attributeTypes.attributeSimple'?:
|
|
11
|
+
'core.infra.attributeTypes.attributeSimple'?: IAttributeSimpleRepo;
|
|
10
12
|
'core.infra.attributeTypes.helpers.getConditionPart'?: GetConditionPart;
|
|
11
13
|
'core.infra.record.helpers.filterTypes'?: IFilterTypesHelper;
|
|
12
14
|
}
|
|
13
|
-
export
|
|
15
|
+
export type IAttributeSimpleLinkRepo = IAttributeTypeRepo<AttributeTypes.SIMPLE_LINK>;
|
|
16
|
+
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.attributeSimple': attributeSimpleRepo, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypesHelper }?: IDeps): IAttributeSimpleLinkRepo;
|
|
14
17
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IFilterTypesHelper } from 'infra/record/helpers/filterTypes';
|
|
2
|
+
import { AttributeTypes } from '../../_types/attribute';
|
|
2
3
|
import { IDbService } from '../db/dbService';
|
|
3
4
|
import { IAttributeTypeRepo } from './attributeTypesRepo';
|
|
4
5
|
import { GetConditionPart } from './helpers/getConditionPart';
|
|
@@ -7,5 +8,6 @@ interface IDeps {
|
|
|
7
8
|
'core.infra.attributeTypes.helpers.getConditionPart'?: GetConditionPart;
|
|
8
9
|
'core.infra.record.helpers.filterTypes'?: IFilterTypesHelper;
|
|
9
10
|
}
|
|
10
|
-
export
|
|
11
|
+
export type IAttributeSimpleRepo = IAttributeTypeRepo<AttributeTypes.SIMPLE>;
|
|
12
|
+
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypesHelper }?: IDeps): IAttributeSimpleRepo;
|
|
11
13
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IFilterTypesHelper } from 'infra/record/helpers/filterTypes';
|
|
2
2
|
import { IUtils } from 'utils/utils';
|
|
3
|
+
import { AttributeTypes } from '../../_types/attribute';
|
|
3
4
|
import { IDbService } from '../db/dbService';
|
|
4
5
|
import { IDbUtils } from '../db/dbUtils';
|
|
5
6
|
import { IAttributeTypeRepo } from './attributeTypesRepo';
|
|
@@ -11,5 +12,6 @@ interface IDeps {
|
|
|
11
12
|
'core.infra.record.helpers.filterTypes'?: IFilterTypesHelper;
|
|
12
13
|
'core.utils'?: IUtils;
|
|
13
14
|
}
|
|
14
|
-
export
|
|
15
|
+
export type IAttributeTreeRepo = IAttributeTypeRepo<AttributeTypes.TREE>;
|
|
16
|
+
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypes, 'core.utils': utils }?: IDeps): IAttributeTreeRepo;
|
|
15
17
|
export {};
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { AqlLiteral, GeneratedAqlQuery } from 'arangojs/aql';
|
|
2
2
|
import { IQueryInfos } from '_types/queryInfos';
|
|
3
|
-
import { IAttribute } from '../../_types/attribute';
|
|
3
|
+
import { AttributeTypes, IAttribute } from '../../_types/attribute';
|
|
4
4
|
import { AttributeCondition, IRecordFilterOption } from '../../_types/record';
|
|
5
|
-
import {
|
|
6
|
-
|
|
5
|
+
import { ISaveValueByAttributeType, IValueByAttributeType, IValuesOptions } from '../../_types/value';
|
|
6
|
+
import { IAttributeSimpleRepo } from './attributeSimpleRepo';
|
|
7
|
+
import { IAttributeSimpleLinkRepo } from './attributeSimpleLinkRepo';
|
|
8
|
+
import { IAttributeAdvancedRepo } from './attributeAdvancedRepo';
|
|
9
|
+
import { IAttributeAdvancedLinkRepo } from './attributeAdvancedLinkRepo';
|
|
10
|
+
import { IAttributeTreeRepo } from './attributeTreeRepo';
|
|
11
|
+
export type IAttributeWithRepo = IAttributeWithRevLink & {
|
|
7
12
|
_repo: IAttributeTypeRepo;
|
|
8
|
-
}
|
|
13
|
+
};
|
|
14
|
+
type IAttributeRepoByType<AttributeType extends AttributeTypes | unknown> = AttributeType extends AttributeTypes.SIMPLE ? IAttributeSimpleRepo : AttributeType extends AttributeTypes.SIMPLE_LINK ? IAttributeSimpleLinkRepo : AttributeType extends AttributeTypes.ADVANCED ? IAttributeAdvancedRepo : AttributeType extends AttributeTypes.ADVANCED_LINK ? IAttributeAdvancedLinkRepo : AttributeType extends AttributeTypes.TREE ? IAttributeTreeRepo : IAttributeTypeRepo;
|
|
9
15
|
export interface IAttributeTypesRepo {
|
|
10
|
-
getTypeRepo
|
|
16
|
+
getTypeRepo<AttributeType extends AttributeTypes | unknown>(attribute: IAttribute): IAttributeRepoByType<AttributeType>;
|
|
11
17
|
}
|
|
12
18
|
export interface IAttributeWithRevLink extends IAttribute {
|
|
13
19
|
reverse_link?: IAttribute;
|
|
@@ -17,14 +23,14 @@ export type GetConditionPartFunc = (valueIdentifier: string | AqlLiteral) => Gen
|
|
|
17
23
|
/**
|
|
18
24
|
* Define interface used for all attribute type specific files
|
|
19
25
|
*/
|
|
20
|
-
export interface IAttributeTypeRepo {
|
|
26
|
+
export interface IAttributeTypeRepo<AttributeType extends AttributeTypes = AttributeTypes, Value = IValueByAttributeType[AttributeType]> {
|
|
21
27
|
createValue({ library, recordId, attribute, value, ctx }: {
|
|
22
28
|
library: string;
|
|
23
29
|
recordId: string;
|
|
24
30
|
attribute: IAttributeWithRevLink;
|
|
25
|
-
value:
|
|
31
|
+
value: ISaveValueByAttributeType[AttributeType];
|
|
26
32
|
ctx: IQueryInfos;
|
|
27
|
-
}): Promise<
|
|
33
|
+
}): Promise<Value>;
|
|
28
34
|
/**
|
|
29
35
|
* Update an existing value. Field "id" is expected on the value
|
|
30
36
|
*/
|
|
@@ -32,9 +38,9 @@ export interface IAttributeTypeRepo {
|
|
|
32
38
|
library: string;
|
|
33
39
|
recordId: string;
|
|
34
40
|
attribute: IAttributeWithRevLink;
|
|
35
|
-
value:
|
|
41
|
+
value: ISaveValueByAttributeType[AttributeType];
|
|
36
42
|
ctx: IQueryInfos;
|
|
37
|
-
}): Promise<
|
|
43
|
+
}): Promise<Value>;
|
|
38
44
|
/**
|
|
39
45
|
* Delete an existing value. Field "id" is expected on the value
|
|
40
46
|
*/
|
|
@@ -42,9 +48,9 @@ export interface IAttributeTypeRepo {
|
|
|
42
48
|
library: string;
|
|
43
49
|
recordId: string;
|
|
44
50
|
attribute: IAttributeWithRevLink;
|
|
45
|
-
value:
|
|
51
|
+
value: Value;
|
|
46
52
|
ctx: IQueryInfos;
|
|
47
|
-
}): Promise<
|
|
53
|
+
}): Promise<Value>;
|
|
48
54
|
/**
|
|
49
55
|
* Check if a value is unique
|
|
50
56
|
*/
|
|
@@ -52,7 +58,7 @@ export interface IAttributeTypeRepo {
|
|
|
52
58
|
library: string;
|
|
53
59
|
excludedRecordId?: string;
|
|
54
60
|
attribute: IAttribute;
|
|
55
|
-
value:
|
|
61
|
+
value: Value;
|
|
56
62
|
ctx: IQueryInfos;
|
|
57
63
|
}): Promise<boolean>;
|
|
58
64
|
/**
|
|
@@ -67,7 +73,7 @@ export interface IAttributeTypeRepo {
|
|
|
67
73
|
forceGetAllValues?: boolean;
|
|
68
74
|
options?: IValuesOptions;
|
|
69
75
|
ctx: IQueryInfos;
|
|
70
|
-
}): Promise<
|
|
76
|
+
}): Promise<Value[]>;
|
|
71
77
|
/**
|
|
72
78
|
* Get all reverse values for given attribute / value
|
|
73
79
|
*
|
|
@@ -78,7 +84,7 @@ export interface IAttributeTypeRepo {
|
|
|
78
84
|
value: string;
|
|
79
85
|
forceGetAllValues: boolean;
|
|
80
86
|
ctx: IQueryInfos;
|
|
81
|
-
}): Promise<
|
|
87
|
+
}): Promise<Value[]>;
|
|
82
88
|
/**
|
|
83
89
|
* Return a specific value based on its ID. Field "id" is expect on the value
|
|
84
90
|
*
|
|
@@ -90,7 +96,7 @@ export interface IAttributeTypeRepo {
|
|
|
90
96
|
attribute: IAttribute;
|
|
91
97
|
valueId: string;
|
|
92
98
|
ctx: IQueryInfos;
|
|
93
|
-
}): Promise<
|
|
99
|
+
}): Promise<Value>;
|
|
94
100
|
/**
|
|
95
101
|
* Return AQL query part to retrieve value for this attribute.
|
|
96
102
|
* If will be concatenate with other filters and full query
|
|
@@ -118,11 +124,11 @@ export declare const ATTRIB_COLLECTION_NAME = "core_attributes";
|
|
|
118
124
|
export declare const BASE_QUERY_IDENTIFIER = "r";
|
|
119
125
|
export declare const isValuesCountCondition: (condition: AttributeCondition) => boolean;
|
|
120
126
|
interface IDeps {
|
|
121
|
-
'core.infra.attributeTypes.attributeSimple'?:
|
|
122
|
-
'core.infra.attributeTypes.attributeSimpleLink'?:
|
|
123
|
-
'core.infra.attributeTypes.attributeAdvanced'?:
|
|
124
|
-
'core.infra.attributeTypes.attributeAdvancedLink'?:
|
|
125
|
-
'core.infra.attributeTypes.attributeTree'?:
|
|
127
|
+
'core.infra.attributeTypes.attributeSimple'?: IAttributeSimpleRepo;
|
|
128
|
+
'core.infra.attributeTypes.attributeSimpleLink'?: IAttributeSimpleLinkRepo;
|
|
129
|
+
'core.infra.attributeTypes.attributeAdvanced'?: IAttributeAdvancedRepo;
|
|
130
|
+
'core.infra.attributeTypes.attributeAdvancedLink'?: IAttributeAdvancedLinkRepo;
|
|
131
|
+
'core.infra.attributeTypes.attributeTree'?: IAttributeTreeRepo;
|
|
126
132
|
}
|
|
127
133
|
export default function ({ 'core.infra.attributeTypes.attributeSimple': attributeSimpleRepo, 'core.infra.attributeTypes.attributeSimpleLink': attributeSimpleLinkRepo, 'core.infra.attributeTypes.attributeAdvanced': attributeAdvancedRepo, 'core.infra.attributeTypes.attributeAdvancedLink': attributeAdvancedLinkRepo, 'core.infra.attributeTypes.attributeTree': attributeTreeRepo }?: IDeps): IAttributeTypesRepo;
|
|
128
134
|
export {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { GeneratedAqlQuery } from 'arangojs/aql';
|
|
2
2
|
import { AwilixContainer } from 'awilix';
|
|
3
|
-
import { IPluginsRepo } from 'infra/plugins/pluginsRepo';
|
|
4
3
|
import * as winston from 'winston';
|
|
5
4
|
import { IConfig } from '_types/config';
|
|
6
5
|
import { IList, IPaginationParams, ISortParams } from '_types/list';
|
|
@@ -33,8 +32,7 @@ interface IDeps {
|
|
|
33
32
|
'core.infra.db.dbService'?: IDbService;
|
|
34
33
|
'core.infra.cache.cacheService'?: ICachesService;
|
|
35
34
|
'core.utils.logger'?: winston.Winston;
|
|
36
|
-
'core.infra.plugins'?: IPluginsRepo;
|
|
37
35
|
config?: IConfig;
|
|
38
36
|
}
|
|
39
|
-
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.cache.cacheService': cacheService, 'core.utils.logger': logger,
|
|
37
|
+
export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.cache.cacheService': cacheService, 'core.utils.logger': logger, config }?: IDeps): IDbUtils;
|
|
40
38
|
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type IDbService } from '../dbService';
|
|
2
|
+
import { type IMigration } from '../../../_types/migration';
|
|
3
|
+
interface IDeps {
|
|
4
|
+
'core.infra.db.dbService'?: IDbService;
|
|
5
|
+
}
|
|
6
|
+
export default function ({ 'core.infra.db.dbService': dbService }?: IDeps): IMigration;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type i18n } from 'i18next';
|
|
2
|
+
import { type IDbService } from '../dbService';
|
|
3
|
+
import { type IConfig } from '../../../_types/config';
|
|
4
|
+
import { type IMigration } from '../../../_types/migration';
|
|
5
|
+
interface IDeps {
|
|
6
|
+
'core.infra.db.dbService'?: IDbService;
|
|
7
|
+
translator?: i18n;
|
|
8
|
+
config?: IConfig;
|
|
9
|
+
}
|
|
10
|
+
export default function ({ 'core.infra.db.dbService': dbService }?: IDeps): IMigration;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type IDbService } from '../dbService';
|
|
2
|
+
import { type IMigration } from '../../../_types/migration';
|
|
3
|
+
interface IDeps {
|
|
4
|
+
'core.infra.db.dbService'?: IDbService;
|
|
5
|
+
}
|
|
6
|
+
export default function ({ 'core.infra.db.dbService': dbService }?: IDeps): IMigration;
|
|
7
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IQueryInfos } from '_types/queryInfos';
|
|
2
|
-
import { IPermission, IPermissionsTreeTarget, PermissionTypes } from '../../_types/permissions';
|
|
2
|
+
import { IPermission, IPermissionsTreeTarget, PermissionsActions, PermissionTypes } from '../../_types/permissions';
|
|
3
3
|
import { IDbService } from '../db/dbService';
|
|
4
4
|
import { IDbUtils } from '../db/dbUtils';
|
|
5
5
|
export interface IPermissionRepo {
|
|
@@ -14,6 +14,14 @@ export interface IPermissionRepo {
|
|
|
14
14
|
permissionTreeTarget?: IPermissionsTreeTarget;
|
|
15
15
|
ctx: IQueryInfos;
|
|
16
16
|
}): Promise<IPermission | null>;
|
|
17
|
+
getAllPermissionsForTree({ type, applyTo, actionKey, treeId, groupsIds, ctx }: {
|
|
18
|
+
type: PermissionTypes;
|
|
19
|
+
applyTo: string;
|
|
20
|
+
actionKey: PermissionsActions;
|
|
21
|
+
treeId: string;
|
|
22
|
+
groupsIds: string[];
|
|
23
|
+
ctx: IQueryInfos;
|
|
24
|
+
}): Promise<IPermission[]>;
|
|
17
25
|
}
|
|
18
26
|
export declare const PERM_COLLECTION_NAME = "core_permissions";
|
|
19
27
|
export declare const USERS_GROUP_ATTRIBUTE_NAME = "user_groups";
|
|
@@ -11,6 +11,7 @@ import { IDbUtils } from '../db/dbUtils';
|
|
|
11
11
|
import { IFilterTypesHelper } from './helpers/filterTypes';
|
|
12
12
|
import { GetSearchVariableName } from './helpers/getSearchVariableName';
|
|
13
13
|
import { GetSearchVariablesQueryPart } from './helpers/getSearchVariablesQueryPart';
|
|
14
|
+
import { IGetAccessPermissionsValue } from 'domain/record/helpers/getAccessPermissionFilters';
|
|
14
15
|
export interface IFindRequestResult {
|
|
15
16
|
initialVars: GeneratedAqlQuery[];
|
|
16
17
|
queryPart: GeneratedAqlQuery;
|
|
@@ -44,6 +45,7 @@ export interface IRecordRepo {
|
|
|
44
45
|
retrieveInactive?: boolean;
|
|
45
46
|
fulltextSearch?: string;
|
|
46
47
|
ctx: IQueryInfos;
|
|
48
|
+
accessPermissionFilters?: IGetAccessPermissionsValue[];
|
|
47
49
|
}): Promise<IListWithCursor<IRecord>>;
|
|
48
50
|
}
|
|
49
51
|
export interface IRecordRepoDeps {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IDbService } from 'infra/db/dbService';
|
|
2
2
|
import { IAttribute } from '_types/attribute';
|
|
3
3
|
import { IQueryInfos } from '_types/queryInfos';
|
|
4
|
-
import { IValue, IValuesOptions } from '_types/value';
|
|
4
|
+
import { ISaveValue, IValue, IValuesOptions } from '_types/value';
|
|
5
5
|
import { IAttributeTypesRepo, IAttributeWithRevLink } from '../attributeTypes/attributeTypesRepo';
|
|
6
6
|
export declare const VALUES_LINKS_COLLECTION = "core_edge_values_links";
|
|
7
7
|
export declare const VALUES_COLLECTION = "core_values";
|
|
@@ -11,7 +11,7 @@ export interface IValueRepo {
|
|
|
11
11
|
library: string;
|
|
12
12
|
recordId: string;
|
|
13
13
|
attribute: IAttributeWithRevLink;
|
|
14
|
-
value:
|
|
14
|
+
value: ISaveValue;
|
|
15
15
|
ctx: IQueryInfos;
|
|
16
16
|
}): Promise<IValue>;
|
|
17
17
|
/**
|
|
@@ -21,7 +21,7 @@ export interface IValueRepo {
|
|
|
21
21
|
library: string;
|
|
22
22
|
recordId: string;
|
|
23
23
|
attribute: IAttributeWithRevLink;
|
|
24
|
-
value:
|
|
24
|
+
value: ISaveValue;
|
|
25
25
|
ctx: IQueryInfos;
|
|
26
26
|
}): Promise<IValue>;
|
|
27
27
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { AwilixContainer } from 'awilix';
|
|
2
|
-
export declare const initPlugins: (
|
|
2
|
+
export declare const initPlugins: (pluginsPath: string[], depsManager: AwilixContainer) => Promise<void>;
|
|
@@ -79,6 +79,7 @@ export interface IUtils {
|
|
|
79
79
|
getFullApplicationEndpoint(endpoint?: string): string;
|
|
80
80
|
getCoreEntityCacheKey(entityType: string, entityId: string): string;
|
|
81
81
|
getRecordsCacheKey(libraryId: string, recordId: string): string;
|
|
82
|
+
getGlobalSettingsCacheKey(): string;
|
|
82
83
|
generateExplicitValidationError<T>(field: keyof T, message: ErrorFieldDetailMessage, lang?: string): ValidationError<T>;
|
|
83
84
|
deleteFile(path: string): Promise<void>;
|
|
84
85
|
getUnixTime(): number;
|
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aristid/leav-types",
|
|
3
|
-
"version": "0.0.7-
|
|
3
|
+
"version": "0.0.7-e01724a",
|
|
4
4
|
"description": "Shared Leav types",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"tscheck": "",
|
|
7
7
|
"test:ci": "",
|
|
8
8
|
"test:commit": "",
|
|
9
|
-
"publish-types": "npm publish --access public"
|
|
9
|
+
"publish-types": "npm publish --access public",
|
|
10
|
+
"generate": "yarn workspace core tsc --emitDeclarationOnly --declaration --outDir dist-types && mv ../../apps/core/dist-types/* . && rmdir ../../apps/core/dist-types",
|
|
11
|
+
"get-version": "jq -r '.version' package.json",
|
|
12
|
+
"set-version": "jq --arg v $1 '.version = $v' package.json > package.tmp.json && mv package.tmp.json package.json"
|
|
10
13
|
},
|
|
11
14
|
"license": "LGPL3",
|
|
12
15
|
"repository": "https://github.com/leav-solutions/leav-engine",
|