@webiny/api-apw 5.23.1 → 5.25.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/createApw/createChangeRequestMethods.js.map +1 -0
- package/createApw/createCommentMethods.js.map +1 -0
- package/createApw/createContentReviewMethods.js.map +1 -0
- package/createApw/createReviewerMethods.js.map +1 -0
- package/createApw/createWorkflowMethods.js.map +1 -0
- package/createApw/index.js +4 -2
- package/createApw/index.js.map +1 -0
- package/index.js.map +1 -0
- package/package.json +23 -23
- package/plugins/context.js +29 -6
- package/plugins/context.js.map +1 -0
- package/plugins/createManageCMSPlugin.js.map +1 -0
- package/plugins/graphql/changeRequest.gql.js +3 -0
- package/plugins/graphql/changeRequest.gql.js.map +1 -0
- package/plugins/graphql/comment.gql.js +3 -0
- package/plugins/graphql/comment.gql.js.map +1 -0
- package/plugins/graphql/contentReview.gql.js +3 -0
- package/plugins/graphql/contentReview.gql.js.map +1 -0
- package/plugins/graphql/reviewer.gql.js +3 -0
- package/plugins/graphql/reviewer.gql.js.map +1 -0
- package/plugins/graphql/workflow.gql.js +3 -0
- package/plugins/graphql/workflow.gql.js.map +1 -0
- package/plugins/graphql.js +1 -0
- package/plugins/graphql.js.map +1 -0
- package/plugins/hooks/createReviewerFromIdentity.js.map +1 -0
- package/plugins/hooks/deleteChangeRequestsAfterContentReview.d.ts +1 -1
- package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +2 -1
- package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -0
- package/plugins/hooks/deleteCommentsAfterChangeRequest.d.ts +1 -1
- package/plugins/hooks/deleteCommentsAfterChangeRequest.js +3 -2
- package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -0
- package/plugins/hooks/extendPbPageSchema.js.map +1 -0
- package/plugins/hooks/index.js.map +1 -0
- package/plugins/hooks/initializeContentReviewSteps.d.ts +2 -2
- package/plugins/hooks/initializeContentReviewSteps.js +3 -2
- package/plugins/hooks/initializeContentReviewSteps.js.map +1 -0
- package/plugins/hooks/linkWorkflowToPage.d.ts +2 -2
- package/plugins/hooks/linkWorkflowToPage.js +7 -6
- package/plugins/hooks/linkWorkflowToPage.js.map +1 -0
- package/plugins/hooks/updatePendingChangeRequests.d.ts +1 -1
- package/plugins/hooks/updatePendingChangeRequests.js +19 -16
- package/plugins/hooks/updatePendingChangeRequests.js.map +1 -0
- package/plugins/utils.d.ts +1 -1
- package/plugins/utils.js +7 -5
- package/plugins/utils.js.map +1 -0
- package/storageOperations/changeRequestStorageOperations.js +15 -3
- package/storageOperations/changeRequestStorageOperations.js.map +1 -0
- package/storageOperations/commentStorageOperations.js +15 -3
- package/storageOperations/commentStorageOperations.js.map +1 -0
- package/storageOperations/contentReviewStorageOperations.js +15 -3
- package/storageOperations/contentReviewStorageOperations.js.map +1 -0
- package/storageOperations/index.d.ts +6 -2
- package/storageOperations/index.js +6 -2
- package/storageOperations/index.js.map +1 -0
- package/storageOperations/models/changeRequest.model.d.ts +2 -7
- package/storageOperations/models/changeRequest.model.js +9 -7
- package/storageOperations/models/changeRequest.model.js.map +1 -0
- package/storageOperations/models/comment.model.d.ts +5 -8
- package/storageOperations/models/comment.model.js +9 -7
- package/storageOperations/models/comment.model.js.map +1 -0
- package/storageOperations/models/contentModelPluginFactory.js.map +1 -0
- package/storageOperations/models/contentReview.model.d.ts +6 -25
- package/storageOperations/models/contentReview.model.js +9 -7
- package/storageOperations/models/contentReview.model.js.map +1 -0
- package/storageOperations/models/index.d.ts +2 -1
- package/storageOperations/models/index.js +11 -3
- package/storageOperations/models/index.js.map +1 -0
- package/storageOperations/models/reviewer.model.d.ts +2 -7
- package/storageOperations/models/reviewer.model.js +9 -7
- package/storageOperations/models/reviewer.model.js.map +1 -0
- package/storageOperations/models/utils.js.map +1 -0
- package/storageOperations/models/workflow.model.d.ts +11 -17
- package/storageOperations/models/workflow.model.js +14 -12
- package/storageOperations/models/workflow.model.js.map +1 -0
- package/storageOperations/reviewerStorageOperations.js +15 -3
- package/storageOperations/reviewerStorageOperations.js.map +1 -0
- package/storageOperations/types.js.map +1 -0
- package/storageOperations/workflowStorageOperations.js +15 -3
- package/storageOperations/workflowStorageOperations.js.map +1 -0
- package/types.d.ts +27 -26
- package/types.js.map +1 -0
- package/utils/errors.js.map +1 -0
- package/utils/fieldResolver.d.ts +6 -5
- package/utils/fieldResolver.js +9 -7
- package/utils/fieldResolver.js.map +1 -0
- package/utils/resolve.d.ts +1 -1
- package/utils/resolve.js.map +1 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["initializeContentReviewSteps.ts"],"names":["getWorkflowIdFromContent","apw","params","type","ApwContentTypes","PAGE","getWorkflowFromPage","getWorkflowGetter","id","CMS_ENTRY","getWorkflowFromCmsEntry","settings","initializeContentReviewSteps","contentReview","onBeforeContentReviewCreate","subscribe","input","workflowId","content","NotFoundError","workflow","get","workflowSteps","steps","previousStepStatus","updatedSteps","map","step","index","status","pendingChangeRequests"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAMA;;AACA;;;;;;AAEO,MAAMA,wBAAwB,GAAG,OACpCC,GADoC,EAEpCC,MAFoC,KAGX;AACzB,UAAQA,MAAM,CAACC,IAAf;AACI,SAAKC,uBAAgBC,IAArB;AACI,YAAMC,mBAAmB,GAAGL,GAAG,CAACM,iBAAJ,CAAsBH,uBAAgBC,IAAtC,CAA5B;AACA,aAAOC,mBAAmB,CAACJ,MAAM,CAACM,EAAR,EAAY,EAAZ,CAA1B;;AAEJ,SAAKJ,uBAAgBK,SAArB;AACI,YAAMC,uBAAuB,GAAGT,GAAG,CAACM,iBAAJ,CAAsBH,uBAAgBK,SAAtC,CAAhC;AACA,aAAOC,uBAAuB,CAACR,MAAM,CAACM,EAAR,EAAYN,MAAM,CAACS,QAAnB,CAA9B;;AACJ;AACI,aAAO,IAAP;AATR;AAWH,CAfM;;;;AAiBA,MAAMC,4BAA4B,GAAG,CAAC;AAAEX,EAAAA;AAAF,CAAD,KAAuD;AAC/FA,EAAAA,GAAG,CAACY,aAAJ,CAAkBC,2BAAlB,CAA8CC,SAA9C,CAAwD,OAAO;AAAEC,IAAAA;AAAF,GAAP,KAAqB;AACzE;AACR;AACA;AACQ,UAAMC,UAAU,GAAG,MAAMjB,wBAAwB,CAACC,GAAD,EAAMe,KAAK,CAACE,OAAZ,CAAjD;;AAEA,QAAI,CAACD,UAAL,EAAiB;AACb,YAAM,IAAIE,6BAAJ,CAAmB,2DAAnB,CAAN;AACH;;AAED,UAAMC,QAAQ,GAAG,MAAMnB,GAAG,CAACmB,QAAJ,CAAaC,GAAb,CAAiBJ,UAAjB,CAAvB;AACA,UAAMK,aAAa,GAAGF,QAAQ,CAACG,KAA/B;AAEA,QAAIC,kBAAJ;AACA,UAAMC,YAAY,GAAGL,QAAQ,CAACG,KAAT,CAAeG,GAAf,CAAmB,CAACC,IAAD,EAAOC,KAAP,KAAiB;AACrD,YAAMC,MAAM,GAAG,8CACXP,aADW,EAEXM,KAFW,EAGXJ,kBAHW,CAAf;AAKAA,MAAAA,kBAAkB,GAAGK,MAArB;AACA,6CACOF,IADP;AAEIE,QAAAA,MAFJ;AAGIC,QAAAA,qBAAqB,EAAE;AAH3B;AAKH,KAZoB,CAArB;AAcAd,IAAAA,KAAK,GAAG,kBAAUA,KAAV,EAAiB,OAAjB,EAA0BS,YAA1B,CAAR;AACH,GA7BD;AA8BH,CA/BM","sourcesContent":["import lodashSet from \"lodash/set\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReviewStepStatus,\n ApwContentTypes,\n LifeCycleHookCallbackParams\n} from \"~/types\";\nimport { getContentReviewStepInitialStatus } from \"~/plugins/utils\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\n\nexport const getWorkflowIdFromContent = async (\n apw: AdvancedPublishingWorkflow,\n params: { type: ApwContentTypes; id: string; settings: Record<string, any> }\n): Promise<string | null> => {\n switch (params.type) {\n case ApwContentTypes.PAGE:\n const getWorkflowFromPage = apw.getWorkflowGetter(ApwContentTypes.PAGE);\n return getWorkflowFromPage(params.id, {});\n\n case ApwContentTypes.CMS_ENTRY:\n const getWorkflowFromCmsEntry = apw.getWorkflowGetter(ApwContentTypes.CMS_ENTRY);\n return getWorkflowFromCmsEntry(params.id, params.settings);\n default:\n return null;\n }\n};\n\nexport const initializeContentReviewSteps = ({ apw }: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.contentReview.onBeforeContentReviewCreate.subscribe(async ({ input }) => {\n /**\n * Let's initialize the \"ContentReview\" steps.\n */\n const workflowId = await getWorkflowIdFromContent(apw, input.content);\n\n if (!workflowId) {\n throw new NotFoundError(`Unable to initiate a \"Content review\". No workflow found!`);\n }\n\n const workflow = await apw.workflow.get(workflowId);\n const workflowSteps = workflow.steps;\n\n let previousStepStatus: ApwContentReviewStepStatus;\n const updatedSteps = workflow.steps.map((step, index) => {\n const status = getContentReviewStepInitialStatus(\n workflowSteps,\n index,\n previousStepStatus\n );\n previousStepStatus = status;\n return {\n ...step,\n status,\n pendingChangeRequests: 0\n };\n });\n\n input = lodashSet(input, \"steps\", updatedSteps);\n });\n};\n"]}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { LifeCycleHookCallbackParams } from "../../types";
|
2
2
|
import { PageBuilderContextObject } from "@webiny/api-page-builder/graphql/types";
|
3
|
-
interface PageMethods {
|
3
|
+
interface PageMethods extends Omit<LifeCycleHookCallbackParams, "security"> {
|
4
4
|
getPage: PageBuilderContextObject["getPage"];
|
5
5
|
updatePage: PageBuilderContextObject["updatePage"];
|
6
6
|
onBeforePageCreate: PageBuilderContextObject["onBeforePageCreate"];
|
7
7
|
}
|
8
|
-
export declare const linkWorkflowToPage: (
|
8
|
+
export declare const linkWorkflowToPage: (params: PageMethods) => void;
|
9
9
|
export {};
|
@@ -71,12 +71,13 @@ const isWorkflowApplicable = (page, workflow) => {
|
|
71
71
|
return false;
|
72
72
|
};
|
73
73
|
|
74
|
-
const linkWorkflowToPage =
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
74
|
+
const linkWorkflowToPage = params => {
|
75
|
+
const {
|
76
|
+
apw,
|
77
|
+
getPage,
|
78
|
+
updatePage,
|
79
|
+
onBeforePageCreate
|
80
|
+
} = params;
|
80
81
|
onBeforePageCreate.subscribe(async ({
|
81
82
|
page
|
82
83
|
}) => {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["linkWorkflowToPage.ts"],"names":["WORKFLOW_PRECEDENCE","WorkflowScopeTypes","DEFAULT","PB","CMS","workflowByPrecedenceDesc","a","b","scoreA","scope","type","scoreB","workflowByCreatedOnDesc","createdOnA","createdOnB","Date","getTime","isWorkflowApplicable","page","workflow","application","app","ApwWorkflowApplications","scopeType","categories","Array","isArray","includes","category","pages","pid","linkWorkflowToPage","params","apw","getPage","updatePage","onBeforePageCreate","subscribe","entries","list","where","sortedWorkflows","sort","settings","workflowId","id","e","WebinyError","code","data","onAfterWorkflowCreate"],"mappings":"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","sourcesContent":["import get from \"lodash/get\";\nimport set from \"lodash/set\";\nimport WebinyError from \"@webiny/error\";\nimport {\n ApwWorkflow,\n ApwWorkflowApplications,\n CustomEventParams,\n LifeCycleHookCallbackParams,\n PageWithWorkflow,\n WorkflowScopeTypes\n} from \"~/types\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\n\nconst WORKFLOW_PRECEDENCE = {\n [WorkflowScopeTypes.DEFAULT]: 0,\n [WorkflowScopeTypes.PB]: 1,\n [WorkflowScopeTypes.CMS]: 1\n};\n\nconst workflowByPrecedenceDesc = (a: ApwWorkflow, b: ApwWorkflow): number => {\n const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];\n const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];\n /**\n * In descending order of workflow precedence.\n */\n return scoreB - scoreA;\n};\n\nconst workflowByCreatedOnDesc = (a: ApwWorkflow, b: ApwWorkflow): number => {\n const createdOnA = get(a, \"createdOn\");\n const createdOnB = get(b, \"createdOn\");\n /**\n * In descending order of workflow createdOn i.e. the most recent one first.\n */\n return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();\n};\n\nconst isWorkflowApplicable = (page: PageWithWorkflow, workflow: ApwWorkflow): boolean => {\n const application = workflow.app;\n if (application !== ApwWorkflowApplications.PB) {\n return false;\n }\n\n const scopeType = workflow.scope.type;\n\n if (scopeType === WorkflowScopeTypes.DEFAULT) {\n return true;\n }\n\n if (scopeType === WorkflowScopeTypes.PB) {\n const categories = get(workflow, \"scope.data.categories\");\n\n if (Array.isArray(categories) && categories.includes(page.category)) {\n return true;\n }\n\n const pages = get(workflow, \"scope.data.pages\");\n if (Array.isArray(pages) && pages.includes(page.pid)) {\n return true;\n }\n }\n\n return false;\n};\n\ninterface PageMethods extends Omit<LifeCycleHookCallbackParams, \"security\"> {\n getPage: PageBuilderContextObject[\"getPage\"];\n updatePage: PageBuilderContextObject[\"updatePage\"];\n onBeforePageCreate: PageBuilderContextObject[\"onBeforePageCreate\"];\n}\n\nexport const linkWorkflowToPage = (params: PageMethods) => {\n const { apw, getPage, updatePage, onBeforePageCreate } = params;\n onBeforePageCreate.subscribe<CustomEventParams>(async ({ page }) => {\n try {\n /*\n * List all workflows for app pageBuilder\n */\n const [entries] = await apw.workflow.list({\n where: { app: ApwWorkflowApplications.PB }\n });\n\n /*\n * Re-order them based on workflow scope and pre-defined rule i.e.\n * \"specific\" entry -> entry for a \"category\" -> \"default\".\n * There can be more than one workflow with same \"scope\" and \"app\".\n * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.\n */\n const sortedWorkflows = entries\n .sort(workflowByPrecedenceDesc)\n .sort(workflowByCreatedOnDesc);\n\n for (const workflow of sortedWorkflows) {\n /**\n * We workflow if applicable to this page, we're done here.\n * Assign the workflow to the page and exit.\n */\n if (isWorkflowApplicable(page, workflow)) {\n page.settings.apw = {\n workflowId: workflow.id\n };\n break;\n }\n }\n } catch (e) {\n throw new WebinyError(\n `Failed to assign workflow to page \"${page.pid}\".`,\n e.code,\n e.data\n );\n }\n });\n\n apw.workflow.onAfterWorkflowCreate.subscribe(async ({ workflow }) => {\n const { app, scope } = workflow;\n /**\n * If the workflow is applicable PB application and pages are provided,\n * we'll assign workflow for each of those provided page.\n */\n if (\n app === ApwWorkflowApplications.PB &&\n scope.type === WorkflowScopeTypes.PB &&\n scope.data &&\n Array.isArray(scope.data.pages)\n ) {\n for (const pid of scope.data.pages) {\n try {\n /**\n * Currently, we only assign \"workflow\" to latest page.\n */\n const page = await getPage<PageWithWorkflow>(pid);\n /**\n * There can be more than one workflow with same `scope` for same `app`. That is why;\n * We'll update the workflow reference even though it already had one assign.\n */\n await updatePage(page.id, {\n settings: set(page.settings, \"apw.workflowId\", workflow.id)\n });\n } catch (e) {\n if (e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n }\n }\n });\n};\n"]}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { LifeCycleHookCallbackParams } from "../../types";
|
2
|
-
export declare const updatePendingChangeRequestsCount: ({ apw }: LifeCycleHookCallbackParams) => void;
|
2
|
+
export declare const updatePendingChangeRequestsCount: ({ apw }: Pick<LifeCycleHookCallbackParams, "apw">) => void;
|
@@ -27,7 +27,7 @@ const updatePendingChangeRequests = async ({
|
|
27
27
|
|
28
28
|
const [entryId, version, slug] = stepSlug.split("#");
|
29
29
|
const revisionId = `${entryId}#${version}`;
|
30
|
-
let contentReviewEntry;
|
30
|
+
let contentReviewEntry = null;
|
31
31
|
|
32
32
|
try {
|
33
33
|
contentReviewEntry = await contentReviewMethods.get(revisionId);
|
@@ -37,22 +37,25 @@ const updatePendingChangeRequests = async ({
|
|
37
37
|
}
|
38
38
|
}
|
39
39
|
|
40
|
-
if (contentReviewEntry) {
|
41
|
-
|
42
|
-
* Update "pendingChangeRequests" count of corresponding step in content review entry.
|
43
|
-
*/
|
44
|
-
await contentReviewMethods.update(contentReviewEntry.id, {
|
45
|
-
steps: contentReviewEntry.steps.map(step => {
|
46
|
-
if (step.slug === slug) {
|
47
|
-
return _objectSpread(_objectSpread({}, step), {}, {
|
48
|
-
pendingChangeRequests: step.pendingChangeRequests + delta
|
49
|
-
});
|
50
|
-
}
|
51
|
-
|
52
|
-
return step;
|
53
|
-
})
|
54
|
-
});
|
40
|
+
if (!contentReviewEntry) {
|
41
|
+
return;
|
55
42
|
}
|
43
|
+
/**
|
44
|
+
* Update "pendingChangeRequests" count of corresponding step in content review entry.
|
45
|
+
*/
|
46
|
+
|
47
|
+
|
48
|
+
await contentReviewMethods.update(contentReviewEntry.id, {
|
49
|
+
steps: contentReviewEntry.steps.map(step => {
|
50
|
+
if (step.slug === slug) {
|
51
|
+
return _objectSpread(_objectSpread({}, step), {}, {
|
52
|
+
pendingChangeRequests: step.pendingChangeRequests + delta
|
53
|
+
});
|
54
|
+
}
|
55
|
+
|
56
|
+
return step;
|
57
|
+
})
|
58
|
+
});
|
56
59
|
};
|
57
60
|
|
58
61
|
const updatePendingChangeRequestsCount = ({
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["updatePendingChangeRequests.ts"],"names":["updatePendingChangeRequests","contentReviewMethods","changeRequest","delta","step","stepSlug","entryId","version","slug","split","revisionId","contentReviewEntry","get","e","message","code","update","id","steps","map","pendingChangeRequests","updatePendingChangeRequestsCount","apw","onAfterChangeRequestDelete","subscribe","contentReview","onAfterChangeRequestCreate","onAfterChangeRequestUpdate","original","resolved"],"mappings":";;;;;;;;;;;;;;;AAaA,MAAMA,2BAA2B,GAAG,OAAO;AACvCC,EAAAA,oBADuC;AAEvCC,EAAAA,aAFuC;AAGvCC,EAAAA;AAHuC,CAAP,KAIoB;AACpD,QAAM;AAAEC,IAAAA,IAAI,EAAEC;AAAR,MAAqBH,aAA3B;AACA;AACJ;AACA;;AACI,QAAM,CAACI,OAAD,EAAUC,OAAV,EAAmBC,IAAnB,IAA2BH,QAAQ,CAACI,KAAT,CAAe,GAAf,CAAjC;AACA,QAAMC,UAAU,GAAI,GAAEJ,OAAQ,IAAGC,OAAQ,EAAzC;AAEA,MAAII,kBAA2C,GAAG,IAAlD;;AACA,MAAI;AACAA,IAAAA,kBAAkB,GAAG,MAAMV,oBAAoB,CAACW,GAArB,CAAyBF,UAAzB,CAA3B;AACH,GAFD,CAEE,OAAOG,CAAP,EAAU;AACR,QAAIA,CAAC,CAACC,OAAF,KAAc,2BAAd,IAA6CD,CAAC,CAACE,IAAF,KAAW,WAA5D,EAAyE;AACrE,YAAMF,CAAN;AACH;AACJ;;AACD,MAAI,CAACF,kBAAL,EAAyB;AACrB;AACH;AACD;AACJ;AACA;;;AACI,QAAMV,oBAAoB,CAACe,MAArB,CAA4BL,kBAAkB,CAACM,EAA/C,EAAmD;AACrDC,IAAAA,KAAK,EAAEP,kBAAkB,CAACO,KAAnB,CAAyBC,GAAzB,CAA6Bf,IAAI,IAAI;AACxC,UAAIA,IAAI,CAACI,IAAL,KAAcA,IAAlB,EAAwB;AACpB,+CACOJ,IADP;AAEIgB,UAAAA,qBAAqB,EAAEhB,IAAI,CAACgB,qBAAL,GAA6BjB;AAFxD;AAIH;;AACD,aAAOC,IAAP;AACH,KARM;AAD8C,GAAnD,CAAN;AAWH,CArCD;;AAuCO,MAAMiB,gCAAgC,GAAG,CAAC;AAC7CC,EAAAA;AAD6C,CAAD,KAEA;AAC5CA,EAAAA,GAAG,CAACpB,aAAJ,CAAkBqB,0BAAlB,CAA6CC,SAA7C,CAAuD,OAAO;AAAEtB,IAAAA;AAAF,GAAP,KAA6B;AAChF;AACR;AACA;AACA;AACQ,UAAMF,2BAA2B,CAAC;AAC9BC,MAAAA,oBAAoB,EAAEqB,GAAG,CAACG,aADI;AAE9BvB,MAAAA,aAAa,EAAEA,aAFe;AAG9BC,MAAAA,KAAK,EAAE,CAAC;AAHsB,KAAD,CAAjC;AAKH,GAVD;AAYAmB,EAAAA,GAAG,CAACpB,aAAJ,CAAkBwB,0BAAlB,CAA6CF,SAA7C,CAAuD,OAAO;AAAEtB,IAAAA;AAAF,GAAP,KAA6B;AAChF;AACR;AACA;AACA;AACQ,UAAMF,2BAA2B,CAAC;AAC9BC,MAAAA,oBAAoB,EAAEqB,GAAG,CAACG,aADI;AAE9BvB,MAAAA,aAF8B;AAG9BC,MAAAA,KAAK,EAAE;AAHuB,KAAD,CAAjC;AAKH,GAVD;AAYAmB,EAAAA,GAAG,CAACpB,aAAJ,CAAkByB,0BAAlB,CAA6CH,SAA7C,CAAuD,OAAO;AAAEtB,IAAAA,aAAF;AAAiB0B,IAAAA;AAAjB,GAAP,KAAuC;AAC1F;AACR;AACA;AACA;AACQ,QAAIA,QAAQ,CAACC,QAAT,KAAsB3B,aAAa,CAAC2B,QAAxC,EAAkD;AAC9C,YAAMA,QAAQ,GAAG3B,aAAa,CAAC2B,QAA/B;AACA,YAAM1B,KAAK,GAAG0B,QAAQ,KAAK,IAAb,GAAoB,CAAC,CAArB,GAAyB,CAAvC;AAEA,YAAM7B,2BAA2B,CAAC;AAC9BC,QAAAA,oBAAoB,EAAEqB,GAAG,CAACG,aADI;AAE9BvB,QAAAA,aAF8B;AAG9BC,QAAAA;AAH8B,OAAD,CAAjC;AAKH;AACJ,GAfD;AAgBH,CA3CM","sourcesContent":["import {\n ApwChangeRequest,\n ApwContentReview,\n ApwContentReviewCrud,\n LifeCycleHookCallbackParams\n} from \"~/types\";\n\ninterface UpdatePendingChangeRequestsParams {\n contentReviewMethods: ApwContentReviewCrud;\n changeRequest: ApwChangeRequest;\n delta: number;\n}\n\nconst updatePendingChangeRequests = async ({\n contentReviewMethods,\n changeRequest,\n delta\n}: UpdatePendingChangeRequestsParams): Promise<void> => {\n const { step: stepSlug } = changeRequest;\n /*\n * Get associated content review entry.\n */\n const [entryId, version, slug] = stepSlug.split(\"#\");\n const revisionId = `${entryId}#${version}`;\n\n let contentReviewEntry: ApwContentReview | null = null;\n try {\n contentReviewEntry = await contentReviewMethods.get(revisionId);\n } catch (e) {\n if (e.message !== \"index_not_found_exception\" && e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n if (!contentReviewEntry) {\n return;\n }\n /**\n * Update \"pendingChangeRequests\" count of corresponding step in content review entry.\n */\n await contentReviewMethods.update(contentReviewEntry.id, {\n steps: contentReviewEntry.steps.map(step => {\n if (step.slug === slug) {\n return {\n ...step,\n pendingChangeRequests: step.pendingChangeRequests + delta\n };\n }\n return step;\n })\n });\n};\n\nexport const updatePendingChangeRequestsCount = ({\n apw\n}: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.changeRequest.onAfterChangeRequestDelete.subscribe(async ({ changeRequest }) => {\n /**\n * After a \"changeRequest\" is deleted, decrement the \"pendingChangeRequests\" count\n * in the corresponding step of the content review entry.\n */\n await updatePendingChangeRequests({\n contentReviewMethods: apw.contentReview,\n changeRequest: changeRequest,\n delta: -1\n });\n });\n\n apw.changeRequest.onAfterChangeRequestCreate.subscribe(async ({ changeRequest }) => {\n /**\n * After a \"changeRequest\" is created, increment the \"pendingChangeRequests\" count\n * of the corresponding step in the content review entry.\n */\n await updatePendingChangeRequests({\n contentReviewMethods: apw.contentReview,\n changeRequest,\n delta: 1\n });\n });\n\n apw.changeRequest.onAfterChangeRequestUpdate.subscribe(async ({ changeRequest, original }) => {\n /**\n * After a \"changeRequest\" is created, and the value of \"resolved\" field has changed;\n * then we also need to update the \"pendingChangeRequests\" count of the corresponding step in the content review entry.\n */\n if (original.resolved !== changeRequest.resolved) {\n const resolved = changeRequest.resolved;\n const delta = resolved === true ? -1 : 1;\n\n await updatePendingChangeRequests({\n contentReviewMethods: apw.contentReview,\n changeRequest,\n delta\n });\n }\n });\n};\n"]}
|
package/plugins/utils.d.ts
CHANGED
@@ -9,7 +9,7 @@ export interface HasReviewersParams {
|
|
9
9
|
step: ApwContentReviewStep;
|
10
10
|
getReviewer: ApwReviewerCrud["get"];
|
11
11
|
}
|
12
|
-
export declare const hasReviewer: (
|
12
|
+
export declare const hasReviewer: (params: HasReviewersParams) => Promise<Boolean>;
|
13
13
|
export declare const getValue: (object: Record<string, any>, key: string) => any;
|
14
14
|
export declare const getContentReviewStepInitialStatus: (workflowSteps: ApwWorkflowStep[], index: number, previousStepStatus: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
|
15
15
|
export declare const getNextStepStatus: (previousStepType: ApwWorkflowStepTypes, previousStepStatus: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
|
package/plugins/utils.js
CHANGED
@@ -11,11 +11,13 @@ var _get = _interopRequireDefault(require("lodash/get"));
|
|
11
11
|
|
12
12
|
var _types = require("../types");
|
13
13
|
|
14
|
-
const hasReviewer = async
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
const hasReviewer = async params => {
|
15
|
+
const {
|
16
|
+
getReviewer,
|
17
|
+
identity,
|
18
|
+
step
|
19
|
+
} = params;
|
20
|
+
|
19
21
|
for (const stepReviewer of step.reviewers) {
|
20
22
|
const entry = await getReviewer(stepReviewer.id);
|
21
23
|
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["utils.ts"],"names":["hasReviewer","params","getReviewer","identity","step","stepReviewer","reviewers","entry","id","identityId","getValue","object","key","getContentReviewStepInitialStatus","workflowSteps","index","previousStepStatus","ApwContentReviewStepStatus","ACTIVE","previousStep","type","ApwWorkflowStepTypes","MANDATORY_BLOCKING","INACTIVE","getNextStepStatus","previousStepType","DONE"],"mappings":";;;;;;;;;AACA;;AACA;;AAmBO,MAAMA,WAAW,GAAG,MAAOC,MAAP,IAAwD;AAC/E,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA,QAAf;AAAyBC,IAAAA;AAAzB,MAAkCH,MAAxC;;AACA,OAAK,MAAMI,YAAX,IAA2BD,IAAI,CAACE,SAAhC,EAA2C;AACvC,UAAMC,KAAK,GAAG,MAAML,WAAW,CAACG,YAAY,CAACG,EAAd,CAA/B;;AAEA,QAAID,KAAK,CAACE,UAAN,KAAqBN,QAAQ,CAACK,EAAlC,EAAsC;AAClC,aAAO,IAAP;AACH;AACJ;;AAED,SAAO,KAAP;AACH,CAXM;;;;AAaA,MAAME,QAAQ,GAAG,CAACC,MAAD,EAA8BC,GAA9B,KAA8C;AAClE,SAAO,kBAAID,MAAJ,EAAa,UAASC,GAAI,EAA1B,CAAP;AACH,CAFM;;;;AAIA,MAAMC,iCAAiC,GAAG,CAC7CC,aAD6C,EAE7CC,KAF6C,EAG7CC,kBAH6C,KAIhB;AAC7B;AACJ;AACA;AACI,MAAID,KAAK,KAAK,CAAd,EAAiB;AACb,WAAOE,kCAA2BC,MAAlC;AACH;;AAED,QAAMC,YAAY,GAAGL,aAAa,CAACC,KAAK,GAAG,CAAT,CAAlC;;AACA,MACIC,kBAAkB,KAAKC,kCAA2BC,MAAlD,IACAC,YAAY,CAACC,IAAb,KAAsBC,4BAAqBC,kBAF/C,EAGE;AACE,WAAOL,kCAA2BC,MAAlC;AACH;;AAED,SAAOD,kCAA2BM,QAAlC;AACH,CArBM;;;;AAuBA,MAAMC,iBAAiB,GAAG,CAC7BC,gBAD6B,EAE7BT,kBAF6B,KAGA;AAC7B,MAAIA,kBAAkB,KAAKC,kCAA2BS,IAAtD,EAA4D;AACxD,WAAOT,kCAA2BC,MAAlC;AACH;;AAED,MACIF,kBAAkB,KAAKC,kCAA2BC,MAAlD,IACAO,gBAAgB,KAAKJ,4BAAqBC,kBAF9C,EAGE;AACE,WAAOL,kCAA2BC,MAAlC;AACH;;AAED,SAAOD,kCAA2BM,QAAlC;AACH,CAhBM","sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport get from \"lodash/get\";\nimport {\n ApwContentReviewStep,\n ApwContentReviewStepStatus,\n ApwReviewerCrud,\n ApwWorkflowStep,\n ApwWorkflowStepTypes\n} from \"~/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\n\nexport interface CreateModelFieldParams extends Omit<CmsModelField, \"id\" | \"fieldId\"> {\n parent: string;\n}\n\nexport interface HasReviewersParams {\n identity: SecurityIdentity;\n step: ApwContentReviewStep;\n getReviewer: ApwReviewerCrud[\"get\"];\n}\n\nexport const hasReviewer = async (params: HasReviewersParams): Promise<Boolean> => {\n const { getReviewer, identity, step } = params;\n for (const stepReviewer of step.reviewers) {\n const entry = await getReviewer(stepReviewer.id);\n\n if (entry.identityId === identity.id) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const getValue = (object: Record<string, any>, key: string) => {\n return get(object, `values.${key}`);\n};\n\nexport const getContentReviewStepInitialStatus = (\n workflowSteps: ApwWorkflowStep[],\n index: number,\n previousStepStatus: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n /**\n * Always set first step 'active' by default.\n */\n if (index === 0) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n const previousStep = workflowSteps[index - 1];\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStep.type !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport const getNextStepStatus = (\n previousStepType: ApwWorkflowStepTypes,\n previousStepStatus: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n if (previousStepStatus === ApwContentReviewStepStatus.DONE) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStepType !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n"]}
|
@@ -13,6 +13,8 @@ var _index = require("./index");
|
|
13
13
|
|
14
14
|
var _fieldResolver = require("../utils/fieldResolver");
|
15
15
|
|
16
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
17
|
+
|
16
18
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
17
19
|
|
18
20
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
@@ -21,8 +23,14 @@ const createChangeRequestStorageOperations = ({
|
|
21
23
|
cms,
|
22
24
|
getCmsContext
|
23
25
|
}) => {
|
24
|
-
const getChangeRequestModel = () => {
|
25
|
-
|
26
|
+
const getChangeRequestModel = async () => {
|
27
|
+
const model = await cms.getModel("apwChangeRequestModelDefinition");
|
28
|
+
|
29
|
+
if (!model) {
|
30
|
+
throw new _error.default("Could not find `apwWorkflowModelDefinition` model.", "MODEL_NOT_FOUND_ERROR");
|
31
|
+
}
|
32
|
+
|
33
|
+
return model;
|
26
34
|
};
|
27
35
|
|
28
36
|
const getChangeRequest = async ({
|
@@ -44,7 +52,11 @@ const createChangeRequestStorageOperations = ({
|
|
44
52
|
|
45
53
|
async listChangeRequests(params) {
|
46
54
|
const model = await getChangeRequestModel();
|
47
|
-
const [entries, meta] = await cms.listLatestEntries(model, params)
|
55
|
+
const [entries, meta] = await cms.listLatestEntries(model, _objectSpread(_objectSpread({}, params), {}, {
|
56
|
+
where: _objectSpread(_objectSpread({}, params.where), {}, {
|
57
|
+
tenant: model.tenant
|
58
|
+
})
|
59
|
+
}));
|
48
60
|
const all = await Promise.all(entries.map(entry => (0, _fieldResolver.getFieldValues)({
|
49
61
|
entry,
|
50
62
|
fields: _index.baseFields,
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["changeRequestStorageOperations.ts"],"names":["createChangeRequestStorageOperations","cms","getCmsContext","getChangeRequestModel","model","getModel","WebinyError","getChangeRequest","id","entry","getEntryById","fields","baseFields","context","transformers","listChangeRequests","params","entries","meta","listLatestEntries","where","tenant","all","Promise","map","createChangeRequest","createEntry","data","updateChangeRequest","existingEntry","updateEntry","deleteChangeRequest","deleteEntry"],"mappings":"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","sourcesContent":["import { ApwChangeRequestStorageOperations } from \"./types\";\nimport { baseFields, CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport WebinyError from \"@webiny/error\";\nimport { ApwChangeRequest } from \"~/types\";\n\nexport const createChangeRequestStorageOperations = ({\n cms,\n getCmsContext\n}: CreateApwStorageOperationsParams): ApwChangeRequestStorageOperations => {\n const getChangeRequestModel = async () => {\n const model = await cms.getModel(\"apwChangeRequestModelDefinition\");\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwWorkflowModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getChangeRequest: ApwChangeRequestStorageOperations[\"getChangeRequest\"] = async ({\n id\n }) => {\n const model = await getChangeRequestModel();\n const entry = await cms.getEntryById(model, id);\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getChangeRequestModel,\n getChangeRequest,\n async listChangeRequests(params) {\n const model = await getChangeRequestModel();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where,\n tenant: model.tenant\n }\n });\n const all = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwChangeRequest>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n return [all, meta];\n },\n async createChangeRequest(params) {\n const model = await getChangeRequestModel();\n const entry = await cms.createEntry(model, params.data);\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async updateChangeRequest(params) {\n const model = await getChangeRequestModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getChangeRequest({ id: params.id });\n\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async deleteChangeRequest(params) {\n const model = await getChangeRequestModel();\n await cms.deleteEntry(model, params.id);\n return true;\n }\n };\n};\n"]}
|
@@ -13,6 +13,8 @@ var _index = require("./index");
|
|
13
13
|
|
14
14
|
var _fieldResolver = require("../utils/fieldResolver");
|
15
15
|
|
16
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
17
|
+
|
16
18
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
17
19
|
|
18
20
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
@@ -21,8 +23,14 @@ const createCommentStorageOperations = ({
|
|
21
23
|
cms,
|
22
24
|
getCmsContext
|
23
25
|
}) => {
|
24
|
-
const getCommentModel = () => {
|
25
|
-
|
26
|
+
const getCommentModel = async () => {
|
27
|
+
const model = await cms.getModel("apwCommentModelDefinition");
|
28
|
+
|
29
|
+
if (!model) {
|
30
|
+
throw new _error.default("Could not find `apwContentReviewModelDefinition` model.", "MODEL_NOT_FOUND_ERROR");
|
31
|
+
}
|
32
|
+
|
33
|
+
return model;
|
26
34
|
};
|
27
35
|
|
28
36
|
const getComment = async ({
|
@@ -44,7 +52,11 @@ const createCommentStorageOperations = ({
|
|
44
52
|
|
45
53
|
async listComments(params) {
|
46
54
|
const model = await getCommentModel();
|
47
|
-
const [entries, meta] = await cms.listLatestEntries(model, params)
|
55
|
+
const [entries, meta] = await cms.listLatestEntries(model, _objectSpread(_objectSpread({}, params), {}, {
|
56
|
+
where: _objectSpread(_objectSpread({}, params.where), {}, {
|
57
|
+
tenant: model.tenant
|
58
|
+
})
|
59
|
+
}));
|
48
60
|
const all = await Promise.all(entries.map(entry => (0, _fieldResolver.getFieldValues)({
|
49
61
|
entry,
|
50
62
|
fields: _index.baseFields,
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["commentStorageOperations.ts"],"names":["createCommentStorageOperations","cms","getCmsContext","getCommentModel","model","getModel","WebinyError","getComment","id","entry","getEntryById","fields","baseFields","context","transformers","listComments","params","entries","meta","listLatestEntries","where","tenant","all","Promise","map","createComment","refModel","getChangeRequestModel","createEntry","data","changeRequest","modelId","updateComment","existingEntry","updateEntry","deleteComment","deleteEntry"],"mappings":"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","sourcesContent":["import { ApwStorageOperations } from \"./types\";\nimport { ApwCommentStorageOperations } from \"./types\";\nimport { baseFields, CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport WebinyError from \"@webiny/error\";\nimport { ApwComment } from \"~/types\";\n\nexport const createCommentStorageOperations = ({\n cms,\n getCmsContext\n}: CreateApwStorageOperationsParams): ApwCommentStorageOperations => {\n const getCommentModel = async () => {\n const model = await cms.getModel(\"apwCommentModelDefinition\");\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwContentReviewModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getComment: ApwCommentStorageOperations[\"getComment\"] = async ({ id }) => {\n const model = await getCommentModel();\n const entry = await cms.getEntryById(model, id);\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getCommentModel,\n getComment,\n async listComments(params) {\n const model = await getCommentModel();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where,\n tenant: model.tenant\n }\n });\n const all = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwComment>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n return [all, meta];\n },\n async createComment(this: ApwStorageOperations, params) {\n const model = await getCommentModel();\n const refModel = await this.getChangeRequestModel();\n const entry = await cms.createEntry(model, {\n ...params.data,\n changeRequest: {\n ...params.data.changeRequest,\n modelId: refModel.modelId\n }\n });\n\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async updateComment(params) {\n const model = await getCommentModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getComment({ id: params.id });\n\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async deleteComment(params) {\n const model = await getCommentModel();\n await cms.deleteEntry(model, params.id);\n return true;\n }\n };\n};\n"]}
|
@@ -11,6 +11,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
11
11
|
|
12
12
|
var _index = require("./index");
|
13
13
|
|
14
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
15
|
+
|
14
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
15
17
|
|
16
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
@@ -18,8 +20,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
18
20
|
const createContentReviewStorageOperations = ({
|
19
21
|
cms
|
20
22
|
}) => {
|
21
|
-
const getContentReviewModel = () => {
|
22
|
-
|
23
|
+
const getContentReviewModel = async () => {
|
24
|
+
const model = await cms.getModel("apwContentReviewModelDefinition");
|
25
|
+
|
26
|
+
if (!model) {
|
27
|
+
throw new _error.default("Could not find `apwContentReviewModelDefinition` model.", "MODEL_NOT_FOUND_ERROR");
|
28
|
+
}
|
29
|
+
|
30
|
+
return model;
|
23
31
|
};
|
24
32
|
|
25
33
|
const getContentReview = async ({
|
@@ -36,7 +44,11 @@ const createContentReviewStorageOperations = ({
|
|
36
44
|
|
37
45
|
async listContentReviews(params) {
|
38
46
|
const model = await getContentReviewModel();
|
39
|
-
const [entries, meta] = await cms.listLatestEntries(model, params)
|
47
|
+
const [entries, meta] = await cms.listLatestEntries(model, _objectSpread(_objectSpread({}, params), {}, {
|
48
|
+
where: _objectSpread(_objectSpread({}, params.where), {}, {
|
49
|
+
tenant: model.tenant
|
50
|
+
})
|
51
|
+
}));
|
40
52
|
return [entries.map(entry => (0, _index.getFieldValues)(entry, _index.baseFields)), meta];
|
41
53
|
},
|
42
54
|
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["contentReviewStorageOperations.ts"],"names":["createContentReviewStorageOperations","cms","getContentReviewModel","model","getModel","WebinyError","getContentReview","id","entry","getEntryById","baseFields","listContentReviews","params","entries","meta","listLatestEntries","where","tenant","map","createContentReview","createEntry","data","updateContentReview","existingEntry","updateEntry","deleteContentReview","deleteEntry"],"mappings":";;;;;;;;;;;AACA;;AAKA;;;;;;AAEO,MAAMA,oCAAoC,GAAG,CAAC;AACjDC,EAAAA;AADiD,CAAD,KAEoC;AACpF,QAAMC,qBAAqB,GAAG,YAAY;AACtC,UAAMC,KAAK,GAAG,MAAMF,GAAG,CAACG,QAAJ,CAAa,iCAAb,CAApB;;AACA,QAAI,CAACD,KAAL,EAAY;AACR,YAAM,IAAIE,cAAJ,CACF,yDADE,EAEF,uBAFE,CAAN;AAIH;;AACD,WAAOF,KAAP;AACH,GATD;;AAUA,QAAMG,gBAAuE,GAAG,OAAO;AACnFC,IAAAA;AADmF,GAAP,KAE1E;AACF,UAAMJ,KAAK,GAAG,MAAMD,qBAAqB,EAAzC;AACA,UAAMM,KAAK,GAAG,MAAMP,GAAG,CAACQ,YAAJ,CAAiBN,KAAjB,EAAwBI,EAAxB,CAApB;AACA,WAAO,2BAAeC,KAAf,EAAsBE,iBAAtB,CAAP;AACH,GAND;;AAOA,SAAO;AACHR,IAAAA,qBADG;AAEHI,IAAAA,gBAFG;;AAGH,UAAMK,kBAAN,CAAyBC,MAAzB,EAAiC;AAC7B,YAAMT,KAAK,GAAG,MAAMD,qBAAqB,EAAzC;AACA,YAAM,CAACW,OAAD,EAAUC,IAAV,IAAkB,MAAMb,GAAG,CAACc,iBAAJ,CAAsBZ,KAAtB,kCACvBS,MADuB;AAE1BI,QAAAA,KAAK,kCACEJ,MAAM,CAACI,KADT;AAEDC,UAAAA,MAAM,EAAEd,KAAK,CAACc;AAFb;AAFqB,SAA9B;AAOA,aAAO,CAACJ,OAAO,CAACK,GAAR,CAAYV,KAAK,IAAI,2BAAeA,KAAf,EAAsBE,iBAAtB,CAArB,CAAD,EAA0DI,IAA1D,CAAP;AACH,KAbE;;AAcH,UAAMK,mBAAN,CAA0BP,MAA1B,EAAkC;AAC9B,YAAMT,KAAK,GAAG,MAAMD,qBAAqB,EAAzC;AACA,YAAMM,KAAK,GAAG,MAAMP,GAAG,CAACmB,WAAJ,CAAgBjB,KAAhB,EAAuBS,MAAM,CAACS,IAA9B,CAApB;AACA,aAAO,2BAAeb,KAAf,EAAsBE,iBAAtB,CAAP;AACH,KAlBE;;AAmBH,UAAMY,mBAAN,CAA0BV,MAA1B,EAAkC;AAC9B,YAAMT,KAAK,GAAG,MAAMD,qBAAqB,EAAzC;AACA;AACZ;AACA;AACA;;AACY,YAAMqB,aAAa,GAAG,MAAMjB,gBAAgB,CAAC;AAAEC,QAAAA,EAAE,EAAEK,MAAM,CAACL;AAAb,OAAD,CAA5C;AAEA,YAAMC,KAAK,GAAG,MAAMP,GAAG,CAACuB,WAAJ,CAAgBrB,KAAhB,EAAuBS,MAAM,CAACL,EAA9B,kCACbgB,aADa,GAEbX,MAAM,CAACS,IAFM,EAApB;AAIA,aAAO,2BAAeb,KAAf,EAAsBE,iBAAtB,CAAP;AACH,KAhCE;;AAiCH,UAAMe,mBAAN,CAA0Bb,MAA1B,EAAkC;AAC9B,YAAMT,KAAK,GAAG,MAAMD,qBAAqB,EAAzC;AACA,YAAMD,GAAG,CAACyB,WAAJ,CAAgBvB,KAAhB,EAAuBS,MAAM,CAACL,EAA9B,CAAN;AACA,aAAO,IAAP;AACH;;AArCE,GAAP;AAuCH,CA3DM","sourcesContent":["import { ApwContentReviewStorageOperations } from \"./types\";\nimport {\n baseFields,\n CreateApwStorageOperationsParams,\n getFieldValues\n} from \"~/storageOperations/index\";\nimport WebinyError from \"@webiny/error\";\n\nexport const createContentReviewStorageOperations = ({\n cms\n}: Pick<CreateApwStorageOperationsParams, \"cms\">): ApwContentReviewStorageOperations => {\n const getContentReviewModel = async () => {\n const model = await cms.getModel(\"apwContentReviewModelDefinition\");\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwContentReviewModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getContentReview: ApwContentReviewStorageOperations[\"getContentReview\"] = async ({\n id\n }) => {\n const model = await getContentReviewModel();\n const entry = await cms.getEntryById(model, id);\n return getFieldValues(entry, baseFields);\n };\n return {\n getContentReviewModel,\n getContentReview,\n async listContentReviews(params) {\n const model = await getContentReviewModel();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where,\n tenant: model.tenant\n }\n });\n return [entries.map(entry => getFieldValues(entry, baseFields)), meta];\n },\n async createContentReview(params) {\n const model = await getContentReviewModel();\n const entry = await cms.createEntry(model, params.data);\n return getFieldValues(entry, baseFields);\n },\n async updateContentReview(params) {\n const model = await getContentReviewModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getContentReview({ id: params.id });\n\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n return getFieldValues(entry, baseFields);\n },\n async deleteContentReview(params) {\n const model = await getContentReviewModel();\n await cms.deleteEntry(model, params.id);\n return true;\n }\n };\n};\n"]}
|
@@ -1,9 +1,13 @@
|
|
1
|
-
import { CmsContext, HeadlessCms } from "@webiny/api-headless-cms/types";
|
1
|
+
import { CmsContext, CmsEntry, HeadlessCms } from "@webiny/api-headless-cms/types";
|
2
2
|
import { ApwStorageOperations } from "../types";
|
3
3
|
export interface CreateApwStorageOperationsParams {
|
4
4
|
cms: HeadlessCms;
|
5
5
|
getCmsContext: () => CmsContext;
|
6
6
|
}
|
7
|
-
|
7
|
+
/**
|
8
|
+
* Using any because value can be a lot of types.
|
9
|
+
* TODO @ts-refactor figure out correct types.
|
10
|
+
*/
|
11
|
+
export declare function getFieldValues(entry: CmsEntry, fields: string[]): any;
|
8
12
|
export declare const baseFields: string[];
|
9
13
|
export declare const createStorageOperations: ({ cms, getCmsContext }: CreateApwStorageOperationsParams) => ApwStorageOperations;
|
@@ -28,8 +28,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
28
28
|
|
29
29
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
/**
|
32
|
+
* Using any because value can be a lot of types.
|
33
|
+
* TODO @ts-refactor figure out correct types.
|
34
|
+
*/
|
35
|
+
function getFieldValues(entry, fields) {
|
36
|
+
return _objectSpread(_objectSpread({}, (0, _pick.default)(entry, fields)), entry.values);
|
33
37
|
}
|
34
38
|
|
35
39
|
const baseFields = ["id", "createdBy", "createdOn", "savedOn"];
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["getFieldValues","entry","fields","values","baseFields","createStorageOperations","cms","getCmsContext","context"],"mappings":";;;;;;;;;;;;AAAA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAOA;AACA;AACA;AACA;AACO,SAASA,cAAT,CAAwBC,KAAxB,EAAyCC,MAAzC,EAAgE;AACnE,yCAAY,mBAAKD,KAAL,EAAYC,MAAZ,CAAZ,GAAoCD,KAAK,CAACE,MAA1C;AACH;;AAEM,MAAMC,UAAU,GAAG,CAAC,IAAD,EAAO,WAAP,EAAoB,WAApB,EAAiC,SAAjC,CAAnB;;;AAEA,MAAMC,uBAAuB,GAAG,CAAC;AACpCC,EAAAA,GADoC;AAEpCC,EAAAA;AAFoC,CAAD,KAGuB;AAC1D,QAAMC,OAAO,GAAGD,aAAa,EAA7B;AACA;AACJ;AACA;;AACI,+BAAgBC,OAAhB;AAEA,mFACO,gEAAgC;AAAEF,IAAAA;AAAF,GAAhC,CADP,GAEO,gEAAgC;AAAEA,IAAAA;AAAF,GAAhC,CAFP,GAGO,0EAAqC;AAAEA,IAAAA;AAAF,GAArC,CAHP,GAIO,0EAAqC;AAAEA,IAAAA,GAAF;AAAOC,IAAAA;AAAP,GAArC,CAJP,GAKO,8DAA+B;AAC9BD,IAAAA,GAD8B;AAE9BC,IAAAA;AAF8B,GAA/B,CALP;AAUH,CApBM","sourcesContent":["import pick from \"lodash/pick\";\nimport { CmsContext, CmsEntry, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { ApwStorageOperations } from \"~/types\";\nimport { createReviewerStorageOperations } from \"./reviewerStorageOperations\";\nimport { createWorkflowStorageOperations } from \"./workflowStorageOperations\";\nimport { createContentReviewStorageOperations } from \"./contentReviewStorageOperations\";\nimport { createChangeRequestStorageOperations } from \"./changeRequestStorageOperations\";\nimport { createCommentStorageOperations } from \"~/storageOperations/commentStorageOperations\";\nimport { createApwModels } from \"./models\";\n\nexport interface CreateApwStorageOperationsParams {\n cms: HeadlessCms;\n getCmsContext: () => CmsContext;\n}\n\n/**\n * Using any because value can be a lot of types.\n * TODO @ts-refactor figure out correct types.\n */\nexport function getFieldValues(entry: CmsEntry, fields: string[]): any {\n return { ...pick(entry, fields), ...entry.values };\n}\n\nexport const baseFields = [\"id\", \"createdBy\", \"createdOn\", \"savedOn\"];\n\nexport const createStorageOperations = ({\n cms,\n getCmsContext\n}: CreateApwStorageOperationsParams): ApwStorageOperations => {\n const context = getCmsContext();\n /**\n * Register Apw models.\n */\n createApwModels(context);\n\n return {\n ...createReviewerStorageOperations({ cms }),\n ...createWorkflowStorageOperations({ cms }),\n ...createContentReviewStorageOperations({ cms }),\n ...createChangeRequestStorageOperations({ cms, getCmsContext }),\n ...createCommentStorageOperations({\n cms,\n getCmsContext\n })\n };\n};\n"]}
|
@@ -1,7 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
modelId: string;
|
4
|
-
titleFieldId: string;
|
5
|
-
layout: string[][];
|
6
|
-
fields: import("@webiny/api-headless-cms/types").CmsModelField[];
|
7
|
-
};
|
1
|
+
import { WorkflowModelDefinition } from "../../types";
|
2
|
+
export declare const createChangeRequestModelDefinition: () => WorkflowModelDefinition;
|
@@ -41,12 +41,14 @@ const stepField = () => (0, _utils.createModelField)({
|
|
41
41
|
}]
|
42
42
|
});
|
43
43
|
|
44
|
-
const createChangeRequestModelDefinition = () =>
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
44
|
+
const createChangeRequestModelDefinition = () => {
|
45
|
+
return {
|
46
|
+
name: "APW - Change Request",
|
47
|
+
modelId: "apwChangeRequestModelDefinition",
|
48
|
+
titleFieldId: "changeRequest_title",
|
49
|
+
layout: [["changeRequest_body"], ["changeRequest_title"]],
|
50
|
+
fields: [bodyField(), titleField(), resolvedField(), mediaField(), stepField()]
|
51
|
+
};
|
52
|
+
};
|
51
53
|
|
52
54
|
exports.createChangeRequestModelDefinition = createChangeRequestModelDefinition;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["changeRequest.model.ts"],"names":["bodyField","label","type","parent","titleField","resolvedField","mediaField","stepField","validation","name","message","createChangeRequestModelDefinition","modelId","titleFieldId","layout","fields"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,SAAS,GAAG,MACd,6BAAiB;AACbC,EAAAA,KAAK,EAAE,MADM;AAEbC,EAAAA,IAAI,EAAE,WAFO;AAGbC,EAAAA,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMC,UAAU,GAAG,MACf,6BAAiB;AACbH,EAAAA,KAAK,EAAE,OADM;AAEbC,EAAAA,IAAI,EAAE,MAFO;AAGbC,EAAAA,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAME,aAAa,GAAG,MAClB,6BAAiB;AACbJ,EAAAA,KAAK,EAAE,UADM;AAEbC,EAAAA,IAAI,EAAE,SAFO;AAGbC,EAAAA,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMG,UAAU,GAAG,MACf,6BAAiB;AACbL,EAAAA,KAAK,EAAE,OADM;AAEbC,EAAAA,IAAI,EAAE,MAFO;AAGbC,EAAAA,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMI,SAAS,GAAG,MACd,6BAAiB;AACbN,EAAAA,KAAK,EAAE,MADM;AAEbC,EAAAA,IAAI,EAAE,MAFO;AAGbC,EAAAA,MAAM,EAAE,eAHK;AAIbK,EAAAA,UAAU,EAAE,CACR;AACIC,IAAAA,IAAI,EAAE,UADV;AAEIC,IAAAA,OAAO,EAAE;AAFb,GADQ;AAJC,CAAjB,CADJ;;AAaO,MAAMC,kCAAkC,GAAG,MAA+B;AAC7E,SAAO;AACHF,IAAAA,IAAI,EAAE,sBADH;AAEHG,IAAAA,OAAO,EAAE,iCAFN;AAGHC,IAAAA,YAAY,EAAE,qBAHX;AAIHC,IAAAA,MAAM,EAAE,CAAC,CAAC,oBAAD,CAAD,EAAyB,CAAC,qBAAD,CAAzB,CAJL;AAKHC,IAAAA,MAAM,EAAE,CAACf,SAAS,EAAV,EAAcI,UAAU,EAAxB,EAA4BC,aAAa,EAAzC,EAA6CC,UAAU,EAAvD,EAA2DC,SAAS,EAApE;AALL,GAAP;AAOH,CARM","sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst bodyField = () =>\n createModelField({\n label: \"Body\",\n type: \"rich-text\",\n parent: \"changeRequest\"\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"changeRequest\"\n });\n\nconst resolvedField = () =>\n createModelField({\n label: \"Resolved\",\n type: \"boolean\",\n parent: \"changeRequest\"\n });\n\nconst mediaField = () =>\n createModelField({\n label: \"Media\",\n type: \"file\",\n parent: \"changeRequest\"\n });\n\nconst stepField = () =>\n createModelField({\n label: \"Step\",\n type: \"text\",\n parent: \"changeRequest\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required\"\n }\n ]\n });\n\nexport const createChangeRequestModelDefinition = (): WorkflowModelDefinition => {\n return {\n name: \"APW - Change Request\",\n modelId: \"apwChangeRequestModelDefinition\",\n titleFieldId: \"changeRequest_title\",\n layout: [[\"changeRequest_body\"], [\"changeRequest_title\"]],\n fields: [bodyField(), titleField(), resolvedField(), mediaField(), stepField()]\n };\n};\n"]}
|
@@ -1,9 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
}) => {
|
4
|
-
name: string;
|
1
|
+
import { WorkflowModelDefinition } from "../../types";
|
2
|
+
interface CreateCommentModelDefinitionParams {
|
5
3
|
modelId: string;
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
};
|
4
|
+
}
|
5
|
+
export declare const createCommentModelDefinition: ({ modelId }: CreateCommentModelDefinitionParams) => WorkflowModelDefinition;
|
6
|
+
export {};
|
@@ -26,12 +26,14 @@ const changeRequestRef = modelId => (0, _utils.createModelField)({
|
|
26
26
|
|
27
27
|
const createCommentModelDefinition = ({
|
28
28
|
modelId
|
29
|
-
}) =>
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
29
|
+
}) => {
|
30
|
+
return {
|
31
|
+
name: "APW - Comment",
|
32
|
+
modelId: "apwCommentModelDefinition",
|
33
|
+
titleFieldId: "displayName",
|
34
|
+
layout: [["comment_body"], ["comment_displayName"]],
|
35
|
+
fields: [commentBody(), changeRequestRef(modelId)]
|
36
|
+
};
|
37
|
+
};
|
36
38
|
|
37
39
|
exports.createCommentModelDefinition = createCommentModelDefinition;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["comment.model.ts"],"names":["commentBody","label","type","parent","changeRequestRef","modelId","settings","models","createCommentModelDefinition","name","titleFieldId","layout","fields"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,WAAW,GAAG,MAChB,6BAAiB;AACbC,EAAAA,KAAK,EAAE,MADM;AAEbC,EAAAA,IAAI,EAAE,WAFO;AAGbC,EAAAA,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMC,gBAAgB,GAAIC,OAAD,IACrB,6BAAiB;AACbJ,EAAAA,KAAK,EAAE,gBADM;AAEbC,EAAAA,IAAI,EAAE,KAFO;AAGbC,EAAAA,MAAM,EAAE,SAHK;AAIbG,EAAAA,QAAQ,EAAE;AACNC,IAAAA,MAAM,EAAE,CACJ;AACIF,MAAAA;AADJ,KADI;AADF;AAJG,CAAjB,CADJ;;AAiBO,MAAMG,4BAA4B,GAAG,CAAC;AACzCH,EAAAA;AADyC,CAAD,KAEuB;AAC/D,SAAO;AACHI,IAAAA,IAAI,EAAE,eADH;AAEHJ,IAAAA,OAAO,EAAE,2BAFN;AAGHK,IAAAA,YAAY,EAAE,aAHX;AAIHC,IAAAA,MAAM,EAAE,CAAC,CAAC,cAAD,CAAD,EAAmB,CAAC,qBAAD,CAAnB,CAJL;AAKHC,IAAAA,MAAM,EAAE,CAACZ,WAAW,EAAZ,EAAgBI,gBAAgB,CAACC,OAAD,CAAhC;AALL,GAAP;AAOH,CAVM","sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst commentBody = () =>\n createModelField({\n label: \"Body\",\n type: \"rich-text\",\n parent: \"comment\"\n });\n\nconst changeRequestRef = (modelId: string) =>\n createModelField({\n label: \"Change Request\",\n type: \"ref\",\n parent: \"comment\",\n settings: {\n models: [\n {\n modelId\n }\n ]\n }\n });\n\ninterface CreateCommentModelDefinitionParams {\n modelId: string;\n}\nexport const createCommentModelDefinition = ({\n modelId\n}: CreateCommentModelDefinitionParams): WorkflowModelDefinition => {\n return {\n name: \"APW - Comment\",\n modelId: \"apwCommentModelDefinition\",\n titleFieldId: \"displayName\",\n layout: [[\"comment_body\"], [\"comment_displayName\"]],\n fields: [commentBody(), changeRequestRef(modelId)]\n };\n};\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["contentModelPluginFactory.ts"],"names":["contentModelPluginFactory","params","group","locale","tenant","modelDefinition","CmsModelPlugin"],"mappings":";;;;;;;;;;;AACA;;;;;;AAiBA,MAAMA,yBAAyB,GAAIC,MAAD,IAAoC;AAClE,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,MAAT;AAAiBC,IAAAA,MAAjB;AAAyBC,IAAAA;AAAzB,MAA6CJ,MAAnD;AAEA,SAAO,IAAIK,8BAAJ;AACHJ,IAAAA,KADG;AAEHC,IAAAA,MAFG;AAGHC,IAAAA;AAHG,KAIAC,eAJA,EAAP;AAMH,CATD;;eAWeL,yB","sourcesContent":["import { CmsGroup } from \"@webiny/api-headless-cms/content/plugins/CmsGroupPlugin\";\nimport { CmsModelPlugin } from \"@webiny/api-headless-cms/content/plugins/CmsModelPlugin\";\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\n\ntype ModelDefinition = Omit<CmsModel, \"locale\" | \"tenant\" | \"webinyVersion\" | \"group\">;\n\ninterface Params {\n group: CmsGroup;\n /**\n * Locale and tenant do not need to be defined.\n * In that case model is not bound to any locale or tenant.\n * You can bind it to locale, tenant, both or none.\n */\n locale?: string;\n tenant?: string;\n modelDefinition: ModelDefinition;\n}\n\nconst contentModelPluginFactory = (params: Params): CmsModelPlugin => {\n const { group, locale, tenant, modelDefinition } = params;\n\n return new CmsModelPlugin({\n group,\n locale,\n tenant,\n ...modelDefinition\n });\n};\n\nexport default contentModelPluginFactory;\n"]}
|
@@ -1,25 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
layout: string[][];
|
8
|
-
fields: (import("@webiny/api-headless-cms/types").CmsModelField | {
|
9
|
-
id: string;
|
10
|
-
label: string;
|
11
|
-
type: string;
|
12
|
-
settings: {
|
13
|
-
fields: any;
|
14
|
-
layout: any;
|
15
|
-
};
|
16
|
-
listValidation: any[];
|
17
|
-
validation: any[];
|
18
|
-
fieldId: string;
|
19
|
-
multipleValues: boolean;
|
20
|
-
predefinedValues: {
|
21
|
-
values: any[];
|
22
|
-
enabled: boolean;
|
23
|
-
};
|
24
|
-
})[];
|
25
|
-
};
|
1
|
+
import { WorkflowModelDefinition } from "../../types";
|
2
|
+
interface CreateContentReviewModelDefinitionParams {
|
3
|
+
reviewerModelId: string;
|
4
|
+
}
|
5
|
+
export declare const createContentReviewModelDefinition: ({ reviewerModelId }: CreateContentReviewModelDefinitionParams) => WorkflowModelDefinition;
|
6
|
+
export {};
|
@@ -170,12 +170,14 @@ const stepsField = fields => ({
|
|
170
170
|
|
171
171
|
const createContentReviewModelDefinition = ({
|
172
172
|
reviewerModelId
|
173
|
-
}) =>
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
173
|
+
}) => {
|
174
|
+
return {
|
175
|
+
name: "APW - Content Review",
|
176
|
+
modelId: "apwContentReviewModelDefinition",
|
177
|
+
titleFieldId: "content",
|
178
|
+
layout: [["contentReview_content"], ["contentReview_reviewRequestedBy"], ["contentReview_steps"], ["contentReview_changeRequested"]],
|
179
|
+
fields: [contentField([contentIdField(), contentTypeField(), contentSettingsField()]), contentStatus(), stepsField([(0, _workflow.stepTitleField)(), (0, _workflow.stepTypeField)(), (0, _workflow.stepSlugField)(), (0, _workflow.stepReviewersField)(reviewerModelId), stepStatusField(), stepPendingChangeRequests(), stepSignOffProvidedOn(), stepSignOffProvidedBy([stepSignOffProvidedById(), stepSignOffProvidedByDisplayName()])])]
|
180
|
+
};
|
181
|
+
};
|
180
182
|
|
181
183
|
exports.createContentReviewModelDefinition = createContentReviewModelDefinition;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["contentReview.model.ts"],"names":["contentField","fields","label","parent","type","multipleValues","settings","validation","name","message","contentStatus","predefinedValues","enabled","values","value","contentIdField","contentTypeField","contentSettingsField","stepStatusField","listValidation","renderer","id","fieldId","stepPendingChangeRequests","stepSignOffProvidedOn","stepSignOffProvidedBy","stepSignOffProvidedById","stepSignOffProvidedByDisplayName","stepsField","layout","map","field","createContentReviewModelDefinition","reviewerModelId","modelId","titleFieldId"],"mappings":"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","sourcesContent":["import { createModelField } from \"./utils\";\nimport { stepTitleField, stepTypeField, stepSlugField, stepReviewersField } from \"./workflow.model\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst contentField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Content\",\n parent: \"contentReview\",\n type: \"object\",\n multipleValues: false,\n settings: { fields },\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst contentStatus = () =>\n createModelField({\n label: \"Status\",\n parent: \"contentReview\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Under review\",\n value: \"underReview\"\n },\n {\n label: \"Ready to be published\",\n value: \"readyToBePublished\"\n },\n {\n label: \"Published\",\n value: \"published\"\n }\n ]\n },\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst contentIdField = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Content\",\n validation: [{ name: \"required\", message: \"Value is required.\" }]\n });\n\nconst contentTypeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"contentReview Type\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Page\",\n value: \"page\"\n },\n { value: \"cms-entry\", label: \"CMS Entry\" }\n ]\n },\n validation: [{ name: \"required\", message: \"Value is required.\" }]\n });\n// TODO: Find a way to store JSON value without \"object\" field.\nconst contentSettingsField = () =>\n createModelField({\n label: \"Settings\",\n type: \"text\",\n parent: \"contentReview Settings\"\n });\n\nconst stepStatusField = (): CmsModelField => ({\n multipleValues: false,\n listValidation: [],\n renderer: {\n name: \"radio-buttons\"\n },\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"done\",\n label: \"Steps done\"\n },\n {\n value: \"active\",\n label: \"Step active\"\n },\n {\n value: \"inactive\",\n label: \"Step inactive\"\n }\n ]\n },\n label: \"Status\",\n id: \"contentReview_steps_status\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n fieldId: \"status\"\n});\n\nconst stepPendingChangeRequests = () =>\n createModelField({\n label: \"Pending change requests\",\n type: \"number\",\n parent: \"contentReview Step\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst stepSignOffProvidedOn = () =>\n createModelField({\n label: \"Sign off provided on\",\n type: \"datetime\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedBy = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Sign off provided By\",\n type: \"object\",\n parent: \"contentReview Step\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst stepSignOffProvidedById = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedByDisplayName = () =>\n createModelField({\n label: \"DisplayName\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepsField = (fields: CmsModelField[]): CmsModelField => ({\n id: \"contentReview_steps\",\n label: \"Steps\",\n type: \"object\",\n settings: {\n fields,\n layout: fields.map(field => [field.fieldId])\n },\n listValidation: [],\n validation: [],\n fieldId: \"steps\",\n multipleValues: true,\n predefinedValues: {\n values: [],\n enabled: false\n }\n});\n\ninterface CreateContentReviewModelDefinitionParams {\n reviewerModelId: string;\n}\nexport const createContentReviewModelDefinition = ({\n reviewerModelId\n}: CreateContentReviewModelDefinitionParams): WorkflowModelDefinition => {\n return {\n name: \"APW - Content Review\",\n modelId: \"apwContentReviewModelDefinition\",\n titleFieldId: \"content\",\n layout: [\n [\"contentReview_content\"],\n [\"contentReview_reviewRequestedBy\"],\n [\"contentReview_steps\"],\n [\"contentReview_changeRequested\"]\n ],\n fields: [\n contentField([contentIdField(), contentTypeField(), contentSettingsField()]),\n contentStatus(),\n stepsField([\n stepTitleField(),\n stepTypeField(),\n stepSlugField(),\n stepReviewersField(reviewerModelId),\n stepStatusField(),\n stepPendingChangeRequests(),\n stepSignOffProvidedOn(),\n stepSignOffProvidedBy([\n stepSignOffProvidedById(),\n stepSignOffProvidedByDisplayName()\n ])\n ])\n ]\n };\n};\n"]}
|
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
import { CmsContext } from "@webiny/api-headless-cms/types";
|
2
|
+
export declare const createApwModels: (context: CmsContext) => void;
|