@webiny/api-aco 0.0.0-unstable.3386f66516 → 0.0.0-unstable.496cf268ac
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/README.md +15 -0
- package/context/folders.js +22 -22
- package/context/folders.js.map +1 -1
- package/context/links.js +18 -14
- package/context/links.js.map +1 -1
- package/createAcoContext.d.ts +3 -0
- package/createAcoContext.js +63 -0
- package/createAcoContext.js.map +1 -0
- package/createAcoCrud.d.ts +2 -0
- package/createAcoCrud.js +17 -0
- package/createAcoCrud.js.map +1 -0
- package/createAcoFields.d.ts +2 -0
- package/createAcoFields.js +40 -0
- package/createAcoFields.js.map +1 -0
- package/createAcoGraphQL.d.ts +3 -0
- package/createAcoGraphQL.js +92 -0
- package/createAcoGraphQL.js.map +1 -0
- package/createAcoHooks.d.ts +2 -0
- package/createAcoHooks.js +11 -0
- package/createAcoHooks.js.map +1 -0
- package/createAcoModels.d.ts +2 -0
- package/createAcoModels.js +67 -0
- package/createAcoModels.js.map +1 -0
- package/createAcoStorageOperations.d.ts +10 -0
- package/createAcoStorageOperations.js +19 -0
- package/createAcoStorageOperations.js.map +1 -0
- package/folder/folder.crud.d.ts +3 -0
- package/folder/folder.crud.js +92 -0
- package/folder/folder.crud.js.map +1 -0
- package/folder/folder.gql.d.ts +3 -0
- package/folder/folder.gql.js +103 -0
- package/folder/folder.gql.js.map +1 -0
- package/folder/folder.model.d.ts +6 -0
- package/folder/folder.model.js +79 -0
- package/folder/folder.model.js.map +1 -0
- package/folder/folder.so.d.ts +3 -0
- package/folder/folder.so.js +151 -0
- package/folder/folder.so.js.map +1 -0
- package/folder/folder.types.d.ts +83 -0
- package/folder/folder.types.js +5 -0
- package/folder/folder.types.js.map +1 -0
- package/folder/onFolderBeforeDelete.hook.d.ts +2 -0
- package/folder/onFolderBeforeDelete.hook.js +53 -0
- package/folder/onFolderBeforeDelete.hook.js.map +1 -0
- package/index.d.ts +1 -10
- package/index.js +7 -68
- package/index.js.map +1 -1
- package/package.json +23 -22
- package/record/record.crud.d.ts +3 -0
- package/record/record.crud.js +92 -0
- package/record/record.crud.js.map +1 -0
- package/record/record.gql.d.ts +3 -0
- package/record/record.gql.js +117 -0
- package/record/record.gql.js.map +1 -0
- package/record/record.model.d.ts +6 -0
- package/record/record.model.js +63 -0
- package/record/record.model.js.map +1 -0
- package/record/record.so.d.ts +3 -0
- package/record/record.so.js +98 -0
- package/record/record.so.js.map +1 -0
- package/record/record.types.d.ts +91 -0
- package/record/record.types.js +5 -0
- package/record/record.types.js.map +1 -0
- package/subscriptions/index.d.ts +1 -2
- package/subscriptions/index.js +4 -12
- package/subscriptions/index.js.map +1 -1
- package/types.d.ts +24 -202
- package/types.js +8 -1
- package/types.js.map +1 -1
- package/utils/createListSort.d.ts +2 -0
- package/utils/createListSort.js +13 -0
- package/utils/createListSort.js.map +1 -0
- package/utils/createModelField.d.ts +6 -0
- package/utils/createModelField.js +39 -0
- package/utils/createModelField.js.map +1 -0
- package/utils/createOperationsWrapper.d.ts +9 -0
- package/utils/createOperationsWrapper.js +29 -0
- package/utils/createOperationsWrapper.js.map +1 -0
- package/utils/fieldResolver.d.ts +16 -0
- package/utils/fieldResolver.js +44 -0
- package/utils/fieldResolver.js.map +1 -0
- package/utils/getFieldValues.d.ts +2 -0
- package/utils/getFieldValues.js +19 -0
- package/utils/getFieldValues.js.map +1 -0
- package/utils/isInstallationPending.d.ts +4 -0
- package/utils/isInstallationPending.js +21 -0
- package/utils/isInstallationPending.js.map +1 -0
- package/utils/modelFactory.d.ts +17 -0
- package/utils/modelFactory.js +23 -0
- package/utils/modelFactory.js.map +1 -0
- package/utils/resolve.d.ts +2 -0
- package/utils/resolve.js +15 -0
- package/utils/resolve.js.map +1 -0
- package/subscriptions/aftePageCreate.d.ts +0 -3
- package/subscriptions/aftePageCreate.js +0 -45
- package/subscriptions/aftePageCreate.js.map +0 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { AcoBaseFields, ListMeta, ListSort } from "../types";
|
|
2
|
+
import { Topic } from "@webiny/pubsub/types";
|
|
3
|
+
export interface Folder extends AcoBaseFields {
|
|
4
|
+
title: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
type: string;
|
|
7
|
+
parentId?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface ListFoldersWhere {
|
|
10
|
+
type: string;
|
|
11
|
+
parentId?: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface ListFoldersParams {
|
|
14
|
+
where: ListFoldersWhere;
|
|
15
|
+
sort?: ListSort;
|
|
16
|
+
limit?: number;
|
|
17
|
+
after?: string | null;
|
|
18
|
+
}
|
|
19
|
+
export declare type CreateFolderParams = Pick<Folder, "title" | "slug" | "type" | "parentId">;
|
|
20
|
+
export interface UpdateFolderParams {
|
|
21
|
+
title?: string;
|
|
22
|
+
slug?: string;
|
|
23
|
+
parentId?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface DeleteFolderParams {
|
|
26
|
+
id: string;
|
|
27
|
+
}
|
|
28
|
+
export interface StorageOperationsGetFolderParams {
|
|
29
|
+
id?: string;
|
|
30
|
+
slug?: string;
|
|
31
|
+
type?: string;
|
|
32
|
+
parentId?: string | null;
|
|
33
|
+
}
|
|
34
|
+
export declare type StorageOperationsListFoldersParams = ListFoldersParams;
|
|
35
|
+
export interface StorageOperationsCreateFolderParams {
|
|
36
|
+
data: CreateFolderParams;
|
|
37
|
+
}
|
|
38
|
+
export interface StorageOperationsUpdateFolderParams {
|
|
39
|
+
id: string;
|
|
40
|
+
data: UpdateFolderParams;
|
|
41
|
+
}
|
|
42
|
+
export declare type StorageOperationsDeleteFolderParams = DeleteFolderParams;
|
|
43
|
+
export interface OnFolderBeforeCreateTopicParams {
|
|
44
|
+
input: CreateFolderParams;
|
|
45
|
+
}
|
|
46
|
+
export interface OnFolderAfterCreateTopicParams {
|
|
47
|
+
folder: Folder;
|
|
48
|
+
}
|
|
49
|
+
export interface OnFolderBeforeUpdateTopicParams {
|
|
50
|
+
original: Folder;
|
|
51
|
+
input: Record<string, any>;
|
|
52
|
+
}
|
|
53
|
+
export interface OnFolderAfterUpdateTopicParams {
|
|
54
|
+
original: Folder;
|
|
55
|
+
folder: Folder;
|
|
56
|
+
input: Record<string, any>;
|
|
57
|
+
}
|
|
58
|
+
export interface OnFolderBeforeDeleteTopicParams {
|
|
59
|
+
folder: Folder;
|
|
60
|
+
}
|
|
61
|
+
export interface OnFolderAfterDeleteTopicParams {
|
|
62
|
+
folder: Folder;
|
|
63
|
+
}
|
|
64
|
+
export interface AcoFolderCrud {
|
|
65
|
+
get(id: string): Promise<Folder>;
|
|
66
|
+
list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;
|
|
67
|
+
create(data: CreateFolderParams): Promise<Folder>;
|
|
68
|
+
update(id: string, data: UpdateFolderParams): Promise<Folder>;
|
|
69
|
+
delete(id: string): Promise<Boolean>;
|
|
70
|
+
onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;
|
|
71
|
+
onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;
|
|
72
|
+
onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;
|
|
73
|
+
onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;
|
|
74
|
+
onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;
|
|
75
|
+
onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;
|
|
76
|
+
}
|
|
77
|
+
export interface AcoFolderStorageOperations {
|
|
78
|
+
getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;
|
|
79
|
+
listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;
|
|
80
|
+
createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;
|
|
81
|
+
updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;
|
|
82
|
+
deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { AcoBaseFields, ListMeta, ListSort } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface Folder extends AcoBaseFields {\n title: string;\n slug: string;\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n create(data: CreateFolderParams): Promise<Folder>;\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n delete(id: string): Promise<Boolean>;\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.onFolderBeforeDeleteHook = void 0;
|
|
8
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
9
|
+
const onFolderBeforeDeleteHook = ({
|
|
10
|
+
aco
|
|
11
|
+
}) => {
|
|
12
|
+
aco.folder.onFolderBeforeDelete.subscribe(async ({
|
|
13
|
+
folder
|
|
14
|
+
}) => {
|
|
15
|
+
try {
|
|
16
|
+
const {
|
|
17
|
+
id,
|
|
18
|
+
type
|
|
19
|
+
} = folder;
|
|
20
|
+
|
|
21
|
+
// Fetching all child folders
|
|
22
|
+
const [children] = await aco.folder.list({
|
|
23
|
+
where: {
|
|
24
|
+
type,
|
|
25
|
+
parentId: id
|
|
26
|
+
},
|
|
27
|
+
limit: 1
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Fetching all records inside the folder
|
|
31
|
+
const [records] = await aco.search.list({
|
|
32
|
+
where: {
|
|
33
|
+
type,
|
|
34
|
+
location: {
|
|
35
|
+
folderId: id
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
limit: 1
|
|
39
|
+
});
|
|
40
|
+
if (children.length > 0 || records.length > 0) {
|
|
41
|
+
throw new _error.default("Error: delete all child folders and entries before proceeding.", "DELETE_FOLDER_WITH_CHILDREN", {
|
|
42
|
+
folder
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
} catch (error) {
|
|
46
|
+
throw _error.default.from(error, {
|
|
47
|
+
message: "Error while executing onFolderBeforeDelete hook",
|
|
48
|
+
code: "ACO_BEFORE_FOLDER_DELETE_HOOK"
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
exports.onFolderBeforeDeleteHook = onFolderBeforeDeleteHook;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["onFolderBeforeDeleteHook","aco","folder","onFolderBeforeDelete","subscribe","id","type","children","list","where","parentId","limit","records","search","location","folderId","length","WebinyError","error","from","message","code"],"sources":["onFolderBeforeDelete.hook.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AcoContext } from \"~/types\";\n\nexport const onFolderBeforeDeleteHook = ({ aco }: AcoContext) => {\n aco.folder.onFolderBeforeDelete.subscribe(async ({ folder }) => {\n try {\n const { id, type } = folder;\n\n // Fetching all child folders\n const [children] = await aco.folder.list({\n where: { type, parentId: id },\n limit: 1\n });\n\n // Fetching all records inside the folder\n const [records] = await aco.search.list({\n where: { type, location: { folderId: id } },\n limit: 1\n });\n\n if (children.length > 0 || records.length > 0) {\n throw new WebinyError(\n \"Error: delete all child folders and entries before proceeding.\",\n \"DELETE_FOLDER_WITH_CHILDREN\",\n {\n folder\n }\n );\n }\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing onFolderBeforeDelete hook\",\n code: \"ACO_BEFORE_FOLDER_DELETE_HOOK\"\n });\n }\n });\n};\n"],"mappings":";;;;;;;AAAA;AAGO,MAAMA,wBAAwB,GAAG,CAAC;EAAEC;AAAgB,CAAC,KAAK;EAC7DA,GAAG,CAACC,MAAM,CAACC,oBAAoB,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAO,CAAC,KAAK;IAC5D,IAAI;MACA,MAAM;QAAEG,EAAE;QAAEC;MAAK,CAAC,GAAGJ,MAAM;;MAE3B;MACA,MAAM,CAACK,QAAQ,CAAC,GAAG,MAAMN,GAAG,CAACC,MAAM,CAACM,IAAI,CAAC;QACrCC,KAAK,EAAE;UAAEH,IAAI;UAAEI,QAAQ,EAAEL;QAAG,CAAC;QAC7BM,KAAK,EAAE;MACX,CAAC,CAAC;;MAEF;MACA,MAAM,CAACC,OAAO,CAAC,GAAG,MAAMX,GAAG,CAACY,MAAM,CAACL,IAAI,CAAC;QACpCC,KAAK,EAAE;UAAEH,IAAI;UAAEQ,QAAQ,EAAE;YAAEC,QAAQ,EAAEV;UAAG;QAAE,CAAC;QAC3CM,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAIJ,QAAQ,CAACS,MAAM,GAAG,CAAC,IAAIJ,OAAO,CAACI,MAAM,GAAG,CAAC,EAAE;QAC3C,MAAM,IAAIC,cAAW,CACjB,gEAAgE,EAChE,6BAA6B,EAC7B;UACIf;QACJ,CAAC,CACJ;MACL;IACJ,CAAC,CAAC,OAAOgB,KAAK,EAAE;MACZ,MAAMD,cAAW,CAACE,IAAI,CAACD,KAAK,EAAE;QAC1BE,OAAO,EAAE,iDAAiD;QAC1DC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
|
package/index.d.ts
CHANGED
|
@@ -1,10 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { ACOContext, StorageOperations } from "./types";
|
|
3
|
-
export interface FoldersConfig {
|
|
4
|
-
storageOperations: StorageOperations;
|
|
5
|
-
}
|
|
6
|
-
export declare const createACO: () => never[];
|
|
7
|
-
export declare const createFoldersContext: ({ storageOperations }: FoldersConfig) => ContextPlugin<ACOContext>;
|
|
8
|
-
export declare const createFoldersGraphQL: () => import("@webiny/handler-graphql").GraphQLSchemaPlugin<ACOContext>[];
|
|
9
|
-
export declare const createFoldersGraphQLSubscriptions: () => ContextPlugin<ACOContext>[];
|
|
10
|
-
export declare const createFoldersImportExportSubscriptions: () => ContextPlugin<ACOContext>[];
|
|
1
|
+
export declare const createACO: () => (import("@webiny/api").ContextPlugin<import("./types").AcoContext> | import("@webiny/api-headless-cms/types").CmsModelFieldToGraphQLPlugin<import("@webiny/api-headless-cms/types").CmsModelField>[] | import("@webiny/api").ContextPlugin<import("@webiny/api-admin-settings/types").AdminSettingsContext>)[];
|
package/index.js
CHANGED
|
@@ -1,75 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
|
-
exports.
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var _context = require("./context");
|
|
15
|
-
|
|
16
|
-
var _subscriptions = require("./subscriptions");
|
|
17
|
-
|
|
18
|
-
var _graphql = require("./graphql");
|
|
19
|
-
|
|
6
|
+
exports.createACO = void 0;
|
|
7
|
+
var _apiAdminSettings = require("@webiny/api-admin-settings");
|
|
8
|
+
var _createAcoContext = require("./createAcoContext");
|
|
9
|
+
var _createAcoFields = require("./createAcoFields");
|
|
10
|
+
var _createAcoGraphQL = require("./createAcoGraphQL");
|
|
20
11
|
const createACO = () => {
|
|
21
|
-
return [];
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
exports.createACO = createACO;
|
|
25
|
-
|
|
26
|
-
const createFoldersContext = ({
|
|
27
|
-
storageOperations
|
|
28
|
-
}) => {
|
|
29
|
-
return new _api.ContextPlugin(async context => {
|
|
30
|
-
const getTenantId = () => {
|
|
31
|
-
const tenant = context.tenancy.getCurrentTenant();
|
|
32
|
-
|
|
33
|
-
if (!tenant) {
|
|
34
|
-
throw new _error.default("Missing tenant in API Folders.");
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return tenant.id;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const getLocaleCode = () => {
|
|
41
|
-
const locale = context.i18n.getContentLocale();
|
|
42
|
-
|
|
43
|
-
if (!locale) {
|
|
44
|
-
throw new _error.default("Missing content locale in API Folders.");
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return locale.code;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const getIdentity = () => {
|
|
51
|
-
return context.security.getIdentity();
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
context.folders = await (0, _context.createContext)({
|
|
55
|
-
storageOperations,
|
|
56
|
-
getTenantId,
|
|
57
|
-
getLocaleCode,
|
|
58
|
-
getIdentity
|
|
59
|
-
});
|
|
60
|
-
});
|
|
12
|
+
return [...(0, _apiAdminSettings.createAdminSettingsContext)(), (0, _createAcoContext.createAcoContext)(), (0, _createAcoFields.createAcoFields)(), (0, _createAcoGraphQL.createAcoGraphQL)()];
|
|
61
13
|
};
|
|
62
|
-
|
|
63
|
-
exports.createFoldersContext = createFoldersContext;
|
|
64
|
-
|
|
65
|
-
const createFoldersGraphQL = () => _graphql.graphqlPlugins;
|
|
66
|
-
|
|
67
|
-
exports.createFoldersGraphQL = createFoldersGraphQL;
|
|
68
|
-
|
|
69
|
-
const createFoldersGraphQLSubscriptions = () => (0, _subscriptions.graphQLSubscriptions)();
|
|
70
|
-
|
|
71
|
-
exports.createFoldersGraphQLSubscriptions = createFoldersGraphQLSubscriptions;
|
|
72
|
-
|
|
73
|
-
const createFoldersImportExportSubscriptions = () => (0, _subscriptions.importExportSubscriptions)();
|
|
74
|
-
|
|
75
|
-
exports.createFoldersImportExportSubscriptions = createFoldersImportExportSubscriptions;
|
|
14
|
+
exports.createACO = createACO;
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createACO","
|
|
1
|
+
{"version":3,"names":["createACO","createAdminSettingsContext","createAcoContext","createAcoFields","createAcoGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createAdminSettingsContext } from \"@webiny/api-admin-settings\";\n\nimport { createAcoContext } from \"~/createAcoContext\";\nimport { createAcoFields } from \"~/createAcoFields\";\nimport { createAcoGraphQL } from \"~/createAcoGraphQL\";\n\nexport const createACO = () => {\n return [\n ...createAdminSettingsContext(),\n createAcoContext(),\n createAcoFields(),\n createAcoGraphQL()\n ];\n};\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AAEO,MAAMA,SAAS,GAAG,MAAM;EAC3B,OAAO,CACH,GAAG,IAAAC,4CAA0B,GAAE,EAC/B,IAAAC,kCAAgB,GAAE,EAClB,IAAAC,gCAAe,GAAE,EACjB,IAAAC,kCAAgB,GAAE,CACrB;AACL,CAAC;AAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-aco",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.496cf268ac",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aco:base"
|
|
@@ -27,31 +27,32 @@
|
|
|
27
27
|
"@babel/preset-env": "^7.19.4",
|
|
28
28
|
"@babel/preset-typescript": "^7.18.6",
|
|
29
29
|
"@babel/runtime": "^7.19.0",
|
|
30
|
-
"@webiny/api-
|
|
31
|
-
"@webiny/api-
|
|
32
|
-
"@webiny/api-
|
|
33
|
-
"@webiny/api-
|
|
34
|
-
"@webiny/
|
|
35
|
-
"@webiny/
|
|
36
|
-
"@webiny/
|
|
37
|
-
"@webiny/
|
|
30
|
+
"@webiny/api-headless-cms-ddb": "^0.0.0-unstable.496cf268ac",
|
|
31
|
+
"@webiny/api-i18n-ddb": "^0.0.0-unstable.496cf268ac",
|
|
32
|
+
"@webiny/api-security-so-ddb": "^0.0.0-unstable.496cf268ac",
|
|
33
|
+
"@webiny/api-tenancy-so-ddb": "^0.0.0-unstable.496cf268ac",
|
|
34
|
+
"@webiny/api-wcp": "^0.0.0-unstable.496cf268ac",
|
|
35
|
+
"@webiny/cli": "^0.0.0-unstable.496cf268ac",
|
|
36
|
+
"@webiny/handler-aws": "^0.0.0-unstable.496cf268ac",
|
|
37
|
+
"@webiny/plugins": "^0.0.0-unstable.496cf268ac",
|
|
38
|
+
"@webiny/project-utils": "^0.0.0-unstable.496cf268ac",
|
|
38
39
|
"rimraf": "^3.0.2",
|
|
39
40
|
"ttypescript": "^1.5.13",
|
|
40
41
|
"typescript": "^4.7.4"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
|
-
"@webiny/api": "0.0.0-unstable.
|
|
44
|
-
"@webiny/api-
|
|
45
|
-
"@webiny/api-
|
|
46
|
-
"@webiny/api-
|
|
47
|
-
"@webiny/api-
|
|
48
|
-
"@webiny/
|
|
49
|
-
"@webiny/
|
|
50
|
-
"@webiny/handler
|
|
51
|
-
"@webiny/
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
44
|
+
"@webiny/api": "0.0.0-unstable.496cf268ac",
|
|
45
|
+
"@webiny/api-admin-settings": "0.0.0-unstable.496cf268ac",
|
|
46
|
+
"@webiny/api-headless-cms": "0.0.0-unstable.496cf268ac",
|
|
47
|
+
"@webiny/api-i18n": "0.0.0-unstable.496cf268ac",
|
|
48
|
+
"@webiny/api-security": "0.0.0-unstable.496cf268ac",
|
|
49
|
+
"@webiny/api-tenancy": "0.0.0-unstable.496cf268ac",
|
|
50
|
+
"@webiny/error": "0.0.0-unstable.496cf268ac",
|
|
51
|
+
"@webiny/handler": "0.0.0-unstable.496cf268ac",
|
|
52
|
+
"@webiny/handler-graphql": "0.0.0-unstable.496cf268ac",
|
|
53
|
+
"@webiny/pubsub": "0.0.0-unstable.496cf268ac",
|
|
54
|
+
"@webiny/utils": "0.0.0-unstable.496cf268ac",
|
|
55
|
+
"lodash": "4.17.21"
|
|
55
56
|
},
|
|
56
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "496cf268acd5b092c860b62d75c7d765c9472043"
|
|
57
58
|
}
|
|
@@ -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,117 @@
|
|
|
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
|
+
const searchRecordSchema = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
11
|
+
typeDefs: /* GraphQL */`
|
|
12
|
+
type SearchRecord {
|
|
13
|
+
id: ID!
|
|
14
|
+
type: String!
|
|
15
|
+
location: SearchLocationType!
|
|
16
|
+
title: String!
|
|
17
|
+
content: String
|
|
18
|
+
data: JSON
|
|
19
|
+
savedOn: DateTime
|
|
20
|
+
createdOn: DateTime
|
|
21
|
+
createdBy: AcoUser
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type SearchLocationType {
|
|
25
|
+
folderId: ID!
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
input SearchLocationInput {
|
|
29
|
+
folderId: ID!
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
input SearchRecordCreateInput {
|
|
33
|
+
id: String!
|
|
34
|
+
type: String!
|
|
35
|
+
title: String!
|
|
36
|
+
content: String
|
|
37
|
+
location: SearchLocationInput!
|
|
38
|
+
data: JSON
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
input SearchRecordUpdateInput {
|
|
42
|
+
title: String
|
|
43
|
+
content: String
|
|
44
|
+
location: SearchLocationInput
|
|
45
|
+
data: JSON
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
input SearchRecordListWhereInput {
|
|
49
|
+
type: String!
|
|
50
|
+
location: SearchLocationInput
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
type SearchRecordResponse {
|
|
54
|
+
data: SearchRecord
|
|
55
|
+
error: AcoError
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
type SearchRecordListResponse {
|
|
59
|
+
data: [SearchRecord]
|
|
60
|
+
error: AcoError
|
|
61
|
+
meta: AcoMeta
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
extend type SearchQuery {
|
|
65
|
+
getRecord(id: ID!): SearchRecordResponse
|
|
66
|
+
listRecords(
|
|
67
|
+
where: SearchRecordListWhereInput
|
|
68
|
+
search: String
|
|
69
|
+
limit: Int
|
|
70
|
+
after: String
|
|
71
|
+
sort: AcoSort
|
|
72
|
+
): SearchRecordListResponse
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
extend type SearchMutation {
|
|
76
|
+
createRecord(data: SearchRecordCreateInput!): SearchRecordResponse
|
|
77
|
+
updateRecord(id: ID!, data: SearchRecordUpdateInput!): SearchRecordResponse
|
|
78
|
+
deleteRecord(id: ID!): AcoBooleanResponse
|
|
79
|
+
}
|
|
80
|
+
`,
|
|
81
|
+
resolvers: {
|
|
82
|
+
SearchQuery: {
|
|
83
|
+
getRecord: async (_, {
|
|
84
|
+
id
|
|
85
|
+
}, context) => {
|
|
86
|
+
return (0, _resolve.resolve)(() => context.aco.search.get(id));
|
|
87
|
+
},
|
|
88
|
+
listRecords: async (_, args, context) => {
|
|
89
|
+
try {
|
|
90
|
+
const [entries, meta] = await context.aco.search.list(args);
|
|
91
|
+
return new _responses.ListResponse(entries, meta);
|
|
92
|
+
} catch (e) {
|
|
93
|
+
return new _responses.ErrorResponse(e);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
SearchMutation: {
|
|
98
|
+
createRecord: async (_, {
|
|
99
|
+
data
|
|
100
|
+
}, context) => {
|
|
101
|
+
return (0, _resolve.resolve)(() => context.aco.search.create(data));
|
|
102
|
+
},
|
|
103
|
+
updateRecord: async (_, {
|
|
104
|
+
id,
|
|
105
|
+
data
|
|
106
|
+
}, context) => {
|
|
107
|
+
return (0, _resolve.resolve)(() => context.aco.search.update(id, data));
|
|
108
|
+
},
|
|
109
|
+
deleteRecord: async (_, {
|
|
110
|
+
id
|
|
111
|
+
}, context) => {
|
|
112
|
+
return (0, _resolve.resolve)(() => context.aco.search.delete(id));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
exports.searchRecordSchema = searchRecordSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["searchRecordSchema","GraphQLSchemaPlugin","typeDefs","resolvers","SearchQuery","getRecord","_","id","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\";\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 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 }\n\n input SearchRecordUpdateInput {\n title: String\n content: String\n location: SearchLocationInput\n data: JSON\n }\n\n input SearchRecordListWhereInput {\n type: String!\n location: SearchLocationInput\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 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;AAIO,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,KAAK;EACDC,SAAS,EAAE;IACPC,WAAW,EAAE;MACTC,SAAS,EAAE,OAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACC,GAAG,CAACL,EAAE,CAAC,CAAC;MACpD,CAAC;MACDM,WAAW,EAAE,OAAOP,CAAC,EAAEQ,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,OAAOhB,CAAC,EAAE;QAAEiB;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,OAAOnB,CAAC,EAAE;QAAEC,EAAE;QAAEgB;MAAK,CAAC,EAAEf,OAAO,KAAK;QAC9C,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACe,MAAM,CAACnB,EAAE,EAAEgB,IAAI,CAAC,CAAC;MAC7D,CAAC;MACDI,YAAY,EAAE,OAAOrB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAO,IAAAC,gBAAO,EAAC,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACiB,MAAM,CAACrB,EAAE,CAAC,CAAC;MACvD;IACJ;EACJ;AACJ,CAAC,CAAC;AAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CmsModel } from "@webiny/api-headless-cms/types";
|
|
2
|
+
export declare type SearchRecordModelDefinition = Pick<CmsModel, "name" | "modelId" | "layout" | "titleFieldId" | "description" | "fields" | "isPrivate"> & {
|
|
3
|
+
isPrivate: true;
|
|
4
|
+
};
|
|
5
|
+
export declare const SEARCH_RECORD_MODEL_ID = "acoSearchRecord";
|
|
6
|
+
export declare const createSearchModelDefinition: () => SearchRecordModelDefinition;
|
|
@@ -0,0 +1,63 @@
|
|
|
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
|
+
parent: "searchRecord",
|
|
12
|
+
validation: [{
|
|
13
|
+
name: "required",
|
|
14
|
+
message: "Value is required."
|
|
15
|
+
}]
|
|
16
|
+
});
|
|
17
|
+
const titleField = () => (0, _createModelField.createModelField)({
|
|
18
|
+
label: "Title",
|
|
19
|
+
type: "text",
|
|
20
|
+
parent: "searchRecord"
|
|
21
|
+
});
|
|
22
|
+
const contentField = () => (0, _createModelField.createModelField)({
|
|
23
|
+
label: "Content",
|
|
24
|
+
type: "text",
|
|
25
|
+
parent: "searchRecord"
|
|
26
|
+
});
|
|
27
|
+
const locationField = fields => (0, _createModelField.createModelField)({
|
|
28
|
+
label: "Location",
|
|
29
|
+
type: "object",
|
|
30
|
+
parent: "searchRecord",
|
|
31
|
+
multipleValues: false,
|
|
32
|
+
settings: {
|
|
33
|
+
fields
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const locationFolderIdField = () => (0, _createModelField.createModelField)({
|
|
37
|
+
label: "Folder Id",
|
|
38
|
+
type: "text",
|
|
39
|
+
parent: "searchRecord Location",
|
|
40
|
+
validation: [{
|
|
41
|
+
name: "required",
|
|
42
|
+
message: "Value is required."
|
|
43
|
+
}]
|
|
44
|
+
});
|
|
45
|
+
const dataField = () => (0, _createModelField.createModelField)({
|
|
46
|
+
label: "Data",
|
|
47
|
+
type: "wby-aco-json",
|
|
48
|
+
parent: "searchRecord"
|
|
49
|
+
});
|
|
50
|
+
const SEARCH_RECORD_MODEL_ID = "acoSearchRecord";
|
|
51
|
+
exports.SEARCH_RECORD_MODEL_ID = SEARCH_RECORD_MODEL_ID;
|
|
52
|
+
const createSearchModelDefinition = () => {
|
|
53
|
+
return {
|
|
54
|
+
name: "ACO - Search Record",
|
|
55
|
+
modelId: SEARCH_RECORD_MODEL_ID,
|
|
56
|
+
titleFieldId: "title",
|
|
57
|
+
layout: [["searchRecord_type"], ["searchRecord_title"], ["searchRecord_content"], ["searchRecord_location"], ["searchRecord_data"]],
|
|
58
|
+
fields: [typeField(), titleField(), contentField(), locationField([locationFolderIdField()]), dataField()],
|
|
59
|
+
description: "ACO - Search record model",
|
|
60
|
+
isPrivate: true
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
exports.createSearchModelDefinition = createSearchModelDefinition;
|