@webiny/api-aco 0.0.0-unstable.c59b9cc5b9 → 0.0.0-unstable.c7dec08bb0

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.
Files changed (80) hide show
  1. package/apps/AcoApp.d.ts +16 -0
  2. package/apps/AcoApp.js +108 -0
  3. package/apps/AcoApp.js.map +1 -0
  4. package/apps/AcoApps.d.ts +10 -0
  5. package/apps/AcoApps.js +76 -0
  6. package/apps/AcoApps.js.map +1 -0
  7. package/apps/app.gql.d.ts +3 -0
  8. package/apps/app.gql.js +58 -0
  9. package/apps/app.gql.js.map +1 -0
  10. package/apps/index.d.ts +2 -0
  11. package/apps/index.js +27 -0
  12. package/apps/index.js.map +1 -0
  13. package/createAcoContext.js +50 -13
  14. package/createAcoContext.js.map +1 -1
  15. package/createAcoGraphQL.d.ts +2 -2
  16. package/createAcoGraphQL.js +34 -5
  17. package/createAcoGraphQL.js.map +1 -1
  18. package/createAcoModels.js +0 -15
  19. package/createAcoModels.js.map +1 -1
  20. package/{createAcoFields.d.ts → fields/index.d.ts} +1 -1
  21. package/fields/index.js +12 -0
  22. package/fields/index.js.map +1 -0
  23. package/fields/location.d.ts +2 -0
  24. package/fields/location.js +44 -0
  25. package/fields/location.js.map +1 -0
  26. package/folder/folder.crud.js +18 -0
  27. package/folder/folder.crud.js.map +1 -1
  28. package/folder/folder.gql.js +1 -1
  29. package/folder/folder.gql.js.map +1 -1
  30. package/folder/folder.types.d.ts +8 -2
  31. package/folder/folder.types.js.map +1 -1
  32. package/folder/onFolderBeforeDelete.hook.js +29 -16
  33. package/folder/onFolderBeforeDelete.hook.js.map +1 -1
  34. package/index.d.ts +3 -1
  35. package/index.js +31 -3
  36. package/index.js.map +1 -1
  37. package/package.json +24 -22
  38. package/plugins/AcoAppModifierPlugin.d.ts +43 -0
  39. package/plugins/AcoAppModifierPlugin.js +59 -0
  40. package/plugins/AcoAppModifierPlugin.js.map +1 -0
  41. package/plugins/AcoAppRegisterPlugin.d.ts +8 -0
  42. package/plugins/AcoAppRegisterPlugin.js +22 -0
  43. package/plugins/AcoAppRegisterPlugin.js.map +1 -0
  44. package/plugins/index.d.ts +2 -0
  45. package/plugins/index.js +27 -0
  46. package/plugins/index.js.map +1 -0
  47. package/record/graphql/createAppResolvers.d.ts +14 -0
  48. package/record/graphql/createAppResolvers.js +108 -0
  49. package/record/graphql/createAppResolvers.js.map +1 -0
  50. package/record/graphql/createAppSchema.d.ts +9 -0
  51. package/record/graphql/createAppSchema.js +142 -0
  52. package/record/graphql/createAppSchema.js.map +1 -0
  53. package/record/record.crud.js +45 -14
  54. package/record/record.crud.js.map +1 -1
  55. package/record/record.gql.d.ts +8 -3
  56. package/record/record.gql.js +36 -182
  57. package/record/record.gql.js.map +1 -1
  58. package/record/record.model.d.ts +7 -1
  59. package/record/record.model.js +34 -10
  60. package/record/record.model.js.map +1 -1
  61. package/record/record.so.js +55 -44
  62. package/record/record.so.js.map +1 -1
  63. package/record/record.types.d.ts +49 -15
  64. package/record/record.types.js.map +1 -1
  65. package/types.d.ts +45 -3
  66. package/types.js.map +1 -1
  67. package/utils/getFieldValues.d.ts +2 -2
  68. package/utils/getFieldValues.js +1 -1
  69. package/utils/getFieldValues.js.map +1 -1
  70. package/utils/getFolderAndItsAncestors.d.ts +7 -0
  71. package/utils/getFolderAndItsAncestors.js +48 -0
  72. package/utils/getFolderAndItsAncestors.js.map +1 -0
  73. package/utils/resolve.d.ts +3 -2
  74. package/utils/resolve.js +11 -2
  75. package/utils/resolve.js.map +1 -1
  76. package/createAcoCrud.d.ts +0 -2
  77. package/createAcoCrud.js +0 -17
  78. package/createAcoCrud.js.map +0 -1
  79. package/createAcoFields.js +0 -40
  80. package/createAcoFields.js.map +0 -1
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createAppResolvers = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _createFieldResolvers = require("@webiny/api-headless-cms/graphql/schema/createFieldResolvers");
10
+ var _resolve = require("../../utils/resolve");
11
+ var _utils = require("@webiny/utils");
12
+ var _acoRecordId = require("../../utils/acoRecordId");
13
+ var _checkPermissions = require("../../utils/checkPermissions");
14
+ const createAppResolvers = params => {
15
+ const {
16
+ app,
17
+ models,
18
+ plugins
19
+ } = params;
20
+ const model = app.model;
21
+ const apiName = model.singularApiName;
22
+ const createFieldResolvers = (0, _createFieldResolvers.createFieldResolversFactory)({
23
+ endpointType: "manage",
24
+ models,
25
+ model,
26
+ fieldTypePlugins: plugins
27
+ });
28
+ const fieldResolvers = createFieldResolvers({
29
+ graphQLType: apiName,
30
+ fields: app.model.fields,
31
+ isRoot: true,
32
+ extraResolvers: {
33
+ id: entry => {
34
+ const {
35
+ id
36
+ } = (0, _utils.parseIdentifier)(entry.id);
37
+ return (0, _acoRecordId.removeAcoRecordPrefix)(id);
38
+ }
39
+ }
40
+ });
41
+ const resolvers = {
42
+ SearchQuery: {
43
+ [`get${apiName}`]: async (_, args, context) => {
44
+ return (0, _resolve.resolve)(() => {
45
+ (0, _checkPermissions.checkPermissions)(context);
46
+ return app.search.get(args.id);
47
+ });
48
+ },
49
+ [`list${apiName}`]: async (_, args, context) => {
50
+ return (0, _resolve.resolveList)(() => {
51
+ (0, _checkPermissions.checkPermissions)(context);
52
+ return app.search.list(args);
53
+ });
54
+ },
55
+ [`list${apiName}Tags`]: async (_, args, context) => {
56
+ return (0, _resolve.resolveList)(() => {
57
+ (0, _checkPermissions.checkPermissions)(context);
58
+ return app.search.listTags(args);
59
+ });
60
+ }
61
+ },
62
+ SearchMutation: {
63
+ [`create${apiName}`]: async (_, args, context) => {
64
+ return (0, _resolve.resolve)(() => {
65
+ var _args$data;
66
+ (0, _checkPermissions.checkPermissions)(context);
67
+ const {
68
+ id
69
+ } = (0, _utils.parseIdentifier)((_args$data = args.data) === null || _args$data === void 0 ? void 0 : _args$data.id);
70
+ return app.search.create((0, _objectSpread2.default)((0, _objectSpread2.default)({}, args.data), {}, {
71
+ id
72
+ }));
73
+ });
74
+ },
75
+ [`update${apiName}`]: async (_, args, context) => {
76
+ return (0, _resolve.resolve)(() => {
77
+ (0, _checkPermissions.checkPermissions)(context);
78
+ const {
79
+ id
80
+ } = (0, _utils.parseIdentifier)(args.id);
81
+ return app.search.update(id, args.data || {});
82
+ });
83
+ },
84
+ [`move${apiName}`]: async (_, args, context) => {
85
+ return (0, _resolve.resolve)(() => {
86
+ (0, _checkPermissions.checkPermissions)(context);
87
+ const {
88
+ id
89
+ } = (0, _utils.parseIdentifier)(args.id);
90
+ return app.search.move(id, args.folderId);
91
+ });
92
+ },
93
+ [`delete${apiName}`]: async (_, args, context) => {
94
+ return (0, _resolve.resolve)(() => {
95
+ (0, _checkPermissions.checkPermissions)(context);
96
+ const {
97
+ id
98
+ } = (0, _utils.parseIdentifier)(args.id);
99
+ return app.search.delete(id);
100
+ });
101
+ }
102
+ }
103
+ };
104
+ Object.assign(resolvers, fieldResolvers);
105
+ delete resolvers[apiName].entryId;
106
+ return resolvers;
107
+ };
108
+ exports.createAppResolvers = createAppResolvers;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAppResolvers","params","app","models","plugins","model","apiName","singularApiName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldTypePlugins","fieldResolvers","graphQLType","fields","isRoot","extraResolvers","id","entry","parseIdentifier","removeAcoRecordPrefix","resolvers","SearchQuery","_","args","context","resolve","checkPermissions","search","get","resolveList","list","listTags","SearchMutation","data","create","update","move","folderId","delete","Object","assign","entryId"],"sources":["createAppResolvers.ts"],"sourcesContent":["import { CmsEntry, CmsFieldTypePlugins, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldResolversFactory } from \"@webiny/api-headless-cms/graphql/schema/createFieldResolvers\";\nimport { AcoContext, IAcoApp } from \"~/types\";\nimport { resolve, resolveList } from \"~/utils/resolve\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { removeAcoRecordPrefix } from \"~/utils/acoRecordId\";\nimport { checkPermissions } from \"~/utils/checkPermissions\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\ninterface Resolvers {\n SearchQuery: Record<string, any>;\n SearchMutation: Record<string, any>;\n [key: string]: Record<string, any>;\n}\n\nexport const createAppResolvers = (params: Params): Resolvers => {\n const { app, models, plugins } = params;\n\n const model = app.model;\n const apiName = model.singularApiName;\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins: plugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: apiName,\n fields: app.model.fields,\n isRoot: true,\n extraResolvers: {\n id: (entry: CmsEntry) => {\n const { id } = parseIdentifier(entry.id);\n return removeAcoRecordPrefix(id);\n }\n }\n });\n\n const resolvers: Resolvers = {\n SearchQuery: {\n [`get${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n return app.search.get(args.id);\n });\n },\n [`list${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolveList(() => {\n checkPermissions(context);\n return app.search.list(args);\n });\n },\n [`list${apiName}Tags`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolveList(() => {\n checkPermissions(context);\n return app.search.listTags(args);\n });\n }\n },\n SearchMutation: {\n [`create${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.data?.id);\n return app.search.create({\n ...args.data,\n id\n });\n });\n },\n [`update${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.id);\n return app.search.update(id, args.data || {});\n });\n },\n [`move${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.id);\n return app.search.move(id, args.folderId);\n });\n },\n [`delete${apiName}`]: async (_: unknown, args: any, context: AcoContext) => {\n return resolve(() => {\n checkPermissions(context);\n const { id } = parseIdentifier(args.id);\n return app.search.delete(id);\n });\n }\n }\n };\n\n Object.assign(resolvers, fieldResolvers);\n delete resolvers[apiName].entryId;\n\n return resolvers;\n};\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { IAcoApp } from "../../types";
3
+ interface Params {
4
+ app: IAcoApp;
5
+ models: CmsModel[];
6
+ plugins: CmsFieldTypePlugins;
7
+ }
8
+ export declare const createAppSchema: (params: Params) => string;
9
+ export {};
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createAppSchema = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
10
+ var _renderInputFields = require("@webiny/api-headless-cms/utils/renderInputFields");
11
+ var _renderListFilterFields = require("@webiny/api-headless-cms/utils/renderListFilterFields");
12
+ var _renderSortEnum = require("@webiny/api-headless-cms/utils/renderSortEnum");
13
+ const removeFieldRequiredValidation = field => {
14
+ if (field.validation) {
15
+ field.validation = field.validation.filter(validation => validation.name !== "required");
16
+ }
17
+ if (field.listValidation) {
18
+ field.listValidation = field.listValidation.filter(v => v.name !== "required");
19
+ }
20
+ return field;
21
+ };
22
+ const createUpdateFields = fields => {
23
+ return fields.reduce((collection, field) => {
24
+ if (["type"].includes(field.fieldId)) {
25
+ return collection;
26
+ } else if (field.fieldId === "tags") {
27
+ collection.push(field);
28
+ return collection;
29
+ }
30
+ collection.push(removeFieldRequiredValidation((0, _objectSpread2.default)({}, field)));
31
+ return collection;
32
+ }, []);
33
+ };
34
+ const createAppSchema = params => {
35
+ const {
36
+ app,
37
+ models,
38
+ plugins: fieldTypePlugins
39
+ } = params;
40
+ const {
41
+ model
42
+ } = app;
43
+ const {
44
+ singularApiName: apiName,
45
+ fields
46
+ } = model;
47
+ const fieldTypes = (0, _renderFields.renderFields)({
48
+ models,
49
+ model,
50
+ fields,
51
+ type: "manage",
52
+ fieldTypePlugins
53
+ });
54
+ const inputCreateFields = (0, _renderInputFields.renderInputFields)({
55
+ models,
56
+ model,
57
+ fields,
58
+ fieldTypePlugins
59
+ });
60
+ const inputUpdateFields = (0, _renderInputFields.renderInputFields)({
61
+ models,
62
+ model,
63
+ fields: createUpdateFields(fields),
64
+ fieldTypePlugins
65
+ });
66
+ const listFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
67
+ model,
68
+ fields: model.fields,
69
+ type: "manage",
70
+ fieldTypePlugins
71
+ });
72
+ const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
73
+ model,
74
+ fields: model.fields,
75
+ fieldTypePlugins
76
+ });
77
+ return (/* GraphQL */`
78
+ ${fieldTypes.map(f => f.typeDefs).join("\n")}
79
+
80
+
81
+ type ${apiName} {
82
+ id: ID!
83
+ savedOn: DateTime!
84
+ createdOn: DateTime!
85
+ createdBy: AcoUser!
86
+ ${fieldTypes.map(f => f.fields).join("\n")}
87
+ }
88
+
89
+ ${inputCreateFields.map(f => f.typeDefs).join("\n")}
90
+
91
+ input ${apiName}CreateInput {
92
+ id: ID
93
+ ${inputCreateFields.map(f => f.fields).join("\n")}
94
+ }
95
+
96
+ input ${apiName}UpdateInput {
97
+ ${inputUpdateFields.map(f => f.fields).join("\n")}
98
+ }
99
+
100
+ type ${apiName}Response {
101
+ data: ${apiName}
102
+ error: AcoError
103
+ }
104
+
105
+ input ${apiName}ListWhereInput {
106
+ ${listFilterFieldsRender}
107
+ AND: [${apiName}ListWhereInput!]
108
+ OR: [${apiName}ListWhereInput!]
109
+ }
110
+
111
+ type ${apiName}ListResponse {
112
+ data: [${apiName}!]
113
+ error: AcoError
114
+ meta: AcoMeta
115
+ }
116
+
117
+ enum ${apiName}ListSorter {
118
+ ${sortEnumRender}
119
+ }
120
+
121
+ extend type SearchQuery {
122
+ get${apiName}(id: ID!): ${apiName}Response!
123
+ list${apiName}(
124
+ where: ${apiName}ListWhereInput
125
+ search: String
126
+ limit: Int
127
+ after: String
128
+ sort: [${apiName}ListSorter!]
129
+ ): ${apiName}ListResponse!
130
+ list${apiName}Tags(where: AcoSearchRecordTagListWhereInput): AcoSearchRecordTagListResponse!
131
+ }
132
+
133
+ extend type SearchMutation {
134
+ create${apiName}(data: ${apiName}CreateInput!): ${apiName}Response!
135
+ update${apiName}(id: ID!, data: ${apiName}UpdateInput!): ${apiName}Response!
136
+ move${apiName}(id: ID!, folderId: ID!): AcoSearchRecordMoveResponse!
137
+ delete${apiName}(id: ID!): AcoBooleanResponse!
138
+ }
139
+ `
140
+ );
141
+ };
142
+ exports.createAppSchema = createAppSchema;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","includes","fieldId","push","createAppSchema","params","app","models","plugins","fieldTypePlugins","model","singularApiName","apiName","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","map","f","typeDefs","join"],"sources":["createAppSchema.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\nimport { IAcoApp } from \"~/types\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\n\ninterface Params {\n app: IAcoApp;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n if ([\"type\"].includes(field.fieldId)) {\n return collection;\n } else if (field.fieldId === \"tags\") {\n collection.push(field);\n return collection;\n }\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createAppSchema = (params: Params): string => {\n const { app, models, plugins: fieldTypePlugins } = params;\n const { model } = app;\n const { singularApiName: apiName, fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n\n\n type ${apiName} {\n id: ID!\n savedOn: DateTime!\n createdOn: DateTime!\n createdBy: AcoUser!\n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n\n input ${apiName}CreateInput {\n id: ID\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n input ${apiName}UpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${apiName}Response {\n data: ${apiName}\n error: AcoError\n }\n\n input ${apiName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${apiName}ListWhereInput!]\n OR: [${apiName}ListWhereInput!]\n }\n\n type ${apiName}ListResponse {\n data: [${apiName}!]\n error: AcoError\n meta: AcoMeta\n }\n\n enum ${apiName}ListSorter {\n ${sortEnumRender}\n }\n\n extend type SearchQuery {\n get${apiName}(id: ID!): ${apiName}Response!\n list${apiName}(\n where: ${apiName}ListWhereInput\n search: String\n limit: Int\n after: String\n sort: [${apiName}ListSorter!]\n ): ${apiName}ListResponse!\n list${apiName}Tags(where: AcoSearchRecordTagListWhereInput): AcoSearchRecordTagListResponse!\n }\n\n extend type SearchMutation {\n create${apiName}(data: ${apiName}CreateInput!): ${apiName}Response!\n update${apiName}(id: ID!, data: ${apiName}UpdateInput!): ${apiName}Response!\n move${apiName}(id: ID!, folderId: ID!): AcoSearchRecordMoveResponse!\n delete${apiName}(id: ID!): AcoBooleanResponse!\n }\n `;\n};\n"],"mappings":"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"}
@@ -14,6 +14,9 @@ const createSearchRecordCrudMethods = ({
14
14
  // update
15
15
  const onSearchRecordBeforeUpdate = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeUpdate");
16
16
  const onSearchRecordAfterUpdate = (0, _pubsub.createTopic)("aco.onSearchRecordAfterUpdate");
17
+ // move
18
+ const onSearchRecordBeforeMove = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeMove");
19
+ const onSearchRecordAfterMove = (0, _pubsub.createTopic)("aco.onSearchRecordAfterMove");
17
20
  // delete
18
21
  const onSearchRecordBeforeDelete = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeDelete");
19
22
  const onSearchRecordAfterDelete = (0, _pubsub.createTopic)("aco.onSearchRecordAfterDelete");
@@ -25,44 +28,50 @@ const createSearchRecordCrudMethods = ({
25
28
  onSearchRecordAfterCreate,
26
29
  onSearchRecordBeforeUpdate,
27
30
  onSearchRecordAfterUpdate,
31
+ onSearchRecordBeforeMove,
32
+ onSearchRecordAfterMove,
28
33
  onSearchRecordBeforeDelete,
29
34
  onSearchRecordAfterDelete,
30
- async get(id) {
31
- return storageOperations.getRecord({
35
+ async get(model, id) {
36
+ return storageOperations.getRecord(model, {
32
37
  id
33
38
  });
34
39
  },
35
- async list(params) {
36
- return storageOperations.listRecords(params);
40
+ async list(model, params) {
41
+ return storageOperations.listRecords(model, params);
37
42
  },
38
- async create(data) {
43
+ async create(model, data) {
39
44
  await onSearchRecordBeforeCreate.publish({
45
+ model,
40
46
  input: data
41
47
  });
42
- const record = await storageOperations.createRecord({
48
+ const record = await storageOperations.createRecord(model, {
43
49
  data
44
50
  });
45
51
  await onSearchRecordAfterCreate.publish({
52
+ model,
46
53
  record
47
54
  });
48
55
  return record;
49
56
  },
50
- async update(id, data) {
51
- const original = await storageOperations.getRecord({
57
+ async update(model, id, data) {
58
+ const original = await storageOperations.getRecord(model, {
52
59
  id
53
60
  });
54
61
  await onSearchRecordBeforeUpdate.publish({
62
+ model,
55
63
  original,
56
64
  input: {
57
65
  id,
58
66
  data
59
67
  }
60
68
  });
61
- const record = await storageOperations.updateRecord({
69
+ const record = await storageOperations.updateRecord(model, {
62
70
  id,
63
71
  data
64
72
  });
65
73
  await onSearchRecordAfterUpdate.publish({
74
+ model,
66
75
  original,
67
76
  input: {
68
77
  id,
@@ -72,23 +81,45 @@ const createSearchRecordCrudMethods = ({
72
81
  });
73
82
  return record;
74
83
  },
75
- async delete(id) {
76
- const record = await storageOperations.getRecord({
84
+ async move(model, id, folderId) {
85
+ const original = await storageOperations.getRecord(model, {
86
+ id
87
+ });
88
+ await onSearchRecordBeforeMove.publish({
89
+ model,
90
+ original,
91
+ folderId
92
+ });
93
+ const result = await storageOperations.moveRecord(model, {
94
+ id,
95
+ folderId
96
+ });
97
+ await onSearchRecordAfterMove.publish({
98
+ model,
99
+ original,
100
+ folderId
101
+ });
102
+ return result;
103
+ },
104
+ async delete(model, id) {
105
+ const record = await storageOperations.getRecord(model, {
77
106
  id
78
107
  });
79
108
  await onSearchRecordBeforeDelete.publish({
109
+ model,
80
110
  record
81
111
  });
82
- await storageOperations.deleteRecord({
112
+ await storageOperations.deleteRecord(model, {
83
113
  id
84
114
  });
85
115
  await onSearchRecordAfterDelete.publish({
116
+ model,
86
117
  record
87
118
  });
88
119
  return true;
89
120
  },
90
- async listTags(params) {
91
- return storageOperations.listTags(params);
121
+ async listTags(model, params) {
122
+ return storageOperations.listTags(model, params);
92
123
  }
93
124
  };
94
125
  };
@@ -1 +1 @@
1
- {"version":3,"names":["createSearchRecordCrudMethods","storageOperations","onSearchRecordBeforeCreate","createTopic","onSearchRecordAfterCreate","onSearchRecordBeforeUpdate","onSearchRecordAfterUpdate","onSearchRecordBeforeDelete","onSearchRecordAfterDelete","get","id","getRecord","list","params","listRecords","create","data","publish","input","record","createRecord","update","original","updateRecord","delete","deleteRecord","listTags"],"sources":["record.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\n\nimport { CreateAcoParams } from \"~/types\";\nimport {\n AcoSearchRecordCrud,\n OnSearchRecordAfterCreateTopicParams,\n OnSearchRecordAfterDeleteTopicParams,\n OnSearchRecordAfterUpdateTopicParams,\n OnSearchRecordBeforeCreateTopicParams,\n OnSearchRecordBeforeDeleteTopicParams,\n OnSearchRecordBeforeUpdateTopicParams\n} from \"./record.types\";\n\nexport const createSearchRecordCrudMethods = ({\n storageOperations\n}: CreateAcoParams): AcoSearchRecordCrud => {\n // create\n const onSearchRecordBeforeCreate = createTopic<OnSearchRecordBeforeCreateTopicParams>(\n \"aco.onSearchRecordBeforeCreate\"\n );\n const onSearchRecordAfterCreate = createTopic<OnSearchRecordAfterCreateTopicParams>(\n \"aco.onSearchRecordAfterCreate\"\n );\n // update\n const onSearchRecordBeforeUpdate = createTopic<OnSearchRecordBeforeUpdateTopicParams>(\n \"aco.onSearchRecordBeforeUpdate\"\n );\n const onSearchRecordAfterUpdate = createTopic<OnSearchRecordAfterUpdateTopicParams>(\n \"aco.onSearchRecordAfterUpdate\"\n );\n // delete\n const onSearchRecordBeforeDelete = createTopic<OnSearchRecordBeforeDeleteTopicParams>(\n \"aco.onSearchRecordBeforeDelete\"\n );\n const onSearchRecordAfterDelete = createTopic<OnSearchRecordAfterDeleteTopicParams>(\n \"aco.onSearchRecordAfterDelete\"\n );\n\n return {\n /**\n * Lifecycle events\n */\n onSearchRecordBeforeCreate,\n onSearchRecordAfterCreate,\n onSearchRecordBeforeUpdate,\n onSearchRecordAfterUpdate,\n onSearchRecordBeforeDelete,\n onSearchRecordAfterDelete,\n async get(id) {\n return storageOperations.getRecord({ id });\n },\n async list(params) {\n return storageOperations.listRecords(params);\n },\n async create(data) {\n await onSearchRecordBeforeCreate.publish({ input: data });\n const record = await storageOperations.createRecord({ data });\n await onSearchRecordAfterCreate.publish({ record });\n return record;\n },\n async update(id, data) {\n const original = await storageOperations.getRecord({ id });\n await onSearchRecordBeforeUpdate.publish({ original, input: { id, data } });\n const record = await storageOperations.updateRecord({ id, data });\n await onSearchRecordAfterUpdate.publish({ original, input: { id, data }, record });\n return record;\n },\n async delete(id: string) {\n const record = await storageOperations.getRecord({ id });\n await onSearchRecordBeforeDelete.publish({ record });\n await storageOperations.deleteRecord({ id });\n await onSearchRecordAfterDelete.publish({ record });\n return true;\n },\n async listTags(params) {\n return storageOperations.listTags(params);\n }\n };\n};\n"],"mappings":";;;;;;AAAA;AAaO,MAAMA,6BAA6B,GAAG,CAAC;EAC1CC;AACa,CAAC,KAA0B;EACxC;EACA,MAAMC,0BAA0B,GAAG,IAAAC,mBAAW,EAC1C,gCAAgC,CACnC;EACD,MAAMC,yBAAyB,GAAG,IAAAD,mBAAW,EACzC,+BAA+B,CAClC;EACD;EACA,MAAME,0BAA0B,GAAG,IAAAF,mBAAW,EAC1C,gCAAgC,CACnC;EACD,MAAMG,yBAAyB,GAAG,IAAAH,mBAAW,EACzC,+BAA+B,CAClC;EACD;EACA,MAAMI,0BAA0B,GAAG,IAAAJ,mBAAW,EAC1C,gCAAgC,CACnC;EACD,MAAMK,yBAAyB,GAAG,IAAAL,mBAAW,EACzC,+BAA+B,CAClC;EAED,OAAO;IACH;AACR;AACA;IACQD,0BAA0B;IAC1BE,yBAAyB;IACzBC,0BAA0B;IAC1BC,yBAAyB;IACzBC,0BAA0B;IAC1BC,yBAAyB;IACzB,MAAMC,GAAG,CAACC,EAAE,EAAE;MACV,OAAOT,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;IAC9C,CAAC;IACD,MAAME,IAAI,CAACC,MAAM,EAAE;MACf,OAAOZ,iBAAiB,CAACa,WAAW,CAACD,MAAM,CAAC;IAChD,CAAC;IACD,MAAME,MAAM,CAACC,IAAI,EAAE;MACf,MAAMd,0BAA0B,CAACe,OAAO,CAAC;QAAEC,KAAK,EAAEF;MAAK,CAAC,CAAC;MACzD,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACmB,YAAY,CAAC;QAAEJ;MAAK,CAAC,CAAC;MAC7D,MAAMZ,yBAAyB,CAACa,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MACnD,OAAOA,MAAM;IACjB,CAAC;IACD,MAAME,MAAM,CAACX,EAAE,EAAEM,IAAI,EAAE;MACnB,MAAMM,QAAQ,GAAG,MAAMrB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MAC1D,MAAML,0BAA0B,CAACY,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK;MAAE,CAAC,CAAC;MAC3E,MAAMG,MAAM,GAAG,MAAMlB,iBAAiB,CAACsB,YAAY,CAAC;QAAEb,EAAE;QAAEM;MAAK,CAAC,CAAC;MACjE,MAAMV,yBAAyB,CAACW,OAAO,CAAC;QAAEK,QAAQ;QAAEJ,KAAK,EAAE;UAAER,EAAE;UAAEM;QAAK,CAAC;QAAEG;MAAO,CAAC,CAAC;MAClF,OAAOA,MAAM;IACjB,CAAC;IACD,MAAMK,MAAM,CAACd,EAAU,EAAE;MACrB,MAAMS,MAAM,GAAG,MAAMlB,iBAAiB,CAACU,SAAS,CAAC;QAAED;MAAG,CAAC,CAAC;MACxD,MAAMH,0BAA0B,CAACU,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MACpD,MAAMlB,iBAAiB,CAACwB,YAAY,CAAC;QAAEf;MAAG,CAAC,CAAC;MAC5C,MAAMF,yBAAyB,CAACS,OAAO,CAAC;QAAEE;MAAO,CAAC,CAAC;MACnD,OAAO,IAAI;IACf,CAAC;IACD,MAAMO,QAAQ,CAACb,MAAM,EAAE;MACnB,OAAOZ,iBAAiB,CAACyB,QAAQ,CAACb,MAAM,CAAC;IAC7C;EACJ,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["createSearchRecordCrudMethods","storageOperations","onSearchRecordBeforeCreate","createTopic","onSearchRecordAfterCreate","onSearchRecordBeforeUpdate","onSearchRecordAfterUpdate","onSearchRecordBeforeMove","onSearchRecordAfterMove","onSearchRecordBeforeDelete","onSearchRecordAfterDelete","get","model","id","getRecord","list","params","listRecords","create","data","publish","input","record","createRecord","update","original","updateRecord","move","folderId","result","moveRecord","delete","deleteRecord","listTags"],"sources":["record.crud.ts"],"sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n CreateAcoParams,\n OnSearchRecordAfterMoveTopicParams,\n OnSearchRecordBeforeMoveTopicParams\n} from \"~/types\";\nimport {\n AcoSearchRecordCrud,\n OnSearchRecordAfterCreateTopicParams,\n OnSearchRecordAfterDeleteTopicParams,\n OnSearchRecordAfterUpdateTopicParams,\n OnSearchRecordBeforeCreateTopicParams,\n OnSearchRecordBeforeDeleteTopicParams,\n OnSearchRecordBeforeUpdateTopicParams\n} from \"./record.types\";\n\nexport const createSearchRecordCrudMethods = ({\n storageOperations\n}: CreateAcoParams): AcoSearchRecordCrud => {\n // create\n const onSearchRecordBeforeCreate = createTopic<OnSearchRecordBeforeCreateTopicParams>(\n \"aco.onSearchRecordBeforeCreate\"\n );\n const onSearchRecordAfterCreate = createTopic<OnSearchRecordAfterCreateTopicParams>(\n \"aco.onSearchRecordAfterCreate\"\n );\n // update\n const onSearchRecordBeforeUpdate = createTopic<OnSearchRecordBeforeUpdateTopicParams>(\n \"aco.onSearchRecordBeforeUpdate\"\n );\n const onSearchRecordAfterUpdate = createTopic<OnSearchRecordAfterUpdateTopicParams>(\n \"aco.onSearchRecordAfterUpdate\"\n );\n // move\n const onSearchRecordBeforeMove = createTopic<OnSearchRecordBeforeMoveTopicParams>(\n \"aco.onSearchRecordBeforeMove\"\n );\n const onSearchRecordAfterMove = createTopic<OnSearchRecordAfterMoveTopicParams>(\n \"aco.onSearchRecordAfterMove\"\n );\n // delete\n const onSearchRecordBeforeDelete = createTopic<OnSearchRecordBeforeDeleteTopicParams>(\n \"aco.onSearchRecordBeforeDelete\"\n );\n const onSearchRecordAfterDelete = createTopic<OnSearchRecordAfterDeleteTopicParams>(\n \"aco.onSearchRecordAfterDelete\"\n );\n\n return {\n /**\n * Lifecycle events\n */\n onSearchRecordBeforeCreate,\n onSearchRecordAfterCreate,\n onSearchRecordBeforeUpdate,\n onSearchRecordAfterUpdate,\n onSearchRecordBeforeMove,\n onSearchRecordAfterMove,\n onSearchRecordBeforeDelete,\n onSearchRecordAfterDelete,\n async get(model, id) {\n return storageOperations.getRecord(model, { id });\n },\n async list(model, params) {\n return storageOperations.listRecords(model, params);\n },\n async create(model, data) {\n await onSearchRecordBeforeCreate.publish({ model, input: data });\n const record = await storageOperations.createRecord(model, { data });\n await onSearchRecordAfterCreate.publish({ model, record });\n return record;\n },\n async update(model, id, data) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeUpdate.publish({ model, original, input: { id, data } });\n const record = await storageOperations.updateRecord(model, { id, data });\n await onSearchRecordAfterUpdate.publish({\n model,\n original,\n input: { id, data },\n record\n });\n return record;\n },\n async move(model, id, folderId) {\n const original = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeMove.publish({ model, original, folderId });\n const result = await storageOperations.moveRecord(model, {\n id,\n folderId\n });\n await onSearchRecordAfterMove.publish({\n model,\n original,\n folderId\n });\n return result;\n },\n async delete(model, id: string) {\n const record = await storageOperations.getRecord(model, { id });\n await onSearchRecordBeforeDelete.publish({ model, record });\n await storageOperations.deleteRecord(model, { id });\n await onSearchRecordAfterDelete.publish({ model, record });\n return true;\n },\n async listTags(model, params) {\n return storageOperations.listTags(model, params);\n }\n };\n};\n"],"mappings":"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"}
@@ -1,3 +1,8 @@
1
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
2
- import { AcoContext } from "../types";
3
- export declare const searchRecordSchema: GraphQLSchemaPlugin<AcoContext>;
1
+ import { AcoContext, IAcoApp } from "../types";
2
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
3
+ interface Params {
4
+ context: AcoContext;
5
+ app: IAcoApp;
6
+ }
7
+ export declare const createSchema: (params: Params) => Promise<GraphQLSchemaPlugin<import("@webiny/api/types").Context>>;
8
+ export {};