@webiny/api-aco 5.37.8 → 5.38.0-beta.0
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/AcoApp.d.ts +4 -0
- package/apps/AcoApp.js +44 -5
- package/apps/AcoApp.js.map +1 -1
- package/apps/AcoApps.js +3 -1
- package/apps/app.gql.js +6 -4
- package/apps/app.gql.js.map +1 -1
- package/apps/index.js +3 -1
- package/createAcoContext.js +90 -15
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.js +5 -2
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoHooks.js +9 -3
- package/createAcoHooks.js.map +1 -1
- package/createAcoModels.js +5 -2
- package/createAcoModels.js.map +1 -1
- package/createAcoStorageOperations.js +5 -2
- package/createAcoStorageOperations.js.map +1 -1
- package/fields/index.js +3 -1
- package/fields/location.js +3 -1
- package/filter/filter.crud.d.ts +3 -0
- package/filter/filter.crud.js +94 -0
- package/filter/filter.crud.js.map +1 -0
- package/filter/filter.gql.d.ts +3 -0
- package/filter/filter.gql.js +150 -0
- package/filter/filter.gql.js.map +1 -0
- package/filter/filter.model.d.ts +4 -0
- package/filter/filter.model.js +127 -0
- package/filter/filter.model.js.map +1 -0
- package/filter/filter.so.d.ts +3 -0
- package/filter/filter.so.js +96 -0
- package/filter/filter.so.js.map +1 -0
- package/filter/filter.types.d.ts +95 -0
- package/filter/filter.types.js +14 -0
- package/filter/filter.types.js.map +1 -0
- package/folder/folder.crud.d.ts +8 -1
- package/folder/folder.crud.js +197 -15
- package/folder/folder.crud.js.map +1 -1
- package/folder/folder.gql.js +75 -7
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.model.js +49 -3
- package/folder/folder.model.js.map +1 -1
- package/folder/folder.so.js +12 -4
- package/folder/folder.so.js.map +1 -1
- package/folder/folder.types.d.ts +23 -0
- package/folder/folder.types.js +3 -1
- package/folder/folder.types.js.map +1 -1
- package/folder/onFolderBeforeDeleteAco.hook.d.ts +2 -0
- package/folder/{onFolderBeforeDelete.hook.js → onFolderBeforeDeleteAco.hook.js} +8 -6
- package/folder/onFolderBeforeDeleteAco.hook.js.map +1 -0
- package/folder/onFolderBeforeDeleteFm.hook.d.ts +2 -0
- package/folder/onFolderBeforeDeleteFm.hook.js +49 -0
- package/folder/onFolderBeforeDeleteFm.hook.js.map +1 -0
- package/folder/onFolderBeforeDeleteHcms.hook.d.ts +2 -0
- package/folder/onFolderBeforeDeleteHcms.hook.js +56 -0
- package/folder/onFolderBeforeDeleteHcms.hook.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +12 -2
- package/index.js.map +1 -1
- package/package.json +25 -20
- package/plugins/AcoAppModifierPlugin.js +3 -1
- package/plugins/AcoAppRegisterPlugin.js +3 -1
- package/plugins/index.js +3 -1
- package/record/graphql/createAppResolvers.js +11 -9
- package/record/graphql/createAppResolvers.js.map +1 -1
- package/record/graphql/createAppSchema.js +3 -1
- package/record/record.crud.js +3 -1
- package/record/record.gql.js +3 -1
- package/record/record.model.js +3 -1
- package/record/record.so.js +3 -1
- package/record/record.types.d.ts +2 -1
- package/record/record.types.js +3 -1
- package/record/record.types.js.map +1 -1
- package/types.d.ts +19 -5
- package/types.js +16 -1
- package/types.js.map +1 -1
- package/utils/FolderLevelPermissions.d.ts +65 -0
- package/utils/FolderLevelPermissions.js +355 -0
- package/utils/FolderLevelPermissions.js.map +1 -0
- package/utils/acoRecordId.js +3 -1
- package/utils/createListSort.js +3 -1
- package/utils/createModelField.js +3 -1
- package/utils/createOperationsWrapper.js +3 -1
- package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js +175 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
- package/utils/ensureAuthentication.d.ts +2 -0
- package/utils/{checkPermissions.js → ensureAuthentication.js} +5 -3
- package/utils/ensureAuthentication.js.map +1 -0
- package/utils/fieldResolver.js +3 -1
- package/utils/getFieldValues.d.ts +2 -0
- package/utils/getFieldValues.js +9 -1
- package/utils/getFieldValues.js.map +1 -1
- package/utils/getFolderAndItsAncestors.d.ts +2 -2
- package/utils/getFolderAndItsAncestors.js +16 -11
- package/utils/getFolderAndItsAncestors.js.map +1 -1
- package/utils/isInstallationPending.js +3 -1
- package/utils/modelFactory.js +3 -1
- package/utils/resolve.js +3 -1
- package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
- package/folder/onFolderBeforeDelete.hook.js.map +0 -1
- package/utils/checkPermissions.d.ts +0 -2
- package/utils/checkPermissions.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFilterCrudMethods = void 0;
|
|
7
|
+
var _pubsub = require("@webiny/pubsub");
|
|
8
|
+
const createFilterCrudMethods = ({
|
|
9
|
+
storageOperations
|
|
10
|
+
}) => {
|
|
11
|
+
// create
|
|
12
|
+
const onFilterBeforeCreate = (0, _pubsub.createTopic)("aco.onFilterBeforeCreate");
|
|
13
|
+
const onFilterAfterCreate = (0, _pubsub.createTopic)("aco.onFilterAfterCreate");
|
|
14
|
+
// update
|
|
15
|
+
const onFilterBeforeUpdate = (0, _pubsub.createTopic)("aco.onFilterBeforeUpdate");
|
|
16
|
+
const onFilterAfterUpdate = (0, _pubsub.createTopic)("aco.onFilterAfterUpdate");
|
|
17
|
+
// delete
|
|
18
|
+
const onFilterBeforeDelete = (0, _pubsub.createTopic)("aco.onFilterBeforeDelete");
|
|
19
|
+
const onFilterAfterDelete = (0, _pubsub.createTopic)("aco.onFilterAfterDelete");
|
|
20
|
+
return {
|
|
21
|
+
/**
|
|
22
|
+
* Lifecycle events
|
|
23
|
+
*/
|
|
24
|
+
onFilterBeforeCreate,
|
|
25
|
+
onFilterAfterCreate,
|
|
26
|
+
onFilterBeforeUpdate,
|
|
27
|
+
onFilterAfterUpdate,
|
|
28
|
+
onFilterBeforeDelete,
|
|
29
|
+
onFilterAfterDelete,
|
|
30
|
+
async get(id) {
|
|
31
|
+
return storageOperations.getFilter({
|
|
32
|
+
id
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
async list(params) {
|
|
36
|
+
return storageOperations.listFilters(params);
|
|
37
|
+
},
|
|
38
|
+
async create(data) {
|
|
39
|
+
await onFilterBeforeCreate.publish({
|
|
40
|
+
input: data
|
|
41
|
+
});
|
|
42
|
+
const filter = await storageOperations.createFilter({
|
|
43
|
+
data
|
|
44
|
+
});
|
|
45
|
+
await onFilterAfterCreate.publish({
|
|
46
|
+
filter
|
|
47
|
+
});
|
|
48
|
+
return filter;
|
|
49
|
+
},
|
|
50
|
+
async update(id, data) {
|
|
51
|
+
const original = await storageOperations.getFilter({
|
|
52
|
+
id
|
|
53
|
+
});
|
|
54
|
+
await onFilterBeforeUpdate.publish({
|
|
55
|
+
original,
|
|
56
|
+
input: {
|
|
57
|
+
id,
|
|
58
|
+
data
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
const filter = await storageOperations.updateFilter({
|
|
62
|
+
id,
|
|
63
|
+
data
|
|
64
|
+
});
|
|
65
|
+
await onFilterAfterUpdate.publish({
|
|
66
|
+
original,
|
|
67
|
+
input: {
|
|
68
|
+
id,
|
|
69
|
+
data
|
|
70
|
+
},
|
|
71
|
+
filter
|
|
72
|
+
});
|
|
73
|
+
return filter;
|
|
74
|
+
},
|
|
75
|
+
async delete(id) {
|
|
76
|
+
const filter = await storageOperations.getFilter({
|
|
77
|
+
id
|
|
78
|
+
});
|
|
79
|
+
await onFilterBeforeDelete.publish({
|
|
80
|
+
filter
|
|
81
|
+
});
|
|
82
|
+
await storageOperations.deleteFilter({
|
|
83
|
+
id
|
|
84
|
+
});
|
|
85
|
+
await onFilterAfterDelete.publish({
|
|
86
|
+
filter
|
|
87
|
+
});
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
exports.createFilterCrudMethods = createFilterCrudMethods;
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=filter.crud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_pubsub","require","createFilterCrudMethods","storageOperations","onFilterBeforeCreate","createTopic","onFilterAfterCreate","onFilterBeforeUpdate","onFilterAfterUpdate","onFilterBeforeDelete","onFilterAfterDelete","get","id","getFilter","list","params","listFilters","create","data","publish","input","filter","createFilter","update","original","updateFilter","delete","deleteFilter","exports"],"sources":["filter.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\n\nimport { CreateAcoParams } from \"~/types\";\nimport {\n AcoFilterCrud,\n OnFilterAfterCreateTopicParams,\n OnFilterAfterDeleteTopicParams,\n OnFilterAfterUpdateTopicParams,\n OnFilterBeforeCreateTopicParams,\n OnFilterBeforeDeleteTopicParams,\n OnFilterBeforeUpdateTopicParams\n} from \"./filter.types\";\n\nexport const createFilterCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFilterCrud => {\n // create\n const onFilterBeforeCreate = createTopic<OnFilterBeforeCreateTopicParams>(\n \"aco.onFilterBeforeCreate\"\n );\n const onFilterAfterCreate =\n createTopic<OnFilterAfterCreateTopicParams>(\"aco.onFilterAfterCreate\");\n // update\n const onFilterBeforeUpdate = createTopic<OnFilterBeforeUpdateTopicParams>(\n \"aco.onFilterBeforeUpdate\"\n );\n const onFilterAfterUpdate =\n createTopic<OnFilterAfterUpdateTopicParams>(\"aco.onFilterAfterUpdate\");\n // delete\n const onFilterBeforeDelete = createTopic<OnFilterBeforeDeleteTopicParams>(\n \"aco.onFilterBeforeDelete\"\n );\n const onFilterAfterDelete =\n createTopic<OnFilterAfterDeleteTopicParams>(\"aco.onFilterAfterDelete\");\n\n return {\n /**\n * Lifecycle events\n */\n onFilterBeforeCreate,\n onFilterAfterCreate,\n onFilterBeforeUpdate,\n onFilterAfterUpdate,\n onFilterBeforeDelete,\n onFilterAfterDelete,\n async get(id) {\n return storageOperations.getFilter({ id });\n },\n async list(params) {\n return storageOperations.listFilters(params);\n },\n async create(data) {\n await onFilterBeforeCreate.publish({ input: data });\n const filter = await storageOperations.createFilter({ data });\n await onFilterAfterCreate.publish({ filter });\n return filter;\n },\n async update(id, data) {\n const original = await storageOperations.getFilter({ id });\n await onFilterBeforeUpdate.publish({ original, input: { id, data } });\n const filter = await storageOperations.updateFilter({ id, data });\n await onFilterAfterUpdate.publish({ original, input: { id, data }, filter });\n return filter;\n },\n async delete(id: string) {\n const filter = await storageOperations.getFilter({ id });\n await onFilterBeforeDelete.publish({ filter });\n await storageOperations.deleteFilter({ id });\n await onFilterAfterDelete.publish({ filter });\n return true;\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAaO,MAAMC,uBAAuB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAoB;EAC9F;EACA,MAAMC,oBAAoB,GAAG,IAAAC,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMC,mBAAmB,GACrB,IAAAD,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAME,oBAAoB,GAAG,IAAAF,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMG,mBAAmB,GACrB,IAAAH,mBAAW,EAAiC,yBAAyB,CAAC;EAC1E;EACA,MAAMI,oBAAoB,GAAG,IAAAJ,mBAAW,EACpC,0BACJ,CAAC;EACD,MAAMK,mBAAmB,GACrB,IAAAL,mBAAW,EAAiC,yBAAyB,CAAC;EAE1E,OAAO;IACH;AACR;AACA;IACQD,oBAAoB;IACpBE,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnBC,oBAAoB;IACpBC,mBAAmB;IACnB,MAAMC,GAAGA,CAACC,EAAE,EAAE;MACV,OAAOT,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;IAC9C,CAAC;IACD,MAAME,IAAIA,CAACC,MAAM,EAAE;MACf,OAAOZ,iBAAiB,CAACa,WAAW,CAACD,MAAM,CAAC;IAChD,CAAC;IACD,MAAME,MAAMA,CAACC,IAAI,EAAE;MACf,MAAMd,oBAAoB,CAACe,OAAO,CAAC;QAAEC,KAAK,EAAEF;MAAK,CAAC,CAAC;MACnD,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACmB,YAAY,CAAC;QAAEJ;MAAK,CAAC,CAAC;MAC7D,MAAMZ,mBAAmB,CAACa,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC7C,OAAOA,MAAM;IACjB,CAAC;IACD,MAAME,MAAMA,CAACX,EAAE,EAAEM,IAAI,EAAE;MACnB,MAAMM,QAAQ,GAAG,MAAMrB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MAC1D,MAAML,oBAAoB,CAACY,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK;MAAE,CAAC,CAAC;MACrE,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACsB,YAAY,CAAC;QAAEb,EAAE;QAAEM;MAAK,CAAC,CAAC;MACjE,MAAMV,mBAAmB,CAACW,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK,CAAC;QAAEG;MAAO,CAAC,CAAC;MAC5E,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMK,MAAMA,CAACd,EAAU,EAAE;MACrB,MAAMS,MAAM,GAAG,MAAMlB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MACxD,MAAMH,oBAAoB,CAACU,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC9C,MAAMlB,iBAAiB,CAACwB,YAAY,CAAC;QAAEf;MAAG,CAAC,CAAC;MAC5C,MAAMF,mBAAmB,CAACS,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MAC7C,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC;AAACO,OAAA,CAAA1B,uBAAA,GAAAA,uBAAA"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.filterSchema = void 0;
|
|
7
|
+
var _responses = require("@webiny/handler-graphql/responses");
|
|
8
|
+
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
9
|
+
var _ensureAuthentication = require("../utils/ensureAuthentication");
|
|
10
|
+
var _resolve = require("../utils/resolve");
|
|
11
|
+
const filterSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
12
|
+
typeDefs: /* GraphQL */`
|
|
13
|
+
enum OperationEnum {
|
|
14
|
+
AND
|
|
15
|
+
OR
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type GroupFilter {
|
|
19
|
+
field: String!
|
|
20
|
+
condition: String!
|
|
21
|
+
value: String!
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type Group {
|
|
25
|
+
operation: OperationEnum!
|
|
26
|
+
filters: [GroupFilter]!
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
type Filter {
|
|
30
|
+
id: ID!
|
|
31
|
+
name: String!
|
|
32
|
+
description: String
|
|
33
|
+
namespace: String!
|
|
34
|
+
operation: OperationEnum!
|
|
35
|
+
groups: [Group]!
|
|
36
|
+
savedOn: DateTime
|
|
37
|
+
createdOn: DateTime
|
|
38
|
+
createdBy: AcoUser
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
input GroupFilterInput {
|
|
42
|
+
field: String!
|
|
43
|
+
condition: String!
|
|
44
|
+
value: String!
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
input GroupInput {
|
|
48
|
+
operation: OperationEnum!
|
|
49
|
+
filters: [GroupFilterInput]!
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
input FilterCreateInput {
|
|
53
|
+
id: ID!
|
|
54
|
+
name: String!
|
|
55
|
+
description: String
|
|
56
|
+
namespace: String!
|
|
57
|
+
operation: OperationEnum!
|
|
58
|
+
groups: [GroupInput]!
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
input FilterUpdateInput {
|
|
62
|
+
name: String
|
|
63
|
+
description: String
|
|
64
|
+
namespace: String
|
|
65
|
+
operation: OperationEnum
|
|
66
|
+
groups: [GroupInput]
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
input FiltersListWhereInput {
|
|
70
|
+
namespace: String
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
type FilterResponse {
|
|
74
|
+
data: Filter
|
|
75
|
+
error: AcoError
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
type FilterListResponse {
|
|
79
|
+
data: [Filter]
|
|
80
|
+
error: AcoError
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
extend type AcoQuery {
|
|
84
|
+
getFilter(id: ID!): FilterResponse
|
|
85
|
+
listFilters(
|
|
86
|
+
where: FiltersListWhereInput!
|
|
87
|
+
limit: Int
|
|
88
|
+
after: String
|
|
89
|
+
sort: AcoSort
|
|
90
|
+
): FilterListResponse
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
extend type AcoMutation {
|
|
94
|
+
createFilter(data: FilterCreateInput!): FilterResponse
|
|
95
|
+
updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse
|
|
96
|
+
deleteFilter(id: ID!): AcoBooleanResponse
|
|
97
|
+
}
|
|
98
|
+
`,
|
|
99
|
+
resolvers: {
|
|
100
|
+
AcoQuery: {
|
|
101
|
+
getFilter: async (_, {
|
|
102
|
+
id
|
|
103
|
+
}, context) => {
|
|
104
|
+
return (0, _resolve.resolve)(() => {
|
|
105
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
106
|
+
return context.aco.filter.get(id);
|
|
107
|
+
});
|
|
108
|
+
},
|
|
109
|
+
listFilters: async (_, args, context) => {
|
|
110
|
+
try {
|
|
111
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
112
|
+
const [entries, meta] = await context.aco.filter.list(args);
|
|
113
|
+
return new _responses.ListResponse(entries, meta);
|
|
114
|
+
} catch (e) {
|
|
115
|
+
return new _responses.ErrorResponse(e);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
AcoMutation: {
|
|
120
|
+
createFilter: async (_, {
|
|
121
|
+
data
|
|
122
|
+
}, context) => {
|
|
123
|
+
return (0, _resolve.resolve)(() => {
|
|
124
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
125
|
+
return context.aco.filter.create(data);
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
updateFilter: async (_, {
|
|
129
|
+
id,
|
|
130
|
+
data
|
|
131
|
+
}, context) => {
|
|
132
|
+
return (0, _resolve.resolve)(() => {
|
|
133
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
134
|
+
return context.aco.filter.update(id, data);
|
|
135
|
+
});
|
|
136
|
+
},
|
|
137
|
+
deleteFilter: async (_, {
|
|
138
|
+
id
|
|
139
|
+
}, context) => {
|
|
140
|
+
return (0, _resolve.resolve)(() => {
|
|
141
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
142
|
+
return context.aco.filter.delete(id);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
exports.filterSchema = filterSchema;
|
|
149
|
+
|
|
150
|
+
//# sourceMappingURL=filter.gql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_ensureAuthentication","_resolve","filterSchema","GraphQLSchemaPlugin","typeDefs","resolvers","AcoQuery","getFilter","_","id","context","resolve","ensureAuthentication","aco","filter","get","listFilters","args","entries","meta","list","ListResponse","e","ErrorResponse","AcoMutation","createFilter","data","create","updateFilter","update","deleteFilter","delete","exports"],"sources":["filter.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\n\nexport const filterSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n enum OperationEnum {\n AND\n OR\n }\n\n type GroupFilter {\n field: String!\n condition: String!\n value: String!\n }\n\n type Group {\n operation: OperationEnum!\n filters: [GroupFilter]!\n }\n\n type Filter {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [Group]!\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n input GroupFilterInput {\n field: String!\n condition: String!\n value: String!\n }\n\n input GroupInput {\n operation: OperationEnum!\n filters: [GroupFilterInput]!\n }\n\n input FilterCreateInput {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [GroupInput]!\n }\n\n input FilterUpdateInput {\n name: String\n description: String\n namespace: String\n operation: OperationEnum\n groups: [GroupInput]\n }\n\n input FiltersListWhereInput {\n namespace: String\n }\n\n type FilterResponse {\n data: Filter\n error: AcoError\n }\n\n type FilterListResponse {\n data: [Filter]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFilter(id: ID!): FilterResponse\n listFilters(\n where: FiltersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FilterListResponse\n }\n\n extend type AcoMutation {\n createFilter(data: FilterCreateInput!): FilterResponse\n updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse\n deleteFilter(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.get(id);\n });\n },\n listFilters: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.filter.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFilter: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.create(data);\n });\n },\n updateFilter: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.update(id, data);\n });\n },\n deleteFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
|
|
2
|
+
export declare type FilterModelDefinition = Omit<CmsPrivateModelFull, "noValidate" | "group">;
|
|
3
|
+
export declare const FILTER_MODEL_ID = "acoFilter";
|
|
4
|
+
export declare const createFilterModelDefinition: () => FilterModelDefinition;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFilterModelDefinition = exports.FILTER_MODEL_ID = void 0;
|
|
7
|
+
var _createModelField = require("../utils/createModelField");
|
|
8
|
+
const name = () => (0, _createModelField.createModelField)({
|
|
9
|
+
label: "Name",
|
|
10
|
+
fieldId: "name",
|
|
11
|
+
type: "text",
|
|
12
|
+
validation: [{
|
|
13
|
+
name: "required",
|
|
14
|
+
message: "Value is required."
|
|
15
|
+
}]
|
|
16
|
+
});
|
|
17
|
+
const description = () => (0, _createModelField.createModelField)({
|
|
18
|
+
label: "Description",
|
|
19
|
+
fieldId: "description",
|
|
20
|
+
type: "text"
|
|
21
|
+
});
|
|
22
|
+
const namespace = () => (0, _createModelField.createModelField)({
|
|
23
|
+
label: "Model Id",
|
|
24
|
+
fieldId: "namespace",
|
|
25
|
+
type: "text",
|
|
26
|
+
validation: [{
|
|
27
|
+
name: "required",
|
|
28
|
+
message: "Value is required."
|
|
29
|
+
}]
|
|
30
|
+
});
|
|
31
|
+
const operation = () => (0, _createModelField.createModelField)({
|
|
32
|
+
label: "Operation",
|
|
33
|
+
fieldId: "operation",
|
|
34
|
+
type: "text",
|
|
35
|
+
predefinedValues: {
|
|
36
|
+
enabled: true,
|
|
37
|
+
values: [{
|
|
38
|
+
label: "AND",
|
|
39
|
+
value: "AND"
|
|
40
|
+
}, {
|
|
41
|
+
label: "OR",
|
|
42
|
+
value: "OR"
|
|
43
|
+
}]
|
|
44
|
+
},
|
|
45
|
+
multipleValues: false,
|
|
46
|
+
validation: [{
|
|
47
|
+
name: "required",
|
|
48
|
+
message: "Value is required."
|
|
49
|
+
}]
|
|
50
|
+
});
|
|
51
|
+
const groups = fields => (0, _createModelField.createModelField)({
|
|
52
|
+
label: "Groups",
|
|
53
|
+
fieldId: "groups",
|
|
54
|
+
type: "object",
|
|
55
|
+
multipleValues: true,
|
|
56
|
+
settings: {
|
|
57
|
+
fields,
|
|
58
|
+
layout: fields.map(field => [field.storageId])
|
|
59
|
+
},
|
|
60
|
+
listValidation: [{
|
|
61
|
+
name: "minLength",
|
|
62
|
+
message: "At least one group is required.",
|
|
63
|
+
settings: {
|
|
64
|
+
value: "1"
|
|
65
|
+
}
|
|
66
|
+
}]
|
|
67
|
+
});
|
|
68
|
+
const filters = fields => (0, _createModelField.createModelField)({
|
|
69
|
+
label: "Filters",
|
|
70
|
+
fieldId: "filters",
|
|
71
|
+
type: "object",
|
|
72
|
+
multipleValues: true,
|
|
73
|
+
settings: {
|
|
74
|
+
fields,
|
|
75
|
+
layout: fields.map(field => [field.storageId])
|
|
76
|
+
},
|
|
77
|
+
listValidation: [{
|
|
78
|
+
name: "minLength",
|
|
79
|
+
message: "At least one filter is required.",
|
|
80
|
+
settings: {
|
|
81
|
+
value: "1"
|
|
82
|
+
}
|
|
83
|
+
}]
|
|
84
|
+
});
|
|
85
|
+
const field = () => (0, _createModelField.createModelField)({
|
|
86
|
+
label: "Field",
|
|
87
|
+
fieldId: "field",
|
|
88
|
+
type: "text",
|
|
89
|
+
validation: [{
|
|
90
|
+
name: "required",
|
|
91
|
+
message: "Value is required."
|
|
92
|
+
}]
|
|
93
|
+
});
|
|
94
|
+
const condition = () => (0, _createModelField.createModelField)({
|
|
95
|
+
label: "Condition",
|
|
96
|
+
fieldId: "condition",
|
|
97
|
+
type: "text",
|
|
98
|
+
validation: [{
|
|
99
|
+
name: "required",
|
|
100
|
+
message: "Value is required."
|
|
101
|
+
}]
|
|
102
|
+
});
|
|
103
|
+
const value = () => (0, _createModelField.createModelField)({
|
|
104
|
+
label: "Value",
|
|
105
|
+
fieldId: "value",
|
|
106
|
+
type: "text",
|
|
107
|
+
validation: [{
|
|
108
|
+
name: "required",
|
|
109
|
+
message: "Value is required."
|
|
110
|
+
}]
|
|
111
|
+
});
|
|
112
|
+
const FILTER_MODEL_ID = "acoFilter";
|
|
113
|
+
exports.FILTER_MODEL_ID = FILTER_MODEL_ID;
|
|
114
|
+
const createFilterModelDefinition = () => {
|
|
115
|
+
return {
|
|
116
|
+
name: "ACO - Filter",
|
|
117
|
+
modelId: FILTER_MODEL_ID,
|
|
118
|
+
titleFieldId: "name",
|
|
119
|
+
layout: [["name"], ["description"], ["namespace"], ["operation"], ["groups"]],
|
|
120
|
+
fields: [name(), description(), namespace(), operation(), groups([operation(), filters([field(), condition(), value()])])],
|
|
121
|
+
description: "ACO - Filter content model",
|
|
122
|
+
isPrivate: true
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
exports.createFilterModelDefinition = createFilterModelDefinition;
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=filter.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_createModelField","require","name","createModelField","label","fieldId","type","validation","message","description","namespace","operation","predefinedValues","enabled","values","value","multipleValues","groups","fields","settings","layout","map","field","storageId","listValidation","filters","condition","FILTER_MODEL_ID","exports","createFilterModelDefinition","modelId","titleFieldId","isPrivate"],"sources":["filter.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\nexport type FilterModelDefinition = Omit<CmsPrivateModelFull, \"noValidate\" | \"group\">;\n\nconst name = () =>\n createModelField({\n label: \"Name\",\n fieldId: \"name\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst description = () =>\n createModelField({\n label: \"Description\",\n fieldId: \"description\",\n type: \"text\"\n });\n\nconst namespace = () =>\n createModelField({\n label: \"Model Id\",\n fieldId: \"namespace\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst operation = () =>\n createModelField({\n label: \"Operation\",\n fieldId: \"operation\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"AND\",\n value: \"AND\"\n },\n {\n label: \"OR\",\n value: \"OR\"\n }\n ]\n },\n multipleValues: false,\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst groups = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Groups\",\n fieldId: \"groups\",\n type: \"object\",\n multipleValues: true,\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"At least one group is required.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst filters = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Filters\",\n fieldId: \"filters\",\n type: \"object\",\n multipleValues: true,\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"At least one filter is required.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst field = () =>\n createModelField({\n label: \"Field\",\n fieldId: \"field\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst condition = () =>\n createModelField({\n label: \"Condition\",\n fieldId: \"condition\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst value = () =>\n createModelField({\n label: \"Value\",\n fieldId: \"value\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nexport const FILTER_MODEL_ID = \"acoFilter\";\n\nexport const createFilterModelDefinition = (): FilterModelDefinition => {\n return {\n name: \"ACO - Filter\",\n modelId: FILTER_MODEL_ID,\n titleFieldId: \"name\",\n layout: [[\"name\"], [\"description\"], [\"namespace\"], [\"operation\"], [\"groups\"]],\n fields: [\n name(),\n description(),\n namespace(),\n operation(),\n groups([operation(), filters([field(), condition(), value()])])\n ],\n description: \"ACO - Filter content model\",\n isPrivate: true\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createFilterOperations = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
|
+
var _filter = require("./filter.model");
|
|
11
|
+
var _createAcoStorageOperations = require("../createAcoStorageOperations");
|
|
12
|
+
var _createListSort = require("../utils/createListSort");
|
|
13
|
+
var _createOperationsWrapper = require("../utils/createOperationsWrapper");
|
|
14
|
+
var _getFieldValues = require("../utils/getFieldValues");
|
|
15
|
+
const createFilterOperations = params => {
|
|
16
|
+
const {
|
|
17
|
+
cms,
|
|
18
|
+
security
|
|
19
|
+
} = params;
|
|
20
|
+
const {
|
|
21
|
+
withModel
|
|
22
|
+
} = (0, _createOperationsWrapper.createOperationsWrapper)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
23
|
+
modelName: _filter.FILTER_MODEL_ID
|
|
24
|
+
}));
|
|
25
|
+
return {
|
|
26
|
+
getFilter({
|
|
27
|
+
id
|
|
28
|
+
}) {
|
|
29
|
+
return withModel(async model => {
|
|
30
|
+
const entry = await cms.getEntry(model, {
|
|
31
|
+
where: {
|
|
32
|
+
entryId: id,
|
|
33
|
+
latest: true
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
if (!entry) {
|
|
37
|
+
throw new _error.default("Could not load filter.", "GET_FILTER_ERROR", {
|
|
38
|
+
id
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return (0, _getFieldValues.getFilterFieldValues)(entry, _createAcoStorageOperations.baseFields);
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
listFilters(params) {
|
|
45
|
+
return withModel(async model => {
|
|
46
|
+
const {
|
|
47
|
+
sort,
|
|
48
|
+
where
|
|
49
|
+
} = params;
|
|
50
|
+
const createdBy = security.getIdentity().id;
|
|
51
|
+
const [entries, meta] = await cms.listLatestEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
52
|
+
sort: (0, _createListSort.createListSort)(sort),
|
|
53
|
+
where: (0, _objectSpread2.default)({}, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where), {}, {
|
|
54
|
+
createdBy
|
|
55
|
+
}) || {})
|
|
56
|
+
}));
|
|
57
|
+
return [entries.map(entry => (0, _getFieldValues.getFilterFieldValues)(entry, _createAcoStorageOperations.baseFields)), meta];
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
createFilter({
|
|
61
|
+
data
|
|
62
|
+
}) {
|
|
63
|
+
return withModel(async model => {
|
|
64
|
+
const entry = await cms.createEntry(model, data);
|
|
65
|
+
return (0, _getFieldValues.getFilterFieldValues)(entry, _createAcoStorageOperations.baseFields);
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
updateFilter({
|
|
69
|
+
id,
|
|
70
|
+
data
|
|
71
|
+
}) {
|
|
72
|
+
return withModel(async model => {
|
|
73
|
+
const original = await cms.getEntry(model, {
|
|
74
|
+
where: {
|
|
75
|
+
entryId: id,
|
|
76
|
+
latest: true
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
const input = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
|
|
80
|
+
const entry = await cms.updateEntry(model, original.id, input);
|
|
81
|
+
return (0, _getFieldValues.getFilterFieldValues)(entry, _createAcoStorageOperations.baseFields);
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
deleteFilter({
|
|
85
|
+
id
|
|
86
|
+
}) {
|
|
87
|
+
return withModel(async model => {
|
|
88
|
+
await cms.deleteEntry(model, id);
|
|
89
|
+
return true;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
exports.createFilterOperations = createFilterOperations;
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=filter.so.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_filter","_createAcoStorageOperations","_createListSort","_createOperationsWrapper","_getFieldValues","createFilterOperations","params","cms","security","withModel","createOperationsWrapper","_objectSpread2","default","modelName","FILTER_MODEL_ID","getFilter","id","model","entry","getEntry","where","entryId","latest","WebinyError","getFilterFieldValues","baseFields","listFilters","sort","createdBy","getIdentity","entries","meta","listLatestEntries","createListSort","map","createFilter","data","createEntry","updateFilter","original","input","updateEntry","deleteFilter","deleteEntry","exports"],"sources":["filter.so.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nimport { FILTER_MODEL_ID } from \"./filter.model\";\nimport { baseFields, CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { getFilterFieldValues } from \"~/utils/getFieldValues\";\n\nimport { AcoFilterStorageOperations } from \"./filter.types\";\n\nexport const createFilterOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFilterStorageOperations => {\n const { cms, security } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FILTER_MODEL_ID\n });\n\n return {\n getFilter({ id }) {\n return withModel(async model => {\n const entry = await cms.getEntry(model, { where: { entryId: id, latest: true } });\n\n if (!entry) {\n throw new WebinyError(\"Could not load filter.\", \"GET_FILTER_ERROR\", {\n id\n });\n }\n\n return getFilterFieldValues(entry, baseFields);\n });\n },\n listFilters(params) {\n return withModel(async model => {\n const { sort, where } = params;\n const createdBy = security.getIdentity().id;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...({ ...where, createdBy } || {})\n }\n });\n\n return [entries.map(entry => getFilterFieldValues(entry, baseFields)), meta];\n });\n },\n createFilter({ data }) {\n return withModel(async model => {\n const entry = await cms.createEntry(model, data);\n return getFilterFieldValues(entry, baseFields);\n });\n },\n updateFilter({ id, data }) {\n return withModel(async model => {\n const original = await cms.getEntry(model, {\n where: { entryId: id, latest: true }\n });\n\n const input = {\n ...original,\n ...data\n };\n\n const entry = await cms.updateEntry(model, original.id, input);\n return getFilterFieldValues(entry, baseFields);\n });\n },\n deleteFilter({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAIO,MAAMM,sBAAsB,GAC/BC,MAAwC,IACX;EAC7B,MAAM;IAAEC,GAAG;IAAEC;EAAS,CAAC,GAAGF,MAAM;EAEhC,MAAM;IAAEG;EAAU,CAAC,GAAG,IAAAC,gDAAuB,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACtCN,MAAM;IACTO,SAAS,EAAEC;EAAe,EAC7B,CAAC;EAEF,OAAO;IACHC,SAASA,CAAC;MAAEC;IAAG,CAAC,EAAE;MACd,OAAOP,SAAS,CAAC,MAAMQ,KAAK,IAAI;QAC5B,MAAMC,KAAK,GAAG,MAAMX,GAAG,CAACY,QAAQ,CAACF,KAAK,EAAE;UAAEG,KAAK,EAAE;YAAEC,OAAO,EAAEL,EAAE;YAAEM,MAAM,EAAE;UAAK;QAAE,CAAC,CAAC;QAEjF,IAAI,CAACJ,KAAK,EAAE;UACR,MAAM,IAAIK,cAAW,CAAC,wBAAwB,EAAE,kBAAkB,EAAE;YAChEP;UACJ,CAAC,CAAC;QACN;QAEA,OAAO,IAAAQ,oCAAoB,EAACN,KAAK,EAAEO,sCAAU,CAAC;MAClD,CAAC,CAAC;IACN,CAAC;IACDC,WAAWA,CAACpB,MAAM,EAAE;MAChB,OAAOG,SAAS,CAAC,MAAMQ,KAAK,IAAI;QAC5B,MAAM;UAAEU,IAAI;UAAEP;QAAM,CAAC,GAAGd,MAAM;QAC9B,MAAMsB,SAAS,GAAGpB,QAAQ,CAACqB,WAAW,CAAC,CAAC,CAACb,EAAE;QAE3C,MAAM,CAACc,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMxB,GAAG,CAACyB,iBAAiB,CAACf,KAAK,MAAAN,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAClDN,MAAM;UACTqB,IAAI,EAAE,IAAAM,8BAAc,EAACN,IAAI,CAAC;UAC1BP,KAAK,MAAAT,cAAA,CAAAC,OAAA,MACG,IAAAD,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAKQ,KAAK;YAAEQ;UAAS,MAAM,CAAC,CAAC;QACpC,EACJ,CAAC;QAEF,OAAO,CAACE,OAAO,CAACI,GAAG,CAAChB,KAAK,IAAI,IAAAM,oCAAoB,EAACN,KAAK,EAAEO,sCAAU,CAAC,CAAC,EAAEM,IAAI,CAAC;MAChF,CAAC,CAAC;IACN,CAAC;IACDI,YAAYA,CAAC;MAAEC;IAAK,CAAC,EAAE;MACnB,OAAO3B,SAAS,CAAC,MAAMQ,KAAK,IAAI;QAC5B,MAAMC,KAAK,GAAG,MAAMX,GAAG,CAAC8B,WAAW,CAACpB,KAAK,EAAEmB,IAAI,CAAC;QAChD,OAAO,IAAAZ,oCAAoB,EAACN,KAAK,EAAEO,sCAAU,CAAC;MAClD,CAAC,CAAC;IACN,CAAC;IACDa,YAAYA,CAAC;MAAEtB,EAAE;MAAEoB;IAAK,CAAC,EAAE;MACvB,OAAO3B,SAAS,CAAC,MAAMQ,KAAK,IAAI;QAC5B,MAAMsB,QAAQ,GAAG,MAAMhC,GAAG,CAACY,QAAQ,CAACF,KAAK,EAAE;UACvCG,KAAK,EAAE;YAAEC,OAAO,EAAEL,EAAE;YAAEM,MAAM,EAAE;UAAK;QACvC,CAAC,CAAC;QAEF,MAAMkB,KAAK,OAAA7B,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACJ2B,QAAQ,GACRH,IAAI,CACV;QAED,MAAMlB,KAAK,GAAG,MAAMX,GAAG,CAACkC,WAAW,CAACxB,KAAK,EAAEsB,QAAQ,CAACvB,EAAE,EAAEwB,KAAK,CAAC;QAC9D,OAAO,IAAAhB,oCAAoB,EAACN,KAAK,EAAEO,sCAAU,CAAC;MAClD,CAAC,CAAC;IACN,CAAC;IACDiB,YAAYA,CAAC;MAAE1B;IAAG,CAAC,EAAE;MACjB,OAAOP,SAAS,CAAC,MAAMQ,KAAK,IAAI;QAC5B,MAAMV,GAAG,CAACoC,WAAW,CAAC1B,KAAK,EAAED,EAAE,CAAC;QAChC,OAAO,IAAI;MACf,CAAC,CAAC;IACN;EACJ,CAAC;AACL,CAAC;AAAC4B,OAAA,CAAAvC,sBAAA,GAAAA,sBAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { AcoBaseFields, ListMeta, ListSort } from "../types";
|
|
2
|
+
import { Topic } from "@webiny/pubsub/types";
|
|
3
|
+
export declare enum Operation {
|
|
4
|
+
AND = "AND",
|
|
5
|
+
OR = "OR"
|
|
6
|
+
}
|
|
7
|
+
export interface GroupFilter {
|
|
8
|
+
field: string;
|
|
9
|
+
condition: string;
|
|
10
|
+
value: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Group {
|
|
13
|
+
operation: Operation;
|
|
14
|
+
filters: GroupFilter[];
|
|
15
|
+
}
|
|
16
|
+
export interface Filter extends AcoBaseFields {
|
|
17
|
+
name: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
namespace: string;
|
|
20
|
+
operation: Operation;
|
|
21
|
+
groups: Group[];
|
|
22
|
+
}
|
|
23
|
+
export interface ListFiltersWhere {
|
|
24
|
+
namespace: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ListFiltersParams {
|
|
27
|
+
where: ListFiltersWhere;
|
|
28
|
+
sort?: ListSort;
|
|
29
|
+
limit?: number;
|
|
30
|
+
after?: string | null;
|
|
31
|
+
}
|
|
32
|
+
export declare type CreateFilterParams = Pick<Filter, "id" | "name" | "description" | "namespace" | "operation" | "groups">;
|
|
33
|
+
export interface UpdateFilterParams {
|
|
34
|
+
name?: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
namespace?: string;
|
|
37
|
+
operation?: Operation;
|
|
38
|
+
groups?: Group[];
|
|
39
|
+
}
|
|
40
|
+
export interface DeleteFilterParams {
|
|
41
|
+
id: string;
|
|
42
|
+
}
|
|
43
|
+
export interface StorageOperationsGetFilterParams {
|
|
44
|
+
id: string;
|
|
45
|
+
}
|
|
46
|
+
export declare type StorageOperationsListFiltersParams = ListFiltersParams;
|
|
47
|
+
export interface StorageOperationsCreateFilterParams {
|
|
48
|
+
data: CreateFilterParams;
|
|
49
|
+
}
|
|
50
|
+
export interface StorageOperationsUpdateFilterParams {
|
|
51
|
+
id: string;
|
|
52
|
+
data: UpdateFilterParams;
|
|
53
|
+
}
|
|
54
|
+
export declare type StorageOperationsDeleteFilterParams = DeleteFilterParams;
|
|
55
|
+
export interface OnFilterBeforeCreateTopicParams {
|
|
56
|
+
input: CreateFilterParams;
|
|
57
|
+
}
|
|
58
|
+
export interface OnFilterAfterCreateTopicParams {
|
|
59
|
+
filter: Filter;
|
|
60
|
+
}
|
|
61
|
+
export interface OnFilterBeforeUpdateTopicParams {
|
|
62
|
+
original: Filter;
|
|
63
|
+
input: Record<string, any>;
|
|
64
|
+
}
|
|
65
|
+
export interface OnFilterAfterUpdateTopicParams {
|
|
66
|
+
original: Filter;
|
|
67
|
+
filter: Filter;
|
|
68
|
+
input: Record<string, any>;
|
|
69
|
+
}
|
|
70
|
+
export interface OnFilterBeforeDeleteTopicParams {
|
|
71
|
+
filter: Filter;
|
|
72
|
+
}
|
|
73
|
+
export interface OnFilterAfterDeleteTopicParams {
|
|
74
|
+
filter: Filter;
|
|
75
|
+
}
|
|
76
|
+
export interface AcoFilterCrud {
|
|
77
|
+
get(id: string): Promise<Filter>;
|
|
78
|
+
list(params: ListFiltersParams): Promise<[Filter[], ListMeta]>;
|
|
79
|
+
create(data: CreateFilterParams): Promise<Filter>;
|
|
80
|
+
update(id: string, data: UpdateFilterParams): Promise<Filter>;
|
|
81
|
+
delete(id: string): Promise<Boolean>;
|
|
82
|
+
onFilterBeforeCreate: Topic<OnFilterBeforeCreateTopicParams>;
|
|
83
|
+
onFilterAfterCreate: Topic<OnFilterAfterCreateTopicParams>;
|
|
84
|
+
onFilterBeforeUpdate: Topic<OnFilterBeforeUpdateTopicParams>;
|
|
85
|
+
onFilterAfterUpdate: Topic<OnFilterAfterUpdateTopicParams>;
|
|
86
|
+
onFilterBeforeDelete: Topic<OnFilterBeforeDeleteTopicParams>;
|
|
87
|
+
onFilterAfterDelete: Topic<OnFilterAfterDeleteTopicParams>;
|
|
88
|
+
}
|
|
89
|
+
export interface AcoFilterStorageOperations {
|
|
90
|
+
getFilter(params: StorageOperationsGetFilterParams): Promise<Filter>;
|
|
91
|
+
listFilters(params: StorageOperationsListFiltersParams): Promise<[Filter[], ListMeta]>;
|
|
92
|
+
createFilter(params: StorageOperationsCreateFilterParams): Promise<Filter>;
|
|
93
|
+
updateFilter(params: StorageOperationsUpdateFilterParams): Promise<Filter>;
|
|
94
|
+
deleteFilter(params: StorageOperationsDeleteFilterParams): Promise<boolean>;
|
|
95
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Operation = void 0;
|
|
7
|
+
let Operation = /*#__PURE__*/function (Operation) {
|
|
8
|
+
Operation["AND"] = "AND";
|
|
9
|
+
Operation["OR"] = "OR";
|
|
10
|
+
return Operation;
|
|
11
|
+
}({});
|
|
12
|
+
exports.Operation = Operation;
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=filter.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Operation","exports"],"sources":["filter.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta, ListSort } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport enum Operation {\n AND = \"AND\",\n OR = \"OR\"\n}\n\nexport interface GroupFilter {\n field: string;\n condition: string;\n value: string;\n}\n\nexport interface Group {\n operation: Operation;\n filters: GroupFilter[];\n}\n\nexport interface Filter extends AcoBaseFields {\n name: string;\n description?: string;\n namespace: string;\n operation: Operation;\n groups: Group[];\n}\n\nexport interface ListFiltersWhere {\n namespace: string;\n}\n\nexport interface ListFiltersParams {\n where: ListFiltersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFilterParams = Pick<\n Filter,\n \"id\" | \"name\" | \"description\" | \"namespace\" | \"operation\" | \"groups\"\n>;\n\nexport interface UpdateFilterParams {\n name?: string;\n description?: string;\n namespace?: string;\n operation?: Operation;\n groups?: Group[];\n}\n\nexport interface DeleteFilterParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFilterParams {\n id: string;\n}\n\nexport type StorageOperationsListFiltersParams = ListFiltersParams;\n\nexport interface StorageOperationsCreateFilterParams {\n data: CreateFilterParams;\n}\n\nexport interface StorageOperationsUpdateFilterParams {\n id: string;\n data: UpdateFilterParams;\n}\n\nexport type StorageOperationsDeleteFilterParams = DeleteFilterParams;\n\nexport interface OnFilterBeforeCreateTopicParams {\n input: CreateFilterParams;\n}\n\nexport interface OnFilterAfterCreateTopicParams {\n filter: Filter;\n}\n\nexport interface OnFilterBeforeUpdateTopicParams {\n original: Filter;\n input: Record<string, any>;\n}\n\nexport interface OnFilterAfterUpdateTopicParams {\n original: Filter;\n filter: Filter;\n input: Record<string, any>;\n}\n\nexport interface OnFilterBeforeDeleteTopicParams {\n filter: Filter;\n}\n\nexport interface OnFilterAfterDeleteTopicParams {\n filter: Filter;\n}\n\nexport interface AcoFilterCrud {\n get(id: string): Promise<Filter>;\n list(params: ListFiltersParams): Promise<[Filter[], ListMeta]>;\n create(data: CreateFilterParams): Promise<Filter>;\n update(id: string, data: UpdateFilterParams): Promise<Filter>;\n delete(id: string): Promise<Boolean>;\n onFilterBeforeCreate: Topic<OnFilterBeforeCreateTopicParams>;\n onFilterAfterCreate: Topic<OnFilterAfterCreateTopicParams>;\n onFilterBeforeUpdate: Topic<OnFilterBeforeUpdateTopicParams>;\n onFilterAfterUpdate: Topic<OnFilterAfterUpdateTopicParams>;\n onFilterBeforeDelete: Topic<OnFilterBeforeDeleteTopicParams>;\n onFilterAfterDelete: Topic<OnFilterAfterDeleteTopicParams>;\n}\n\nexport interface AcoFilterStorageOperations {\n getFilter(params: StorageOperationsGetFilterParams): Promise<Filter>;\n listFilters(params: StorageOperationsListFiltersParams): Promise<[Filter[], ListMeta]>;\n createFilter(params: StorageOperationsCreateFilterParams): Promise<Filter>;\n updateFilter(params: StorageOperationsUpdateFilterParams): Promise<Filter>;\n deleteFilter(params: StorageOperationsDeleteFilterParams): Promise<boolean>;\n}\n"],"mappings":";;;;;;IAGYA,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAAAC,OAAA,CAAAD,SAAA,GAAAA,SAAA"}
|