@webiny/api-aco 5.34.8-beta.1 → 5.35.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.
Files changed (89) hide show
  1. package/README.md +15 -0
  2. package/createAcoContext.d.ts +3 -0
  3. package/createAcoContext.js +63 -0
  4. package/createAcoContext.js.map +1 -0
  5. package/createAcoCrud.d.ts +2 -0
  6. package/createAcoCrud.js +17 -0
  7. package/createAcoCrud.js.map +1 -0
  8. package/createAcoFields.d.ts +2 -0
  9. package/createAcoFields.js +40 -0
  10. package/createAcoFields.js.map +1 -0
  11. package/createAcoGraphQL.d.ts +3 -0
  12. package/createAcoGraphQL.js +92 -0
  13. package/createAcoGraphQL.js.map +1 -0
  14. package/createAcoHooks.d.ts +2 -0
  15. package/createAcoHooks.js +11 -0
  16. package/createAcoHooks.js.map +1 -0
  17. package/createAcoModels.d.ts +2 -0
  18. package/createAcoModels.js +65 -0
  19. package/createAcoModels.js.map +1 -0
  20. package/createAcoStorageOperations.d.ts +10 -0
  21. package/createAcoStorageOperations.js +19 -0
  22. package/createAcoStorageOperations.js.map +1 -0
  23. package/folder/folder.crud.d.ts +3 -0
  24. package/folder/folder.crud.js +92 -0
  25. package/folder/folder.crud.js.map +1 -0
  26. package/folder/folder.gql.d.ts +3 -0
  27. package/folder/folder.gql.js +103 -0
  28. package/folder/folder.gql.js.map +1 -0
  29. package/folder/folder.model.d.ts +4 -0
  30. package/folder/folder.model.js +75 -0
  31. package/folder/folder.model.js.map +1 -0
  32. package/folder/folder.so.d.ts +3 -0
  33. package/folder/folder.so.js +151 -0
  34. package/folder/folder.so.js.map +1 -0
  35. package/folder/folder.types.d.ts +83 -0
  36. package/folder/folder.types.js +5 -0
  37. package/folder/folder.types.js.map +1 -0
  38. package/folder/onFolderBeforeDelete.hook.d.ts +2 -0
  39. package/folder/onFolderBeforeDelete.hook.js +53 -0
  40. package/folder/onFolderBeforeDelete.hook.js.map +1 -0
  41. package/index.d.ts +3 -9
  42. package/index.js +22 -65
  43. package/index.js.map +1 -1
  44. package/package.json +23 -20
  45. package/record/record.crud.d.ts +3 -0
  46. package/record/record.crud.js +92 -0
  47. package/record/record.crud.js.map +1 -0
  48. package/record/record.gql.d.ts +3 -0
  49. package/record/record.gql.js +133 -0
  50. package/record/record.gql.js.map +1 -0
  51. package/record/record.model.d.ts +4 -0
  52. package/record/record.model.js +62 -0
  53. package/record/record.model.js.map +1 -0
  54. package/record/record.so.d.ts +3 -0
  55. package/record/record.so.js +105 -0
  56. package/record/record.so.js.map +1 -0
  57. package/record/record.types.d.ts +96 -0
  58. package/record/record.types.js +5 -0
  59. package/record/record.types.js.map +1 -0
  60. package/types.d.ts +32 -202
  61. package/types.js +35 -1
  62. package/types.js.map +1 -1
  63. package/utils/acoRecordId.d.ts +6 -0
  64. package/utils/acoRecordId.js +33 -0
  65. package/utils/acoRecordId.js.map +1 -0
  66. package/utils/createListSort.d.ts +2 -0
  67. package/utils/createListSort.js +13 -0
  68. package/utils/createListSort.js.map +1 -0
  69. package/utils/createModelField.d.ts +5 -0
  70. package/utils/createModelField.js +37 -0
  71. package/utils/createModelField.js.map +1 -0
  72. package/utils/createOperationsWrapper.d.ts +9 -0
  73. package/utils/createOperationsWrapper.js +29 -0
  74. package/utils/createOperationsWrapper.js.map +1 -0
  75. package/utils/fieldResolver.d.ts +16 -0
  76. package/utils/fieldResolver.js +44 -0
  77. package/utils/fieldResolver.js.map +1 -0
  78. package/utils/getFieldValues.d.ts +5 -0
  79. package/utils/getFieldValues.js +16 -0
  80. package/utils/getFieldValues.js.map +1 -0
  81. package/utils/isInstallationPending.d.ts +4 -0
  82. package/utils/isInstallationPending.js +21 -0
  83. package/utils/isInstallationPending.js.map +1 -0
  84. package/utils/modelFactory.d.ts +15 -0
  85. package/utils/modelFactory.js +25 -0
  86. package/utils/modelFactory.js.map +1 -0
  87. package/utils/resolve.d.ts +2 -0
  88. package/utils/resolve.js +15 -0
  89. package/utils/resolve.js.map +1 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSearchRecordCrudMethods = void 0;
7
+ var _pubsub = require("@webiny/pubsub");
8
+ const createSearchRecordCrudMethods = ({
9
+ storageOperations
10
+ }) => {
11
+ // create
12
+ const onSearchRecordBeforeCreate = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeCreate");
13
+ const onSearchRecordAfterCreate = (0, _pubsub.createTopic)("aco.onSearchRecordAfterCreate");
14
+ // update
15
+ const onSearchRecordBeforeUpdate = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeUpdate");
16
+ const onSearchRecordAfterUpdate = (0, _pubsub.createTopic)("aco.onSearchRecordAfterUpdate");
17
+ // delete
18
+ const onSearchRecordBeforeDelete = (0, _pubsub.createTopic)("aco.onSearchRecordBeforeDelete");
19
+ const onSearchRecordAfterDelete = (0, _pubsub.createTopic)("aco.onSearchRecordAfterDelete");
20
+ return {
21
+ /**
22
+ * Lifecycle events
23
+ */
24
+ onSearchRecordBeforeCreate,
25
+ onSearchRecordAfterCreate,
26
+ onSearchRecordBeforeUpdate,
27
+ onSearchRecordAfterUpdate,
28
+ onSearchRecordBeforeDelete,
29
+ onSearchRecordAfterDelete,
30
+ async get(id) {
31
+ return storageOperations.getRecord({
32
+ id
33
+ });
34
+ },
35
+ async list(params) {
36
+ return storageOperations.listRecords(params);
37
+ },
38
+ async create(data) {
39
+ await onSearchRecordBeforeCreate.publish({
40
+ input: data
41
+ });
42
+ const record = await storageOperations.createRecord({
43
+ data
44
+ });
45
+ await onSearchRecordAfterCreate.publish({
46
+ record
47
+ });
48
+ return record;
49
+ },
50
+ async update(id, data) {
51
+ const original = await storageOperations.getRecord({
52
+ id
53
+ });
54
+ await onSearchRecordBeforeUpdate.publish({
55
+ original,
56
+ input: {
57
+ id,
58
+ data
59
+ }
60
+ });
61
+ const record = await storageOperations.updateRecord({
62
+ id,
63
+ data
64
+ });
65
+ await onSearchRecordAfterUpdate.publish({
66
+ original,
67
+ input: {
68
+ id,
69
+ data
70
+ },
71
+ record
72
+ });
73
+ return record;
74
+ },
75
+ async delete(id) {
76
+ const record = await storageOperations.getRecord({
77
+ id
78
+ });
79
+ await onSearchRecordBeforeDelete.publish({
80
+ record
81
+ });
82
+ await storageOperations.deleteRecord({
83
+ id
84
+ });
85
+ await onSearchRecordAfterDelete.publish({
86
+ record
87
+ });
88
+ return true;
89
+ }
90
+ };
91
+ };
92
+ exports.createSearchRecordCrudMethods = createSearchRecordCrudMethods;
@@ -0,0 +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"],"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 };\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;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -0,0 +1,3 @@
1
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
2
+ import { AcoContext } from "../types";
3
+ export declare const searchRecordSchema: GraphQLSchemaPlugin<AcoContext>;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.searchRecordSchema = void 0;
7
+ var _responses = require("@webiny/handler-graphql/responses");
8
+ var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
9
+ var _resolve = require("../utils/resolve");
10
+ var _utils = require("@webiny/utils");
11
+ var _acoRecordId = require("../utils/acoRecordId");
12
+ const searchRecordSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
13
+ typeDefs: /* GraphQL */`
14
+ type SearchRecord {
15
+ id: ID!
16
+ type: String!
17
+ location: SearchLocationType!
18
+ title: String!
19
+ content: String
20
+ data: JSON!
21
+ tags: [String!]!
22
+ savedOn: DateTime
23
+ createdOn: DateTime
24
+ createdBy: AcoUser
25
+ }
26
+
27
+ type SearchLocationType {
28
+ folderId: ID!
29
+ }
30
+
31
+ input SearchLocationInput {
32
+ folderId: ID!
33
+ }
34
+
35
+ input SearchRecordCreateInput {
36
+ id: String!
37
+ type: String!
38
+ title: String!
39
+ content: String
40
+ location: SearchLocationInput!
41
+ data: JSON
42
+ tags: [String!]
43
+ }
44
+
45
+ input SearchRecordUpdateInput {
46
+ title: String
47
+ content: String
48
+ location: SearchLocationInput
49
+ data: JSON
50
+ tags: [String!]
51
+ }
52
+
53
+ input SearchRecordListWhereInput {
54
+ type: String!
55
+ location: SearchLocationInput
56
+ tags_in: [String!]
57
+ tags_startsWith: String
58
+ tags_not_startsWith: String
59
+ }
60
+
61
+ type SearchRecordResponse {
62
+ data: SearchRecord
63
+ error: AcoError
64
+ }
65
+
66
+ type SearchRecordListResponse {
67
+ data: [SearchRecord]
68
+ error: AcoError
69
+ meta: AcoMeta
70
+ }
71
+
72
+ extend type SearchQuery {
73
+ getRecord(id: ID!): SearchRecordResponse
74
+ listRecords(
75
+ where: SearchRecordListWhereInput
76
+ search: String
77
+ limit: Int
78
+ after: String
79
+ sort: AcoSort
80
+ ): SearchRecordListResponse
81
+ }
82
+
83
+ extend type SearchMutation {
84
+ createRecord(data: SearchRecordCreateInput!): SearchRecordResponse
85
+ updateRecord(id: ID!, data: SearchRecordUpdateInput!): SearchRecordResponse
86
+ deleteRecord(id: ID!): AcoBooleanResponse
87
+ }
88
+ `,
89
+ resolvers: {
90
+ SearchRecord: {
91
+ id: async parent => {
92
+ const {
93
+ id
94
+ } = (0, _utils.parseIdentifier)(parent.id);
95
+ return (0, _acoRecordId.removeAcoRecordPrefix)(id);
96
+ }
97
+ },
98
+ SearchQuery: {
99
+ getRecord: async (_, {
100
+ id
101
+ }, context) => {
102
+ return (0, _resolve.resolve)(() => context.aco.search.get(id));
103
+ },
104
+ listRecords: async (_, args, context) => {
105
+ try {
106
+ const [entries, meta] = await context.aco.search.list(args);
107
+ return new _responses.ListResponse(entries, meta);
108
+ } catch (e) {
109
+ return new _responses.ErrorResponse(e);
110
+ }
111
+ }
112
+ },
113
+ SearchMutation: {
114
+ createRecord: async (_, {
115
+ data
116
+ }, context) => {
117
+ return (0, _resolve.resolve)(() => context.aco.search.create(data));
118
+ },
119
+ updateRecord: async (_, {
120
+ id,
121
+ data
122
+ }, context) => {
123
+ return (0, _resolve.resolve)(() => context.aco.search.update(id, data));
124
+ },
125
+ deleteRecord: async (_, {
126
+ id
127
+ }, context) => {
128
+ return (0, _resolve.resolve)(() => context.aco.search.delete(id));
129
+ }
130
+ }
131
+ }
132
+ });
133
+ exports.searchRecordSchema = searchRecordSchema;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["searchRecordSchema","GraphQLSchemaPlugin","typeDefs","resolvers","SearchRecord","id","parent","parseIdentifier","removeAcoRecordPrefix","SearchQuery","getRecord","_","context","resolve","aco","search","get","listRecords","args","entries","meta","list","ListResponse","e","ErrorResponse","SearchMutation","createRecord","data","create","updateRecord","update","deleteRecord","delete"],"sources":["record.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { resolve } from \"~/utils/resolve\";\n\nimport { AcoContext } from \"~/types\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { removeAcoRecordPrefix } from \"~/utils/acoRecordId\";\n\nexport const searchRecordSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type SearchRecord {\n id: ID!\n type: String!\n location: SearchLocationType!\n title: String!\n content: String\n data: JSON!\n tags: [String!]!\n savedOn: DateTime\n createdOn: DateTime\n createdBy: AcoUser\n }\n\n type SearchLocationType {\n folderId: ID!\n }\n\n input SearchLocationInput {\n folderId: ID!\n }\n\n input SearchRecordCreateInput {\n id: String!\n type: String!\n title: String!\n content: String\n location: SearchLocationInput!\n data: JSON\n tags: [String!]\n }\n\n input SearchRecordUpdateInput {\n title: String\n content: String\n location: SearchLocationInput\n data: JSON\n tags: [String!]\n }\n\n input SearchRecordListWhereInput {\n type: String!\n location: SearchLocationInput\n tags_in: [String!]\n tags_startsWith: String\n tags_not_startsWith: String\n }\n\n type SearchRecordResponse {\n data: SearchRecord\n error: AcoError\n }\n\n type SearchRecordListResponse {\n data: [SearchRecord]\n error: AcoError\n meta: AcoMeta\n }\n\n extend type SearchQuery {\n getRecord(id: ID!): SearchRecordResponse\n listRecords(\n where: SearchRecordListWhereInput\n search: String\n limit: Int\n after: String\n sort: AcoSort\n ): SearchRecordListResponse\n }\n\n extend type SearchMutation {\n createRecord(data: SearchRecordCreateInput!): SearchRecordResponse\n updateRecord(id: ID!, data: SearchRecordUpdateInput!): SearchRecordResponse\n deleteRecord(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n SearchRecord: {\n id: async parent => {\n const { id } = parseIdentifier(parent.id);\n return removeAcoRecordPrefix(id);\n }\n },\n SearchQuery: {\n getRecord: async (_, { id }, context) => {\n return resolve(() => context.aco.search.get(id));\n },\n listRecords: async (_, args: any, context) => {\n try {\n const [entries, meta] = await context.aco.search.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n SearchMutation: {\n createRecord: async (_, { data }, context) => {\n return resolve(() => context.aco.search.create(data));\n },\n updateRecord: async (_, { id, data }, context) => {\n return resolve(() => context.aco.search.update(id, data));\n },\n deleteRecord: async (_, { id }, context) => {\n return resolve(() => context.aco.search.delete(id));\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AAGA;AACA;AAEO,MAAMA,kBAAkB,GAAG,IAAIC,wCAAmB,CAAa;EAClEC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,YAAY,EAAE;MACVC,EAAE,EAAE,MAAMC,MAAM,IAAI;QAChB,MAAM;UAAED;QAAG,CAAC,GAAG,IAAAE,sBAAe,EAACD,MAAM,CAACD,EAAE,CAAC;QACzC,OAAO,IAAAG,kCAAqB,EAACH,EAAE,CAAC;MACpC;IACJ,CAAC;IACDI,WAAW,EAAE;MACTC,SAAS,EAAE,OAAOC,CAAC,EAAE;QAAEN;MAAG,CAAC,EAAEO,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACC,GAAG,CAACX,EAAE,CAAC,CAAC;MACpD,CAAC;MACDY,WAAW,EAAE,OAAON,CAAC,EAAEO,IAAS,EAAEN,OAAO,KAAK;QAC1C,IAAI;UACA,MAAM,CAACO,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMR,OAAO,CAACE,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAII,uBAAY,CAACH,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOG,CAAC,EAAE;UACR,OAAO,IAAIC,wBAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDE,cAAc,EAAE;MACZC,YAAY,EAAE,OAAOf,CAAC,EAAE;QAAEgB;MAAK,CAAC,EAAEf,OAAO,KAAK;QAC1C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACa,MAAM,CAACD,IAAI,CAAC,CAAC;MACzD,CAAC;MACDE,YAAY,EAAE,OAAOlB,CAAC,EAAE;QAAEN,EAAE;QAAEsB;MAAK,CAAC,EAAEf,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACe,MAAM,CAACzB,EAAE,EAAEsB,IAAI,CAAC,CAAC;MAC7D,CAAC;MACDI,YAAY,EAAE,OAAOpB,CAAC,EAAE;QAAEN;MAAG,CAAC,EAAEO,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACiB,MAAM,CAAC3B,EAAE,CAAC,CAAC;MACvD;IACJ;EACJ;AACJ,CAAC,CAAC;AAAC"}
@@ -0,0 +1,4 @@
1
+ import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
2
+ export declare type SearchRecordModelDefinition = Omit<CmsPrivateModelFull, "noValidate" | "group">;
3
+ export declare const SEARCH_RECORD_MODEL_ID = "acoSearchRecord";
4
+ export declare const createSearchModelDefinition: () => SearchRecordModelDefinition;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSearchModelDefinition = exports.SEARCH_RECORD_MODEL_ID = void 0;
7
+ var _createModelField = require("../utils/createModelField");
8
+ const typeField = () => (0, _createModelField.createModelField)({
9
+ label: "Type",
10
+ type: "text",
11
+ validation: [{
12
+ name: "required",
13
+ message: "Value is required."
14
+ }]
15
+ });
16
+ const titleField = () => (0, _createModelField.createModelField)({
17
+ label: "Title",
18
+ type: "text"
19
+ });
20
+ const contentField = () => (0, _createModelField.createModelField)({
21
+ label: "Content",
22
+ type: "text"
23
+ });
24
+ const locationField = fields => (0, _createModelField.createModelField)({
25
+ label: "Location",
26
+ type: "object",
27
+ multipleValues: false,
28
+ settings: {
29
+ fields
30
+ }
31
+ });
32
+ const locationFolderIdField = () => (0, _createModelField.createModelField)({
33
+ label: "Folder Id",
34
+ type: "text",
35
+ validation: [{
36
+ name: "required",
37
+ message: "Value is required."
38
+ }]
39
+ });
40
+ const dataField = () => (0, _createModelField.createModelField)({
41
+ label: "Data",
42
+ type: "wby-aco-json"
43
+ });
44
+ const tagsField = () => (0, _createModelField.createModelField)({
45
+ label: "Tags",
46
+ type: "text",
47
+ multipleValues: true
48
+ });
49
+ const SEARCH_RECORD_MODEL_ID = "acoSearchRecord";
50
+ exports.SEARCH_RECORD_MODEL_ID = SEARCH_RECORD_MODEL_ID;
51
+ const createSearchModelDefinition = () => {
52
+ return {
53
+ name: "ACO - Search Record",
54
+ modelId: SEARCH_RECORD_MODEL_ID,
55
+ titleFieldId: "title",
56
+ layout: [["type"], ["title"], ["content"], ["location"], ["data"], ["tags"]],
57
+ fields: [typeField(), titleField(), contentField(), locationField([locationFolderIdField()]), dataField(), tagsField()],
58
+ description: "ACO - Search record model",
59
+ isPrivate: true
60
+ };
61
+ };
62
+ exports.createSearchModelDefinition = createSearchModelDefinition;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["typeField","createModelField","label","type","validation","name","message","titleField","contentField","locationField","fields","multipleValues","settings","locationFolderIdField","dataField","tagsField","SEARCH_RECORD_MODEL_ID","createSearchModelDefinition","modelId","titleFieldId","layout","description","isPrivate"],"sources":["record.model.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { createModelField } from \"~/utils/createModelField\";\nimport { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\n\nexport type SearchRecordModelDefinition = Omit<CmsPrivateModelFull, \"noValidate\" | \"group\">;\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\"\n });\n\nconst contentField = () =>\n createModelField({\n label: \"Content\",\n type: \"text\"\n });\n\nconst locationField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Location\",\n type: \"object\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst locationFolderIdField = () =>\n createModelField({\n label: \"Folder Id\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst dataField = () =>\n createModelField({\n label: \"Data\",\n type: \"wby-aco-json\"\n });\n\nconst tagsField = () =>\n createModelField({\n label: \"Tags\",\n type: \"text\",\n multipleValues: true\n });\n\nexport const SEARCH_RECORD_MODEL_ID = \"acoSearchRecord\";\n\nexport const createSearchModelDefinition = (): SearchRecordModelDefinition => {\n return {\n name: \"ACO - Search Record\",\n modelId: SEARCH_RECORD_MODEL_ID,\n titleFieldId: \"title\",\n layout: [[\"type\"], [\"title\"], [\"content\"], [\"location\"], [\"data\"], [\"tags\"]],\n fields: [\n typeField(),\n titleField(),\n contentField(),\n locationField([locationFolderIdField()]),\n dataField(),\n tagsField()\n ],\n description: \"ACO - Search record model\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,SAAS,GAAG,MACd,IAAAC,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMC,UAAU,GAAG,MACf,IAAAN,kCAAgB,EAAC;EACbC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMK,YAAY,GAAG,MACjB,IAAAP,kCAAgB,EAAC;EACbC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMM,aAAa,GAAIC,MAAuB,IAC1C,IAAAT,kCAAgB,EAAC;EACbC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAE,QAAQ;EACdQ,cAAc,EAAE,KAAK;EACrBC,QAAQ,EAAE;IAAEF;EAAO;AACvB,CAAC,CAAC;AAEN,MAAMG,qBAAqB,GAAG,MAC1B,IAAAZ,kCAAgB,EAAC;EACbC,KAAK,EAAE,WAAW;EAClBC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CACR;IACIC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE;EACb,CAAC;AAET,CAAC,CAAC;AAEN,MAAMQ,SAAS,GAAG,MACd,IAAAb,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE;AACV,CAAC,CAAC;AAEN,MAAMY,SAAS,GAAG,MACd,IAAAd,kCAAgB,EAAC;EACbC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZQ,cAAc,EAAE;AACpB,CAAC,CAAC;AAEC,MAAMK,sBAAsB,GAAG,iBAAiB;AAAC;AAEjD,MAAMC,2BAA2B,GAAG,MAAmC;EAC1E,OAAO;IACHZ,IAAI,EAAE,qBAAqB;IAC3Ba,OAAO,EAAEF,sBAAsB;IAC/BG,YAAY,EAAE,OAAO;IACrBC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5EV,MAAM,EAAE,CACJV,SAAS,EAAE,EACXO,UAAU,EAAE,EACZC,YAAY,EAAE,EACdC,aAAa,CAAC,CAACI,qBAAqB,EAAE,CAAC,CAAC,EACxCC,SAAS,EAAE,EACXC,SAAS,EAAE,CACd;IACDM,WAAW,EAAE,2BAA2B;IACxCC,SAAS,EAAE;EACf,CAAC;AACL,CAAC;AAAC"}
@@ -0,0 +1,3 @@
1
+ import { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations";
2
+ import { AcoSearchRecordStorageOperations } from "./record.types";
3
+ export declare const createSearchRecordOperations: (params: CreateAcoStorageOperationsParams) => AcoSearchRecordStorageOperations;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createSearchRecordOperations = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _error = _interopRequireDefault(require("@webiny/error"));
11
+ var _record = require("./record.model");
12
+ var _createAcoStorageOperations = require("../createAcoStorageOperations");
13
+ var _createListSort = require("../utils/createListSort");
14
+ var _createOperationsWrapper = require("../utils/createOperationsWrapper");
15
+ var _getFieldValues = require("../utils/getFieldValues");
16
+ var _acoRecordId = require("../utils/acoRecordId");
17
+ const _excluded = ["tags", "data"];
18
+ const createSearchRecordOperations = params => {
19
+ const {
20
+ cms
21
+ } = params;
22
+ const {
23
+ withModel
24
+ } = (0, _createOperationsWrapper.createOperationsWrapper)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
25
+ modelName: _record.SEARCH_RECORD_MODEL_ID
26
+ }));
27
+ const getRecord = async (model, id) => {
28
+ /**
29
+ * The record "id" has been passed by the original entry.
30
+ * We need to retrieve it via `cms.storageOperations.entries.getLatestByIds()` method and return the first one.
31
+ */
32
+ const revisions = await cms.storageOperations.entries.getLatestByIds(model, {
33
+ ids: [(0, _acoRecordId.attachAcoRecordPrefix)(id)]
34
+ });
35
+ if (revisions.length === 0) {
36
+ throw new _error.default("Record not found.", "NOT_FOUND", {
37
+ id
38
+ });
39
+ }
40
+ return revisions[0];
41
+ };
42
+ return {
43
+ async getRecord({
44
+ id
45
+ }) {
46
+ return withModel(async model => {
47
+ const record = await getRecord(model, id);
48
+ return (0, _getFieldValues.getRecordFieldValues)(record, _createAcoStorageOperations.baseFields);
49
+ });
50
+ },
51
+ listRecords(params) {
52
+ return withModel(async model => {
53
+ const {
54
+ sort,
55
+ where
56
+ } = params;
57
+ const [entries, meta] = await cms.listLatestEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
58
+ sort: (0, _createListSort.createListSort)(sort),
59
+ where: (0, _objectSpread2.default)({}, where || {})
60
+ }));
61
+ return [entries.map(entry => (0, _getFieldValues.getRecordFieldValues)(entry, _createAcoStorageOperations.baseFields)), meta];
62
+ });
63
+ },
64
+ createRecord({
65
+ data: SearchRecordData
66
+ }) {
67
+ return withModel(async model => {
68
+ const {
69
+ tags = [],
70
+ data = {}
71
+ } = SearchRecordData,
72
+ rest = (0, _objectWithoutProperties2.default)(SearchRecordData, _excluded);
73
+ const entry = await cms.createEntry(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
74
+ tags,
75
+ data
76
+ }, rest), {}, {
77
+ id: (0, _acoRecordId.attachAcoRecordPrefix)(rest.id)
78
+ }));
79
+ return (0, _getFieldValues.getRecordFieldValues)(entry, _createAcoStorageOperations.baseFields);
80
+ });
81
+ },
82
+ updateRecord({
83
+ id,
84
+ data
85
+ }) {
86
+ return withModel(async model => {
87
+ const original = await this.getRecord({
88
+ id
89
+ });
90
+ const input = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), data);
91
+ const entry = await cms.updateEntry(model, (0, _acoRecordId.attachAcoRecordPrefix)(original.id), input);
92
+ return (0, _getFieldValues.getRecordFieldValues)(entry, _createAcoStorageOperations.baseFields);
93
+ });
94
+ },
95
+ deleteRecord({
96
+ id
97
+ }) {
98
+ return withModel(async model => {
99
+ await cms.deleteEntry(model, (0, _acoRecordId.attachAcoRecordPrefix)(id));
100
+ return true;
101
+ });
102
+ }
103
+ };
104
+ };
105
+ exports.createSearchRecordOperations = createSearchRecordOperations;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSearchRecordOperations","params","cms","withModel","createOperationsWrapper","modelName","SEARCH_RECORD_MODEL_ID","getRecord","model","id","revisions","storageOperations","entries","getLatestByIds","ids","attachAcoRecordPrefix","length","WebinyError","record","getRecordFieldValues","baseFields","listRecords","sort","where","meta","listLatestEntries","createListSort","map","entry","createRecord","data","SearchRecordData","tags","rest","createEntry","updateRecord","original","input","updateEntry","deleteRecord","deleteEntry"],"sources":["record.so.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { SEARCH_RECORD_MODEL_ID } from \"./record.model\";\nimport { baseFields, CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations\";\nimport { createListSort } from \"~/utils/createListSort\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { getRecordFieldValues } from \"~/utils/getFieldValues\";\nimport { AcoSearchRecordStorageOperations } from \"./record.types\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { attachAcoRecordPrefix } from \"~/utils/acoRecordId\";\n\nexport const createSearchRecordOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoSearchRecordStorageOperations => {\n const { cms } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: SEARCH_RECORD_MODEL_ID\n });\n\n const getRecord = async (model: CmsModel, id: string) => {\n /**\n * The record \"id\" has been passed by the original entry.\n * We need to retrieve it via `cms.storageOperations.entries.getLatestByIds()` method and return the first one.\n */\n const revisions = await cms.storageOperations.entries.getLatestByIds(model, {\n ids: [attachAcoRecordPrefix(id)]\n });\n\n if (revisions.length === 0) {\n throw new WebinyError(\"Record not found.\", \"NOT_FOUND\", {\n id\n });\n }\n\n return revisions[0];\n };\n\n return {\n async getRecord({ id }) {\n return withModel(async model => {\n const record = await getRecord(model, id);\n return getRecordFieldValues(record, baseFields);\n });\n },\n listRecords(params) {\n return withModel(async model => {\n const { sort, where } = params;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: createListSort(sort),\n where: {\n ...(where || {})\n }\n });\n\n return [entries.map(entry => getRecordFieldValues(entry, baseFields)), meta];\n });\n },\n createRecord({ data: SearchRecordData }) {\n return withModel(async model => {\n const { tags = [], data = {}, ...rest } = SearchRecordData;\n const entry = await cms.createEntry(model, {\n tags,\n data,\n ...rest,\n id: attachAcoRecordPrefix(rest.id)\n });\n\n return getRecordFieldValues(entry, baseFields);\n });\n },\n updateRecord(this: AcoSearchRecordStorageOperations, { id, data }) {\n return withModel(async model => {\n const original = await this.getRecord({ id });\n\n const input = {\n ...original,\n ...data\n };\n\n const entry = await cms.updateEntry(\n model,\n attachAcoRecordPrefix(original.id),\n input\n );\n\n return getRecordFieldValues(entry, baseFields);\n });\n },\n deleteRecord({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, attachAcoRecordPrefix(id));\n return true;\n });\n }\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { AcoBaseFields, ListMeta, ListSort } from "../types";
2
+ import { Topic } from "@webiny/pubsub/types";
3
+ export declare type GenericSearchData = {
4
+ [key: string]: any;
5
+ };
6
+ export interface Location {
7
+ folderId: string;
8
+ }
9
+ export interface SearchRecord<TData extends GenericSearchData = GenericSearchData> extends AcoBaseFields {
10
+ type: string;
11
+ title: string;
12
+ content?: string;
13
+ location: Location;
14
+ data: TData;
15
+ tags: string[];
16
+ }
17
+ export interface ListSearchRecordsWhere {
18
+ type: string;
19
+ location?: {
20
+ folderId: string;
21
+ };
22
+ tags_in?: string[];
23
+ tags_startsWith?: string;
24
+ tags_not_startsWith?: string;
25
+ }
26
+ export interface ListSearchRecordsParams {
27
+ where?: ListSearchRecordsWhere;
28
+ search?: string;
29
+ sort?: ListSort;
30
+ limit?: number;
31
+ after?: string | null;
32
+ }
33
+ export declare type CreateSearchRecordParams<TData> = Pick<SearchRecord<TData>, "id" | "title" | "content" | "type" | "location" | "data" | "tags">;
34
+ export interface UpdateSearchRecordParams<TData extends GenericSearchData> {
35
+ title?: string;
36
+ content?: string;
37
+ location?: Location;
38
+ data?: TData;
39
+ tags?: string[];
40
+ }
41
+ export interface DeleteSearchRecordParams {
42
+ id: string;
43
+ }
44
+ export interface StorageOperationsGetSearchRecordParams {
45
+ id: string;
46
+ }
47
+ export declare type StorageOperationsListSearchRecordsParams = ListSearchRecordsParams;
48
+ export interface StorageOperationsCreateSearchRecordParams<TData extends GenericSearchData = GenericSearchData> {
49
+ data: CreateSearchRecordParams<TData>;
50
+ }
51
+ export interface StorageOperationsUpdateSearchRecordParams<TData extends GenericSearchData = GenericSearchData> {
52
+ id: string;
53
+ data: UpdateSearchRecordParams<TData>;
54
+ }
55
+ export declare type StorageOperationsDeleteSearchRecordParams = DeleteSearchRecordParams;
56
+ export interface OnSearchRecordBeforeCreateTopicParams<TData extends GenericSearchData = GenericSearchData> {
57
+ input: CreateSearchRecordParams<TData>;
58
+ }
59
+ export interface OnSearchRecordAfterCreateTopicParams<TData extends GenericSearchData = GenericSearchData> {
60
+ record: SearchRecord<TData>;
61
+ }
62
+ export interface OnSearchRecordBeforeUpdateTopicParams<TData extends GenericSearchData = GenericSearchData> {
63
+ original: SearchRecord<TData>;
64
+ input: Record<string, any>;
65
+ }
66
+ export interface OnSearchRecordAfterUpdateTopicParams<TData extends GenericSearchData = GenericSearchData> {
67
+ original: SearchRecord<TData>;
68
+ record: SearchRecord<TData>;
69
+ input: Record<string, any>;
70
+ }
71
+ export interface OnSearchRecordBeforeDeleteTopicParams<TData extends GenericSearchData = GenericSearchData> {
72
+ record: SearchRecord<TData>;
73
+ }
74
+ export interface OnSearchRecordAfterDeleteTopicParams<TData extends GenericSearchData = GenericSearchData> {
75
+ record: SearchRecord<TData>;
76
+ }
77
+ export interface AcoSearchRecordCrud {
78
+ get<TData>(id: string): Promise<SearchRecord<TData>>;
79
+ list<TData>(params: ListSearchRecordsParams): Promise<[SearchRecord<TData>[], ListMeta]>;
80
+ create<TData>(data: CreateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
81
+ update<TData>(id: string, data: UpdateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
82
+ delete(id: string): Promise<Boolean>;
83
+ onSearchRecordBeforeCreate: Topic<OnSearchRecordBeforeCreateTopicParams>;
84
+ onSearchRecordAfterCreate: Topic<OnSearchRecordAfterCreateTopicParams>;
85
+ onSearchRecordBeforeUpdate: Topic<OnSearchRecordBeforeUpdateTopicParams>;
86
+ onSearchRecordAfterUpdate: Topic<OnSearchRecordAfterUpdateTopicParams>;
87
+ onSearchRecordBeforeDelete: Topic<OnSearchRecordBeforeDeleteTopicParams>;
88
+ onSearchRecordAfterDelete: Topic<OnSearchRecordAfterDeleteTopicParams>;
89
+ }
90
+ export interface AcoSearchRecordStorageOperations {
91
+ getRecord<TData extends GenericSearchData = GenericSearchData>(params: StorageOperationsGetSearchRecordParams): Promise<SearchRecord<TData>>;
92
+ listRecords<TData extends GenericSearchData = GenericSearchData>(params: StorageOperationsListSearchRecordsParams): Promise<[SearchRecord<TData>[], ListMeta]>;
93
+ createRecord<TData extends GenericSearchData = GenericSearchData>(params: StorageOperationsCreateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
94
+ updateRecord<TData extends GenericSearchData = GenericSearchData>(params: StorageOperationsUpdateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;
95
+ deleteRecord(params: StorageOperationsDeleteSearchRecordParams): Promise<boolean>;
96
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["record.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta, ListSort } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport type GenericSearchData = {\n [key: string]: any;\n};\n\nexport interface Location {\n folderId: string;\n}\n\nexport interface SearchRecord<TData extends GenericSearchData = GenericSearchData>\n extends AcoBaseFields {\n type: string;\n title: string;\n content?: string;\n location: Location;\n data: TData;\n tags: string[];\n}\n\nexport interface ListSearchRecordsWhere {\n type: string;\n location?: {\n folderId: string;\n };\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport interface ListSearchRecordsParams {\n where?: ListSearchRecordsWhere;\n search?: string;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateSearchRecordParams<TData> = Pick<\n SearchRecord<TData>,\n \"id\" | \"title\" | \"content\" | \"type\" | \"location\" | \"data\" | \"tags\"\n>;\n\nexport interface UpdateSearchRecordParams<TData extends GenericSearchData> {\n title?: string;\n content?: string;\n location?: Location;\n data?: TData;\n tags?: string[];\n}\n\nexport interface DeleteSearchRecordParams {\n id: string;\n}\n\nexport interface StorageOperationsGetSearchRecordParams {\n id: string;\n}\n\nexport type StorageOperationsListSearchRecordsParams = ListSearchRecordsParams;\n\nexport interface StorageOperationsCreateSearchRecordParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n data: CreateSearchRecordParams<TData>;\n}\nexport interface StorageOperationsUpdateSearchRecordParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n id: string;\n data: UpdateSearchRecordParams<TData>;\n}\nexport type StorageOperationsDeleteSearchRecordParams = DeleteSearchRecordParams;\n\nexport interface OnSearchRecordBeforeCreateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n input: CreateSearchRecordParams<TData>;\n}\n\nexport interface OnSearchRecordAfterCreateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n record: SearchRecord<TData>;\n}\n\nexport interface OnSearchRecordBeforeUpdateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n original: SearchRecord<TData>;\n input: Record<string, any>;\n}\n\nexport interface OnSearchRecordAfterUpdateTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n original: SearchRecord<TData>;\n record: SearchRecord<TData>;\n input: Record<string, any>;\n}\n\nexport interface OnSearchRecordBeforeDeleteTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n record: SearchRecord<TData>;\n}\n\nexport interface OnSearchRecordAfterDeleteTopicParams<\n TData extends GenericSearchData = GenericSearchData\n> {\n record: SearchRecord<TData>;\n}\n\nexport interface AcoSearchRecordCrud {\n get<TData>(id: string): Promise<SearchRecord<TData>>;\n list<TData>(params: ListSearchRecordsParams): Promise<[SearchRecord<TData>[], ListMeta]>;\n create<TData>(data: CreateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;\n update<TData>(id: string, data: UpdateSearchRecordParams<TData>): Promise<SearchRecord<TData>>;\n delete(id: string): Promise<Boolean>;\n onSearchRecordBeforeCreate: Topic<OnSearchRecordBeforeCreateTopicParams>;\n onSearchRecordAfterCreate: Topic<OnSearchRecordAfterCreateTopicParams>;\n onSearchRecordBeforeUpdate: Topic<OnSearchRecordBeforeUpdateTopicParams>;\n onSearchRecordAfterUpdate: Topic<OnSearchRecordAfterUpdateTopicParams>;\n onSearchRecordBeforeDelete: Topic<OnSearchRecordBeforeDeleteTopicParams>;\n onSearchRecordAfterDelete: Topic<OnSearchRecordAfterDeleteTopicParams>;\n}\nexport interface AcoSearchRecordStorageOperations {\n getRecord<TData extends GenericSearchData = GenericSearchData>(\n params: StorageOperationsGetSearchRecordParams\n ): Promise<SearchRecord<TData>>;\n listRecords<TData extends GenericSearchData = GenericSearchData>(\n params: StorageOperationsListSearchRecordsParams\n ): Promise<[SearchRecord<TData>[], ListMeta]>;\n createRecord<TData extends GenericSearchData = GenericSearchData>(\n params: StorageOperationsCreateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n updateRecord<TData extends GenericSearchData = GenericSearchData>(\n params: StorageOperationsUpdateSearchRecordParams<TData>\n ): Promise<SearchRecord<TData>>;\n deleteRecord(params: StorageOperationsDeleteSearchRecordParams): Promise<boolean>;\n}\n"],"mappings":""}