@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":["createChangeRequestMethods.ts"],"names":["createChangeRequestMethods","storageOperations","onBeforeChangeRequestCreate","onAfterChangeRequestCreate","onBeforeChangeRequestUpdate","onAfterChangeRequestUpdate","onBeforeChangeRequestDelete","onAfterChangeRequestDelete","get","id","getChangeRequest","list","params","listChangeRequests","create","data","publish","input","changeRequest","createChangeRequest","update","original","updateChangeRequest","delete","deleteChangeRequest"],"mappings":";;;;;;;AAAA;;AAYO,SAASA,0BAAT,CAAoC;AACvCC,EAAAA;AADuC,CAApC,EAEmC;AACtC,QAAMC,2BAA2B,GAAG,0BAApC;AACA,QAAMC,0BAA0B,GAAG,0BAAnC;AACA,QAAMC,2BAA2B,GAAG,0BAApC;AACA,QAAMC,0BAA0B,GAAG,0BAAnC;AACA,QAAMC,2BAA2B,GAAG,0BAApC;AACA,QAAMC,0BAA0B,GAAG,0BAAnC;AAEA,SAAO;AACH,UAAMC,GAAN,CAAUC,EAAV,EAAc;AACV,aAAOR,iBAAiB,CAACS,gBAAlB,CAAmC;AAAED,QAAAA;AAAF,OAAnC,CAAP;AACH,KAHE;;AAIH,UAAME,IAAN,CAAWC,MAAX,EAAmB;AACf,aAAOX,iBAAiB,CAACY,kBAAlB,CAAqCD,MAArC,CAAP;AACH,KANE;;AAOH,UAAME,MAAN,CAAaC,IAAb,EAAmB;AACf,YAAMb,2BAA2B,CAACc,OAA5B,CAAoC;AAAEC,QAAAA,KAAK,EAAEF;AAAT,OAApC,CAAN;AAEA,YAAMG,aAAa,GAAG,MAAMjB,iBAAiB,CAACkB,mBAAlB,CAAsC;AAAEJ,QAAAA;AAAF,OAAtC,CAA5B;AAEA,YAAMZ,0BAA0B,CAACa,OAA3B,CAAmC;AAAEE,QAAAA;AAAF,OAAnC,CAAN;AAEA,aAAOA,aAAP;AACH,KAfE;;AAgBH,UAAME,MAAN,CAAaX,EAAb,EAAiBM,IAAjB,EAAuB;AACnB,YAAMM,QAAQ,GAAG,MAAMpB,iBAAiB,CAACS,gBAAlB,CAAmC;AAAED,QAAAA;AAAF,OAAnC,CAAvB;AAEA,YAAML,2BAA2B,CAACY,OAA5B,CAAoC;AAAEK,QAAAA,QAAF;AAAYJ,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN;AAAnB,OAApC,CAAN;AAEA,YAAMG,aAAa,GAAG,MAAMjB,iBAAiB,CAACqB,mBAAlB,CAAsC;AAAEb,QAAAA,EAAF;AAAMM,QAAAA;AAAN,OAAtC,CAA5B;AAEA,YAAMV,0BAA0B,CAACW,OAA3B,CAAmC;AACrCK,QAAAA,QADqC;AAErCJ,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN,SAF8B;AAGrCG,QAAAA;AAHqC,OAAnC,CAAN;AAMA,aAAOA,aAAP;AACH,KA9BE;;AA+BH,UAAMK,MAAN,CAAad,EAAb,EAAyB;AACrB,YAAMS,aAAa,GAAG,MAAMjB,iBAAiB,CAACS,gBAAlB,CAAmC;AAAED,QAAAA;AAAF,OAAnC,CAA5B;AAEA,YAAMH,2BAA2B,CAACU,OAA5B,CAAoC;AAAEE,QAAAA;AAAF,OAApC,CAAN;AAEA,YAAMjB,iBAAiB,CAACuB,mBAAlB,CAAsC;AAAEf,QAAAA;AAAF,OAAtC,CAAN;AAEA,YAAMF,0BAA0B,CAACS,OAA3B,CAAmC;AAAEE,QAAAA;AAAF,OAAnC,CAAN;AAEA,aAAO,IAAP;AACH,KAzCE;;AA0CH;AACR;AACA;AACQhB,IAAAA,2BA7CG;AA8CHC,IAAAA,0BA9CG;AA+CHC,IAAAA,2BA/CG;AAgDHC,IAAAA,0BAhDG;AAiDHC,IAAAA,2BAjDG;AAkDHC,IAAAA;AAlDG,GAAP;AAoDH","sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n ApwChangeRequestCrud,\n CreateApwParams,\n OnAfterChangeRequestCreateTopicParams,\n OnAfterChangeRequestDeleteTopicParams,\n OnAfterChangeRequestUpdateTopicParams,\n OnBeforeChangeRequestCreateTopicParams,\n OnBeforeChangeRequestDeleteTopicParams,\n OnBeforeChangeRequestUpdateTopicParams\n} from \"~/types\";\n\nexport function createChangeRequestMethods({\n storageOperations\n}: CreateApwParams): ApwChangeRequestCrud {\n const onBeforeChangeRequestCreate = createTopic<OnBeforeChangeRequestCreateTopicParams>();\n const onAfterChangeRequestCreate = createTopic<OnAfterChangeRequestCreateTopicParams>();\n const onBeforeChangeRequestUpdate = createTopic<OnBeforeChangeRequestUpdateTopicParams>();\n const onAfterChangeRequestUpdate = createTopic<OnAfterChangeRequestUpdateTopicParams>();\n const onBeforeChangeRequestDelete = createTopic<OnBeforeChangeRequestDeleteTopicParams>();\n const onAfterChangeRequestDelete = createTopic<OnAfterChangeRequestDeleteTopicParams>();\n\n return {\n async get(id) {\n return storageOperations.getChangeRequest({ id });\n },\n async list(params) {\n return storageOperations.listChangeRequests(params);\n },\n async create(data) {\n await onBeforeChangeRequestCreate.publish({ input: data });\n\n const changeRequest = await storageOperations.createChangeRequest({ data });\n\n await onAfterChangeRequestCreate.publish({ changeRequest });\n\n return changeRequest;\n },\n async update(id, data) {\n const original = await storageOperations.getChangeRequest({ id });\n\n await onBeforeChangeRequestUpdate.publish({ original, input: { id, data } });\n\n const changeRequest = await storageOperations.updateChangeRequest({ id, data });\n\n await onAfterChangeRequestUpdate.publish({\n original,\n input: { id, data },\n changeRequest\n });\n\n return changeRequest;\n },\n async delete(id: string) {\n const changeRequest = await storageOperations.getChangeRequest({ id });\n\n await onBeforeChangeRequestDelete.publish({ changeRequest });\n\n await storageOperations.deleteChangeRequest({ id });\n\n await onAfterChangeRequestDelete.publish({ changeRequest });\n\n return true;\n },\n /**\n * Lifecycle events\n */\n onBeforeChangeRequestCreate,\n onAfterChangeRequestCreate,\n onBeforeChangeRequestUpdate,\n onAfterChangeRequestUpdate,\n onBeforeChangeRequestDelete,\n onAfterChangeRequestDelete\n };\n}\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["createCommentMethods.ts"],"names":["createCommentMethods","storageOperations","onBeforeCommentCreate","onAfterCommentCreate","onBeforeCommentUpdate","onAfterCommentUpdate","onBeforeCommentDelete","onAfterCommentDelete","get","id","getComment","list","params","listComments","create","data","publish","input","comment","createComment","update","original","updateComment","delete","deleteComment"],"mappings":";;;;;;;AAAA;;AAYO,SAASA,oBAAT,CAA8B;AAAEC,EAAAA;AAAF,CAA9B,EAAsF;AACzF,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,QAAMC,oBAAoB,GAAG,0BAA7B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,QAAMC,oBAAoB,GAAG,0BAA7B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,QAAMC,oBAAoB,GAAG,0BAA7B;AAEA,SAAO;AACH;AACR;AACA;AACQL,IAAAA,qBAJG;AAKHC,IAAAA,oBALG;AAMHC,IAAAA,qBANG;AAOHC,IAAAA,oBAPG;AAQHC,IAAAA,qBARG;AASHC,IAAAA,oBATG;;AAUH,UAAMC,GAAN,CAAUC,EAAV,EAAc;AACV,aAAOR,iBAAiB,CAACS,UAAlB,CAA6B;AAAED,QAAAA;AAAF,OAA7B,CAAP;AACH,KAZE;;AAaH,UAAME,IAAN,CAAWC,MAAX,EAAmB;AACf,aAAOX,iBAAiB,CAACY,YAAlB,CAA+BD,MAA/B,CAAP;AACH,KAfE;;AAgBH,UAAME,MAAN,CAAaC,IAAb,EAAmB;AACf,YAAMb,qBAAqB,CAACc,OAAtB,CAA8B;AAAEC,QAAAA,KAAK,EAAEF;AAAT,OAA9B,CAAN;AAEA,YAAMG,OAAO,GAAG,MAAMjB,iBAAiB,CAACkB,aAAlB,CAAgC;AAClDJ,QAAAA;AADkD,OAAhC,CAAtB;AAGA,YAAMZ,oBAAoB,CAACa,OAArB,CAA6B;AAAEE,QAAAA;AAAF,OAA7B,CAAN;AAEA,aAAOA,OAAP;AACH,KAzBE;;AA0BH,UAAME,MAAN,CAAaX,EAAb,EAAiBM,IAAjB,EAAuB;AACnB,YAAMM,QAAQ,GAAG,MAAMpB,iBAAiB,CAACS,UAAlB,CAA6B;AAAED,QAAAA;AAAF,OAA7B,CAAvB;AAEA,YAAML,qBAAqB,CAACY,OAAtB,CAA8B;AAAEK,QAAAA,QAAF;AAAYJ,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN;AAAnB,OAA9B,CAAN;AAEA,YAAMG,OAAO,GAAG,MAAMjB,iBAAiB,CAACqB,aAAlB,CAAgC;AAAEb,QAAAA,EAAF;AAAMM,QAAAA;AAAN,OAAhC,CAAtB;AAEA,YAAMV,oBAAoB,CAACW,OAArB,CAA6B;AAAEK,QAAAA,QAAF;AAAYH,QAAAA,OAAZ;AAAqBD,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN;AAA5B,OAA7B,CAAN;AAEA,aAAOG,OAAP;AACH,KApCE;;AAqCH,UAAMK,MAAN,CAAad,EAAb,EAAyB;AACrB,YAAMS,OAAO,GAAG,MAAMjB,iBAAiB,CAACS,UAAlB,CAA6B;AAAED,QAAAA;AAAF,OAA7B,CAAtB;AAEA,YAAMH,qBAAqB,CAACU,OAAtB,CAA8B;AAAEE,QAAAA;AAAF,OAA9B,CAAN;AAEA,YAAMjB,iBAAiB,CAACuB,aAAlB,CAAgC;AAAEf,QAAAA;AAAF,OAAhC,CAAN;AAEA,YAAMF,oBAAoB,CAACS,OAArB,CAA6B;AAAEE,QAAAA;AAAF,OAA7B,CAAN;AAEA,aAAO,IAAP;AACH;;AA/CE,GAAP;AAiDH","sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n ApwCommentCrud,\n CreateApwParams,\n OnBeforeCommentCreateTopicParams,\n OnAfterCommentCreateTopicParams,\n OnBeforeCommentUpdateTopicParams,\n OnAfterCommentUpdateTopicParams,\n OnBeforeCommentDeleteTopicParams,\n OnAfterCommentDeleteTopicParams\n} from \"~/types\";\n\nexport function createCommentMethods({ storageOperations }: CreateApwParams): ApwCommentCrud {\n const onBeforeCommentCreate = createTopic<OnBeforeCommentCreateTopicParams>();\n const onAfterCommentCreate = createTopic<OnAfterCommentCreateTopicParams>();\n const onBeforeCommentUpdate = createTopic<OnBeforeCommentUpdateTopicParams>();\n const onAfterCommentUpdate = createTopic<OnAfterCommentUpdateTopicParams>();\n const onBeforeCommentDelete = createTopic<OnBeforeCommentDeleteTopicParams>();\n const onAfterCommentDelete = createTopic<OnAfterCommentDeleteTopicParams>();\n\n return {\n /**\n * Lifecycle events\n */\n onBeforeCommentCreate,\n onAfterCommentCreate,\n onBeforeCommentUpdate,\n onAfterCommentUpdate,\n onBeforeCommentDelete,\n onAfterCommentDelete,\n async get(id) {\n return storageOperations.getComment({ id });\n },\n async list(params) {\n return storageOperations.listComments(params);\n },\n async create(data) {\n await onBeforeCommentCreate.publish({ input: data });\n\n const comment = await storageOperations.createComment({\n data\n });\n await onAfterCommentCreate.publish({ comment });\n\n return comment;\n },\n async update(id, data) {\n const original = await storageOperations.getComment({ id });\n\n await onBeforeCommentUpdate.publish({ original, input: { id, data } });\n\n const comment = await storageOperations.updateComment({ id, data });\n\n await onAfterCommentUpdate.publish({ original, comment, input: { id, data } });\n\n return comment;\n },\n async delete(id: string) {\n const comment = await storageOperations.getComment({ id });\n\n await onBeforeCommentDelete.publish({ comment });\n\n await storageOperations.deleteComment({ id });\n\n await onAfterCommentDelete.publish({ comment });\n\n return true;\n }\n };\n}\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["createContentReviewMethods.ts"],"names":["createContentReviewMethods","getIdentity","storageOperations","getReviewer","onBeforeContentReviewCreate","onAfterContentReviewCreate","onBeforeContentReviewUpdate","onAfterContentReviewUpdate","onBeforeContentReviewDelete","onAfterContentReviewDelete","get","id","getContentReview","list","params","listContentReviews","create","data","input","status","ApwContentReviewStatus","UNDER_REVIEW","publish","contentReview","createContentReview","update","original","updateContentReview","delete","deleteContentReview","provideSignOff","stepSlug","entry","steps","stepIndex","findIndex","step","slug","currentStep","previousStep","identity","hasPermission","NotAuthorizedError","ApwContentReviewStepStatus","DONE","type","ApwWorkflowStepTypes","MANDATORY_BLOCKING","StepMissingError","pendingChangeRequests","PendingChangeRequestsError","ACTIVE","StepInActiveError","previousStepStatus","updatedSteps","map","index","signOffProvidedOn","Date","toISOString","signOffProvidedBy","retractSignOff","NoSignOffProvidedError"],"mappings":"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","sourcesContent":["import { createTopic } from \"@webiny/pubsub\";\nimport {\n ApwContentReviewCrud,\n ApwContentReviewStepStatus,\n ApwWorkflowStepTypes,\n ApwContentReviewStatus,\n CreateApwParams,\n ApwReviewerCrud,\n ApwContentReview,\n OnBeforeContentReviewCreateTopicParams,\n OnAfterContentReviewCreateTopicParams,\n OnBeforeContentReviewUpdateTopicParams,\n OnAfterContentReviewUpdateTopicParams,\n OnBeforeContentReviewDeleteTopicParams,\n OnAfterContentReviewDeleteTopicParams\n} from \"~/types\";\nimport { hasReviewer, getNextStepStatus } from \"~/plugins/utils\";\nimport {\n NoSignOffProvidedError,\n NotAuthorizedError,\n PendingChangeRequestsError,\n StepInActiveError,\n StepMissingError\n} from \"~/utils/errors\";\n\ninterface CreateContentReviewMethodsParams extends CreateApwParams {\n getReviewer: ApwReviewerCrud[\"get\"];\n}\n\nexport function createContentReviewMethods({\n getIdentity,\n storageOperations,\n getReviewer\n}: CreateContentReviewMethodsParams): ApwContentReviewCrud {\n const onBeforeContentReviewCreate = createTopic<OnBeforeContentReviewCreateTopicParams>();\n const onAfterContentReviewCreate = createTopic<OnAfterContentReviewCreateTopicParams>();\n const onBeforeContentReviewUpdate = createTopic<OnBeforeContentReviewUpdateTopicParams>();\n const onAfterContentReviewUpdate = createTopic<OnAfterContentReviewUpdateTopicParams>();\n const onBeforeContentReviewDelete = createTopic<OnBeforeContentReviewDeleteTopicParams>();\n const onAfterContentReviewDelete = createTopic<OnAfterContentReviewDeleteTopicParams>();\n return {\n /**\n * Lifecycle events\n */\n onBeforeContentReviewCreate,\n onAfterContentReviewCreate,\n onBeforeContentReviewUpdate,\n onAfterContentReviewUpdate,\n onBeforeContentReviewDelete,\n onAfterContentReviewDelete,\n async get(id) {\n return storageOperations.getContentReview({ id });\n },\n async list(params) {\n return storageOperations.listContentReviews(params);\n },\n async create(data) {\n const input = {\n ...data,\n status: ApwContentReviewStatus.UNDER_REVIEW\n };\n await onBeforeContentReviewCreate.publish({ input });\n\n const contentReview = await storageOperations.createContentReview({\n data: input\n });\n\n await onAfterContentReviewCreate.publish({ contentReview });\n\n return contentReview;\n },\n async update(id, data) {\n const original = await storageOperations.getContentReview({ id });\n\n await onBeforeContentReviewUpdate.publish({ original, input: { id, data } });\n\n const contentReview = await storageOperations.updateContentReview({\n id,\n data\n });\n\n await onAfterContentReviewUpdate.publish({\n original,\n input: { id, data },\n contentReview\n });\n\n return contentReview;\n },\n async delete(id) {\n const contentReview = await storageOperations.getContentReview({ id });\n\n await onBeforeContentReviewDelete.publish({ contentReview });\n\n await storageOperations.deleteContentReview({ id });\n\n await onAfterContentReviewDelete.publish({ contentReview });\n\n return true;\n },\n async provideSignOff(id, stepSlug) {\n const entry: ApwContentReview = await this.get(id);\n const { steps } = entry;\n const stepIndex = steps.findIndex(step => step.slug === stepSlug);\n const currentStep = steps[stepIndex];\n const previousStep = steps[stepIndex - 1];\n\n const identity = getIdentity();\n const hasPermission = await hasReviewer({\n getReviewer,\n identity,\n step: currentStep\n });\n\n /**\n * Check whether the sign-off is requested by a reviewer.\n */\n if (!hasPermission) {\n throw new NotAuthorizedError({ entry, input: { id, step: stepSlug } });\n }\n /**\n * Don't allow sign off, if previous step is of \"mandatory_blocking\" type and undone.\n */\n if (\n previousStep &&\n previousStep.status !== ApwContentReviewStepStatus.DONE &&\n previousStep.type === ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n throw new StepMissingError({ entry, input: { id, step: stepSlug } });\n }\n /**\n * Don't allow sign off, if there are pending change requests.\n */\n if (currentStep.pendingChangeRequests > 0) {\n throw new PendingChangeRequestsError({ entry, input: { id, step: stepSlug } });\n }\n /**\n * Don't allow sign off, if current step is not in \"active\" state.\n */\n if (currentStep.status !== ApwContentReviewStepStatus.ACTIVE) {\n throw new StepInActiveError({ entry, input: { id, step: stepSlug } });\n }\n let previousStepStatus: ApwContentReviewStepStatus;\n /*\n * Provide sign-off for give step.\n */\n const updatedSteps = steps.map((step, index) => {\n if (index === stepIndex) {\n previousStepStatus = ApwContentReviewStepStatus.DONE;\n return {\n ...step,\n status: ApwContentReviewStepStatus.DONE,\n signOffProvidedOn: new Date().toISOString(),\n signOffProvidedBy: identity\n };\n }\n /**\n * Update next steps status based on type.\n */\n if (index > stepIndex) {\n const previousStep = steps[index - 1];\n\n previousStepStatus = getNextStepStatus(previousStep.type, previousStepStatus);\n return {\n ...step,\n status: previousStepStatus\n };\n }\n\n return step;\n });\n /**\n * Save updated steps.\n */\n await this.update(id, {\n steps: updatedSteps\n });\n return true;\n },\n async retractSignOff(id, stepSlug) {\n const entry: ApwContentReview = await this.get(id);\n const { steps } = entry;\n const stepIndex = steps.findIndex(step => step.slug === stepSlug);\n const currentStep = steps[stepIndex];\n\n const identity = getIdentity();\n\n const hasPermission = await hasReviewer({\n getReviewer,\n identity,\n step: currentStep\n });\n\n /**\n * Check whether the retract sign-off is requested by a reviewer.\n */\n if (!hasPermission) {\n throw new NotAuthorizedError({ entry, input: { id, step: stepSlug } });\n }\n /**\n * Don't allow, if step in not \"done\" i.e. no sign-off was provided for it.\n */\n if (currentStep.status !== ApwContentReviewStepStatus.DONE) {\n throw new NoSignOffProvidedError({ entry, input: { id, step: stepSlug } });\n }\n let previousStepStatus: ApwContentReviewStepStatus;\n\n /*\n * Retract sign-off for give step.\n */\n const updatedSteps = steps.map((step, index) => {\n if (index === stepIndex) {\n previousStepStatus = ApwContentReviewStepStatus.ACTIVE;\n return {\n ...step,\n status: previousStepStatus,\n signOffProvidedOn: null,\n signOffProvidedBy: null\n };\n }\n /**\n * Set next step status as \"inactive\".\n */\n if (index > stepIndex) {\n const previousStep = steps[index - 1];\n\n previousStepStatus = getNextStepStatus(previousStep.type, previousStepStatus);\n\n return {\n ...step,\n status: previousStepStatus\n };\n }\n\n return step;\n });\n\n await this.update(id, {\n steps: updatedSteps\n });\n return true;\n }\n };\n}\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["createReviewerMethods.ts"],"names":["createReviewerMethods","storageOperations","onBeforeReviewerCreate","onAfterReviewerCreate","onBeforeReviewerUpdate","onAfterReviewerUpdate","onBeforeReviewerDelete","onAfterReviewerDelete","get","id","getReviewer","list","params","listReviewers","create","data","publish","input","reviewer","createReviewer","update","original","updateReviewer","delete","deleteReviewer"],"mappings":";;;;;;;AAUA;;AAEO,SAASA,qBAAT,CAA+B;AAAEC,EAAAA;AAAF,CAA/B,EAAwF;AAC3F,QAAMC,sBAAsB,GAAG,0BAA/B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,QAAMC,sBAAsB,GAAG,0BAA/B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,QAAMC,sBAAsB,GAAG,0BAA/B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,SAAO;AACH;AACR;AACA;AACQL,IAAAA,sBAJG;AAKHC,IAAAA,qBALG;AAMHC,IAAAA,sBANG;AAOHC,IAAAA,qBAPG;AAQHC,IAAAA,sBARG;AASHC,IAAAA,qBATG;;AAUH,UAAMC,GAAN,CAAUC,EAAV,EAAc;AACV,aAAOR,iBAAiB,CAACS,WAAlB,CAA8B;AAAED,QAAAA;AAAF,OAA9B,CAAP;AACH,KAZE;;AAaH,UAAME,IAAN,CAAWC,MAAX,EAAmB;AACf,aAAOX,iBAAiB,CAACY,aAAlB,CAAgCD,MAAhC,CAAP;AACH,KAfE;;AAgBH,UAAME,MAAN,CAAaC,IAAb,EAAmB;AACf,YAAMb,sBAAsB,CAACc,OAAvB,CAA+B;AAAEC,QAAAA,KAAK,EAAEF;AAAT,OAA/B,CAAN;AAEA,YAAMG,QAAQ,GAAG,MAAMjB,iBAAiB,CAACkB,cAAlB,CAAiC;AAAEJ,QAAAA;AAAF,OAAjC,CAAvB;AAEA,YAAMZ,qBAAqB,CAACa,OAAtB,CAA8B;AAAEE,QAAAA;AAAF,OAA9B,CAAN;AAEA,aAAOA,QAAP;AACH,KAxBE;;AAyBH,UAAME,MAAN,CAAaX,EAAb,EAAiBM,IAAjB,EAAuB;AACnB,YAAMM,QAAQ,GAAG,MAAMpB,iBAAiB,CAACS,WAAlB,CAA8B;AAAED,QAAAA;AAAF,OAA9B,CAAvB;AAEA,YAAML,sBAAsB,CAACY,OAAvB,CAA+B;AAAEK,QAAAA,QAAF;AAAYJ,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN;AAAnB,OAA/B,CAAN;AAEA,YAAMG,QAAQ,GAAG,MAAMjB,iBAAiB,CAACqB,cAAlB,CAAiC;AAAEb,QAAAA,EAAF;AAAMM,QAAAA;AAAN,OAAjC,CAAvB;AAEA,YAAMV,qBAAqB,CAACW,OAAtB,CAA8B;AAAEK,QAAAA,QAAF;AAAYJ,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN,SAAnB;AAAiCG,QAAAA;AAAjC,OAA9B,CAAN;AAEA,aAAOA,QAAP;AACH,KAnCE;;AAoCH,UAAMK,MAAN,CAAad,EAAb,EAAyB;AACrB,YAAMS,QAAQ,GAAG,MAAMjB,iBAAiB,CAACS,WAAlB,CAA8B;AAAED,QAAAA;AAAF,OAA9B,CAAvB;AAEA,YAAMH,sBAAsB,CAACU,OAAvB,CAA+B;AAAEE,QAAAA;AAAF,OAA/B,CAAN;AAEA,YAAMjB,iBAAiB,CAACuB,cAAlB,CAAiC;AAAEf,QAAAA;AAAF,OAAjC,CAAN;AAEA,YAAMF,qBAAqB,CAACS,OAAtB,CAA8B;AAAEE,QAAAA;AAAF,OAA9B,CAAN;AAEA,aAAO,IAAP;AACH;;AA9CE,GAAP;AAgDH","sourcesContent":["import {\n ApwReviewerCrud,\n CreateApwParams,\n OnAfterReviewerCreateTopicParams,\n OnAfterReviewerDeleteTopicParams,\n OnAfterReviewerUpdateTopicParams,\n OnBeforeReviewerCreateTopicParams,\n OnBeforeReviewerDeleteTopicParams,\n OnBeforeReviewerUpdateTopicParams\n} from \"~/types\";\nimport { createTopic } from \"@webiny/pubsub\";\n\nexport function createReviewerMethods({ storageOperations }: CreateApwParams): ApwReviewerCrud {\n const onBeforeReviewerCreate = createTopic<OnBeforeReviewerCreateTopicParams>();\n const onAfterReviewerCreate = createTopic<OnAfterReviewerCreateTopicParams>();\n const onBeforeReviewerUpdate = createTopic<OnBeforeReviewerUpdateTopicParams>();\n const onAfterReviewerUpdate = createTopic<OnAfterReviewerUpdateTopicParams>();\n const onBeforeReviewerDelete = createTopic<OnBeforeReviewerDeleteTopicParams>();\n const onAfterReviewerDelete = createTopic<OnAfterReviewerDeleteTopicParams>();\n return {\n /**\n * Lifecycle events\n */\n onBeforeReviewerCreate,\n onAfterReviewerCreate,\n onBeforeReviewerUpdate,\n onAfterReviewerUpdate,\n onBeforeReviewerDelete,\n onAfterReviewerDelete,\n async get(id) {\n return storageOperations.getReviewer({ id });\n },\n async list(params) {\n return storageOperations.listReviewers(params);\n },\n async create(data) {\n await onBeforeReviewerCreate.publish({ input: data });\n\n const reviewer = await storageOperations.createReviewer({ data });\n\n await onAfterReviewerCreate.publish({ reviewer });\n\n return reviewer;\n },\n async update(id, data) {\n const original = await storageOperations.getReviewer({ id });\n\n await onBeforeReviewerUpdate.publish({ original, input: { id, data } });\n\n const reviewer = await storageOperations.updateReviewer({ id, data });\n\n await onAfterReviewerUpdate.publish({ original, input: { id, data }, reviewer });\n\n return reviewer;\n },\n async delete(id: string) {\n const reviewer = await storageOperations.getReviewer({ id });\n\n await onBeforeReviewerDelete.publish({ reviewer });\n\n await storageOperations.deleteReviewer({ id });\n\n await onAfterReviewerDelete.publish({ reviewer });\n\n return true;\n }\n };\n}\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["createWorkflowMethods.ts"],"names":["createWorkflowMethods","storageOperations","onBeforeWorkflowCreate","onAfterWorkflowCreate","onBeforeWorkflowUpdate","onAfterWorkflowUpdate","onBeforeWorkflowDelete","onAfterWorkflowDelete","get","id","getWorkflow","list","params","listWorkflows","create","data","publish","input","workflow","createWorkflow","update","original","updateWorkflow","delete","deleteWorkflow"],"mappings":";;;;;;;AAUA;;AAEO,SAASA,qBAAT,CAA+B;AAAEC,EAAAA;AAAF,CAA/B,EAAwF;AAC3F,QAAMC,sBAAsB,GAAG,0BAA/B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,QAAMC,sBAAsB,GAAG,0BAA/B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,QAAMC,sBAAsB,GAAG,0BAA/B;AACA,QAAMC,qBAAqB,GAAG,0BAA9B;AACA,SAAO;AACH;AACR;AACA;AACQL,IAAAA,sBAJG;AAKHC,IAAAA,qBALG;AAMHC,IAAAA,sBANG;AAOHC,IAAAA,qBAPG;AAQHC,IAAAA,sBARG;AASHC,IAAAA,qBATG;;AAUH,UAAMC,GAAN,CAAUC,EAAV,EAAc;AACV,aAAOR,iBAAiB,CAACS,WAAlB,CAA8B;AAAED,QAAAA;AAAF,OAA9B,CAAP;AACH,KAZE;;AAaH,UAAME,IAAN,CAAWC,MAAX,EAAmB;AACf,aAAOX,iBAAiB,CAACY,aAAlB,CAAgCD,MAAhC,CAAP;AACH,KAfE;;AAgBH,UAAME,MAAN,CAAaC,IAAb,EAAmB;AACf,YAAMb,sBAAsB,CAACc,OAAvB,CAA+B;AAAEC,QAAAA,KAAK,EAAEF;AAAT,OAA/B,CAAN;AAEA,YAAMG,QAAQ,GAAG,MAAMjB,iBAAiB,CAACkB,cAAlB,CAAiC;AAAEJ,QAAAA;AAAF,OAAjC,CAAvB;AAEA,YAAMZ,qBAAqB,CAACa,OAAtB,CAA8B;AAAEE,QAAAA;AAAF,OAA9B,CAAN;AAEA,aAAOA,QAAP;AACH,KAxBE;;AAyBH,UAAME,MAAN,CAAaX,EAAb,EAAiBM,IAAjB,EAAuB;AACnB,YAAMM,QAAQ,GAAG,MAAMpB,iBAAiB,CAACS,WAAlB,CAA8B;AAAED,QAAAA;AAAF,OAA9B,CAAvB;AAEA,YAAML,sBAAsB,CAACY,OAAvB,CAA+B;AAAEK,QAAAA,QAAF;AAAYJ,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN;AAAnB,OAA/B,CAAN;AAEA,YAAMG,QAAQ,GAAG,MAAMjB,iBAAiB,CAACqB,cAAlB,CAAiC;AAAEb,QAAAA,EAAF;AAAMM,QAAAA;AAAN,OAAjC,CAAvB;AAEA,YAAMV,qBAAqB,CAACW,OAAtB,CAA8B;AAAEK,QAAAA,QAAF;AAAYJ,QAAAA,KAAK,EAAE;AAAER,UAAAA,EAAF;AAAMM,UAAAA;AAAN,SAAnB;AAAiCG,QAAAA;AAAjC,OAA9B,CAAN;AAEA,aAAOA,QAAP;AACH,KAnCE;;AAoCH,UAAMK,MAAN,CAAad,EAAb,EAAyB;AACrB,YAAMS,QAAQ,GAAG,MAAMjB,iBAAiB,CAACS,WAAlB,CAA8B;AAAED,QAAAA;AAAF,OAA9B,CAAvB;AAEA,YAAMH,sBAAsB,CAACU,OAAvB,CAA+B;AAAEE,QAAAA;AAAF,OAA/B,CAAN;AAEA,YAAMjB,iBAAiB,CAACuB,cAAlB,CAAiC;AAAEf,QAAAA;AAAF,OAAjC,CAAN;AAEA,YAAMF,qBAAqB,CAACS,OAAtB,CAA8B;AAAEE,QAAAA;AAAF,OAA9B,CAAN;AAEA,aAAO,IAAP;AACH;;AA9CE,GAAP;AAgDH","sourcesContent":["import {\n ApwWorkflowCrud,\n CreateApwParams,\n OnAfterWorkflowCreateTopicParams,\n OnAfterWorkflowDeleteTopicParams,\n OnAfterWorkflowUpdateTopicParams,\n OnBeforeWorkflowCreateTopicParams,\n OnBeforeWorkflowDeleteTopicParams,\n OnBeforeWorkflowUpdateTopicParams\n} from \"~/types\";\nimport { createTopic } from \"@webiny/pubsub\";\n\nexport function createWorkflowMethods({ storageOperations }: CreateApwParams): ApwWorkflowCrud {\n const onBeforeWorkflowCreate = createTopic<OnBeforeWorkflowCreateTopicParams>();\n const onAfterWorkflowCreate = createTopic<OnAfterWorkflowCreateTopicParams>();\n const onBeforeWorkflowUpdate = createTopic<OnBeforeWorkflowUpdateTopicParams>();\n const onAfterWorkflowUpdate = createTopic<OnAfterWorkflowUpdateTopicParams>();\n const onBeforeWorkflowDelete = createTopic<OnBeforeWorkflowDeleteTopicParams>();\n const onAfterWorkflowDelete = createTopic<OnAfterWorkflowDeleteTopicParams>();\n return {\n /**\n * Lifecycle events\n */\n onBeforeWorkflowCreate,\n onAfterWorkflowCreate,\n onBeforeWorkflowUpdate,\n onAfterWorkflowUpdate,\n onBeforeWorkflowDelete,\n onAfterWorkflowDelete,\n async get(id) {\n return storageOperations.getWorkflow({ id });\n },\n async list(params) {\n return storageOperations.listWorkflows(params);\n },\n async create(data) {\n await onBeforeWorkflowCreate.publish({ input: data });\n\n const workflow = await storageOperations.createWorkflow({ data });\n\n await onAfterWorkflowCreate.publish({ workflow });\n\n return workflow;\n },\n async update(id, data) {\n const original = await storageOperations.getWorkflow({ id });\n\n await onBeforeWorkflowUpdate.publish({ original, input: { id, data } });\n\n const workflow = await storageOperations.updateWorkflow({ id, data });\n\n await onAfterWorkflowUpdate.publish({ original, input: { id, data }, workflow });\n\n return workflow;\n },\n async delete(id: string) {\n const workflow = await storageOperations.getWorkflow({ id });\n\n await onBeforeWorkflowDelete.publish({ workflow });\n\n await storageOperations.deleteWorkflow({ id });\n\n await onAfterWorkflowDelete.publish({ workflow });\n\n return true;\n }\n };\n}\n"]}
|
package/createApw/index.js
CHANGED
@@ -34,11 +34,13 @@ const createApw = params => {
|
|
34
34
|
},
|
35
35
|
|
36
36
|
getWorkflowGetter(type) {
|
37
|
-
|
37
|
+
const getter = workflowGetters.get(type);
|
38
|
+
|
39
|
+
if (!getter) {
|
38
40
|
throw new Error(`No loader found for type: "${type}". You must define a loader.`);
|
39
41
|
}
|
40
42
|
|
41
|
-
return
|
43
|
+
return getter;
|
42
44
|
},
|
43
45
|
|
44
46
|
workflow: workflowMethods,
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["createApw","params","workflowGetters","Map","workflowMethods","reviewerMethods","changeRequestMethods","addWorkflowGetter","type","func","set","getWorkflowGetter","getter","get","Error","workflow","reviewer","changeRequest","comment","contentReview","getReviewer","bind"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAQO,MAAMA,SAAS,GAAIC,MAAD,IAAyD;AAC9E,QAAMC,eAAe,GAAG,IAAIC,GAAJ,EAAxB;AAEA,QAAMC,eAAe,GAAG,kDAAsBH,MAAtB,CAAxB;AACA,QAAMI,eAAe,GAAG,kDAAsBJ,MAAtB,CAAxB;AACA,QAAMK,oBAAoB,GAAG,4DAA2BL,MAA3B,CAA7B;AAEA,SAAO;AACHM,IAAAA,iBAAiB,CAACC,IAAD,EAAOC,IAAP,EAAa;AAC1BP,MAAAA,eAAe,CAACQ,GAAhB,CAAoBF,IAApB,EAA0BC,IAA1B;AACH,KAHE;;AAIHE,IAAAA,iBAAiB,CAACH,IAAD,EAAO;AACpB,YAAMI,MAAM,GAAGV,eAAe,CAACW,GAAhB,CAAoBL,IAApB,CAAf;;AACA,UAAI,CAACI,MAAL,EAAa;AACT,cAAM,IAAIE,KAAJ,CAAW,8BAA6BN,IAAK,8BAA7C,CAAN;AACH;;AACD,aAAOI,MAAP;AACH,KAVE;;AAWHG,IAAAA,QAAQ,EAAEX,eAXP;AAYHY,IAAAA,QAAQ,EAAEX,eAZP;AAaHY,IAAAA,aAAa,EAAEX,oBAbZ;AAcHY,IAAAA,OAAO,EAAE,gDAAqBjB,MAArB,CAdN;AAeHkB,IAAAA,aAAa,EAAE,4FACRlB,MADQ;AAEXmB,MAAAA,WAAW,EAAEf,eAAe,CAACQ,GAAhB,CAAoBQ,IAApB,CAAyBhB,eAAzB;AAFF;AAfZ,GAAP;AAoBH,CA3BM","sourcesContent":["import { createWorkflowMethods } from \"./createWorkflowMethods\";\nimport { createReviewerMethods } from \"./createReviewerMethods\";\nimport { createCommentMethods } from \"./createCommentMethods\";\nimport { createChangeRequestMethods } from \"./createChangeRequestMethods\";\nimport { createContentReviewMethods } from \"./createContentReviewMethods\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentTypes,\n CreateApwParams,\n WorkflowGetter\n} from \"~/types\";\n\nexport const createApw = (params: CreateApwParams): AdvancedPublishingWorkflow => {\n const workflowGetters = new Map<ApwContentTypes, WorkflowGetter>();\n\n const workflowMethods = createWorkflowMethods(params);\n const reviewerMethods = createReviewerMethods(params);\n const changeRequestMethods = createChangeRequestMethods(params);\n\n return {\n addWorkflowGetter(type, func) {\n workflowGetters.set(type, func);\n },\n getWorkflowGetter(type) {\n const getter = workflowGetters.get(type);\n if (!getter) {\n throw new Error(`No loader found for type: \"${type}\". You must define a loader.`);\n }\n return getter;\n },\n workflow: workflowMethods,\n reviewer: reviewerMethods,\n changeRequest: changeRequestMethods,\n comment: createCommentMethods(params),\n contentReview: createContentReviewMethods({\n ...params,\n getReviewer: reviewerMethods.get.bind(reviewerMethods)\n })\n };\n};\n"]}
|
package/index.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["createApwContext","createApwGraphQL"],"mappings":";;;;;;;;;AAIA;;AACA;;AALA;AACA;AACA;AACA;AAIO,MAAMA,gBAAgB,GAAG,MAAM;AAClC,SAAO,uBAAP;AACH,CAFM;;;;AAIA,MAAMC,gBAAgB,GAAG,MAAM;AAClC,SAAO,uBAAP;AACH,CAFM","sourcesContent":["/**\n * We have separated context and GraphQL creation so user can initialize only context if required.\n * GraphQL will not work without context, but context will without GraphQL.\n */\nimport graphql from \"~/plugins/graphql\";\nimport context from \"./plugins/context\";\n\nexport const createApwContext = () => {\n return context();\n};\n\nexport const createApwGraphQL = () => {\n return graphql();\n};\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@webiny/api-apw",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.25.0-beta.0",
|
4
4
|
"keywords": [
|
5
5
|
"apw:base"
|
6
6
|
],
|
@@ -18,21 +18,21 @@
|
|
18
18
|
],
|
19
19
|
"license": "MIT",
|
20
20
|
"dependencies": {
|
21
|
-
"@babel/runtime": "7.
|
22
|
-
"@webiny/api-headless-cms": "5.
|
23
|
-
"@webiny/api-i18n": "5.
|
24
|
-
"@webiny/api-i18n-content": "5.
|
25
|
-
"@webiny/api-i18n-ddb": "5.
|
26
|
-
"@webiny/api-page-builder": "5.
|
27
|
-
"@webiny/api-page-builder-so-ddb": "5.
|
28
|
-
"@webiny/api-security": "5.
|
29
|
-
"@webiny/api-tenancy": "5.
|
30
|
-
"@webiny/error": "5.
|
31
|
-
"@webiny/handler": "5.
|
32
|
-
"@webiny/handler-aws": "5.
|
33
|
-
"@webiny/handler-graphql": "5.
|
34
|
-
"@webiny/plugins": "5.
|
35
|
-
"@webiny/pubsub": "5.
|
21
|
+
"@babel/runtime": "7.17.2",
|
22
|
+
"@webiny/api-headless-cms": "5.25.0-beta.0",
|
23
|
+
"@webiny/api-i18n": "5.25.0-beta.0",
|
24
|
+
"@webiny/api-i18n-content": "5.25.0-beta.0",
|
25
|
+
"@webiny/api-i18n-ddb": "5.25.0-beta.0",
|
26
|
+
"@webiny/api-page-builder": "5.25.0-beta.0",
|
27
|
+
"@webiny/api-page-builder-so-ddb": "5.25.0-beta.0",
|
28
|
+
"@webiny/api-security": "5.25.0-beta.0",
|
29
|
+
"@webiny/api-tenancy": "5.25.0-beta.0",
|
30
|
+
"@webiny/error": "5.25.0-beta.0",
|
31
|
+
"@webiny/handler": "5.25.0-beta.0",
|
32
|
+
"@webiny/handler-aws": "5.25.0-beta.0",
|
33
|
+
"@webiny/handler-graphql": "5.25.0-beta.0",
|
34
|
+
"@webiny/plugins": "5.25.0-beta.0",
|
35
|
+
"@webiny/pubsub": "5.25.0-beta.0",
|
36
36
|
"lodash": "4.17.21"
|
37
37
|
},
|
38
38
|
"devDependencies": {
|
@@ -40,20 +40,20 @@
|
|
40
40
|
"@babel/core": "^7.5.5",
|
41
41
|
"@babel/preset-env": "^7.5.5",
|
42
42
|
"@babel/preset-flow": "^7.0.0",
|
43
|
-
"@webiny/api-security-so-ddb": "^5.
|
44
|
-
"@webiny/api-tenancy-so-ddb": "^5.
|
45
|
-
"@webiny/cli": "^5.
|
46
|
-
"@webiny/project-utils": "^5.
|
43
|
+
"@webiny/api-security-so-ddb": "^5.25.0-beta.0",
|
44
|
+
"@webiny/api-tenancy-so-ddb": "^5.25.0-beta.0",
|
45
|
+
"@webiny/cli": "^5.25.0-beta.0",
|
46
|
+
"@webiny/project-utils": "^5.25.0-beta.0",
|
47
47
|
"apollo-graphql": "^0.4.1",
|
48
48
|
"get-yarn-workspaces": "^1.0.2",
|
49
|
-
"graphql": "^
|
49
|
+
"graphql": "^15.7.2",
|
50
50
|
"jest": "^26.6.3",
|
51
51
|
"mdbid": "^1.0.0",
|
52
52
|
"prettier": "^2.3.2",
|
53
53
|
"rimraf": "^3.0.2",
|
54
54
|
"sinon": "^9.0.2",
|
55
55
|
"ttypescript": "^1.5.12",
|
56
|
-
"typescript": "
|
56
|
+
"typescript": "4.5.5"
|
57
57
|
},
|
58
58
|
"publishConfig": {
|
59
59
|
"access": "public",
|
@@ -63,5 +63,5 @@
|
|
63
63
|
"build": "yarn webiny run build",
|
64
64
|
"watch": "yarn webiny run watch"
|
65
65
|
},
|
66
|
-
"gitHead": "
|
66
|
+
"gitHead": "2d3e7833575e88fde77d84e5490e746933a5ec28"
|
67
67
|
}
|
package/plugins/context.js
CHANGED
@@ -7,14 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
});
|
8
8
|
exports.default = void 0;
|
9
9
|
|
10
|
+
var _hooks = _interopRequireDefault(require("./hooks"));
|
11
|
+
|
12
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
13
|
+
|
10
14
|
var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
|
11
15
|
|
12
16
|
var _types = require("../types");
|
13
17
|
|
14
18
|
var _createApw = require("../createApw");
|
15
19
|
|
16
|
-
var _hooks = _interopRequireDefault(require("./hooks"));
|
17
|
-
|
18
20
|
var _storageOperations = require("../storageOperations");
|
19
21
|
|
20
22
|
var _createManageCMSPlugin = require("./createManageCMSPlugin");
|
@@ -37,7 +39,11 @@ var _default = () => [new _ContextPlugin.ContextPlugin(async context => {
|
|
37
39
|
context.plugins.register([(0, _createManageCMSPlugin.createManageCMSPlugin)(), ...contentHeadlessCmsContextPlugins]);
|
38
40
|
|
39
41
|
const getLocale = () => {
|
40
|
-
|
42
|
+
if (!i18nContent.locale) {
|
43
|
+
throw new _error.default("Missing context.i18nContent.locale in api-apw/plugins/context.ts", "LOCALE_ERROR");
|
44
|
+
} // TODO: Check which locale do we need here?
|
45
|
+
|
46
|
+
|
41
47
|
return i18nContent.locale;
|
42
48
|
};
|
43
49
|
|
@@ -45,7 +51,9 @@ var _default = () => [new _ContextPlugin.ContextPlugin(async context => {
|
|
45
51
|
return tenancy.getCurrentTenant();
|
46
52
|
};
|
47
53
|
|
48
|
-
const getPermission = name =>
|
54
|
+
const getPermission = async name => {
|
55
|
+
return security.getPermission(name);
|
56
|
+
};
|
49
57
|
|
50
58
|
const getIdentity = () => security.getIdentity();
|
51
59
|
|
@@ -76,13 +84,28 @@ var _default = () => [new _ContextPlugin.ContextPlugin(async context => {
|
|
76
84
|
return page.settings.apw.workflowId;
|
77
85
|
});
|
78
86
|
context.apw.addWorkflowGetter(_types.ApwContentTypes.CMS_ENTRY, async (id, settings) => {
|
87
|
+
if (!settings.modelId) {
|
88
|
+
return null;
|
89
|
+
}
|
90
|
+
|
79
91
|
const model = await context.cms.getModel(settings.modelId);
|
92
|
+
|
93
|
+
if (!model) {
|
94
|
+
return null;
|
95
|
+
}
|
96
|
+
|
80
97
|
const entry = await context.cms.getEntry(model, {
|
81
98
|
where: {
|
82
|
-
id: id
|
99
|
+
id: id,
|
100
|
+
tenant: model.tenant
|
83
101
|
}
|
84
102
|
});
|
85
|
-
|
103
|
+
|
104
|
+
if (!entry) {
|
105
|
+
return null;
|
106
|
+
}
|
107
|
+
|
108
|
+
return entry.values["workflow"] || null;
|
86
109
|
});
|
87
110
|
}), (0, _hooks.default)()];
|
88
111
|
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["context.ts"],"names":["ContextPlugin","context","tenancy","security","i18nContent","contentHeadlessCmsContextPlugins","storageOperations","cms","plugins","register","getLocale","locale","WebinyError","getTenant","getCurrentTenant","getPermission","name","getIdentity","apw","getCmsContext","addWorkflowGetter","ApwContentTypes","PAGE","id","page","pageBuilder","getPage","settings","workflowId","CMS_ENTRY","modelId","model","getModel","entry","getEntry","where","tenant","values"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;eAIe,MAAM,CACjB,IAAIA,4BAAJ,CAA8B,MAAMC,OAAN,IAAiB;AAC3C,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA;AAArB,MAAqCH,OAA3C;AAEA,QAAMI,gCAAgC,GAAG,qDAAgC;AACrEC,IAAAA,iBAAiB,EAAEL,OAAO,CAACM,GAAR,CAAYD;AADsC,GAAhC,CAAzC;AAGA;AACR;AACA;;AACQL,EAAAA,OAAO,CAACO,OAAR,CAAgBC,QAAhB,CAAyB,CAAC,mDAAD,EAA0B,GAAGJ,gCAA7B,CAAzB;;AAEA,QAAMK,SAAS,GAAG,MAAM;AACpB,QAAI,CAACN,WAAW,CAACO,MAAjB,EAAyB;AACrB,YAAM,IAAIC,cAAJ,CACF,kEADE,EAEF,cAFE,CAAN;AAIH,KANmB,CAOpB;;;AACA,WAAOR,WAAW,CAACO,MAAnB;AACH,GATD;;AAWA,QAAME,SAAS,GAAG,MAAc;AAC5B,WAAOX,OAAO,CAACY,gBAAR,EAAP;AACH,GAFD;;AAIA,QAAMC,aAAa,GAAG,MAAOC,IAAP,IAA4D;AAC9E,WAAOb,QAAQ,CAACY,aAAT,CAAuBC,IAAvB,CAAP;AACH,GAFD;;AAGA,QAAMC,WAAW,GAAG,MAAMd,QAAQ,CAACc,WAAT,EAA1B;;AAEAhB,EAAAA,OAAO,CAACiB,GAAR,GAAc,0BAAU;AACpBR,IAAAA,SADoB;AAEpBO,IAAAA,WAFoB;AAGpBJ,IAAAA,SAHoB;AAIpBE,IAAAA,aAJoB;AAKpBT,IAAAA,iBAAiB,EAAE,gDAAwB;AACvC;AAChB;AACA;AACgBC,MAAAA,GAAG,EAAEN,OAAO,CAACM,GAJ0B;;AAKvC;AAChB;AACA;AACgBY,MAAAA,aAAa,EAAE,MAAMlB;AARkB,KAAxB;AALC,GAAV,CAAd;AAgBA;AACR;AACA;AACA;;AACQA,EAAAA,OAAO,CAACiB,GAAR,CAAYE,iBAAZ,CAA8BC,uBAAgBC,IAA9C,EAAoD,MAAMC,EAAN,IAAY;AAC5D,UAAMC,IAAI,GAAG,MAAMvB,OAAO,CAACwB,WAAR,CAAoBC,OAApB,CAA8CH,EAA9C,CAAnB;AACA,WAAOC,IAAI,CAACG,QAAL,CAAcT,GAAd,CAAkBU,UAAzB;AACH,GAHD;AAKA3B,EAAAA,OAAO,CAACiB,GAAR,CAAYE,iBAAZ,CAA8BC,uBAAgBQ,SAA9C,EAAyD,OAAON,EAAP,EAAWI,QAAX,KAAwB;AAC7E,QAAI,CAACA,QAAQ,CAACG,OAAd,EAAuB;AACnB,aAAO,IAAP;AACH;;AACD,UAAMC,KAAK,GAAG,MAAM9B,OAAO,CAACM,GAAR,CAAYyB,QAAZ,CAAqBL,QAAQ,CAACG,OAA9B,CAApB;;AACA,QAAI,CAACC,KAAL,EAAY;AACR,aAAO,IAAP;AACH;;AACD,UAAME,KAAK,GAAG,MAAMhC,OAAO,CAACM,GAAR,CAAY2B,QAAZ,CAAqBH,KAArB,EAA4B;AAC5CI,MAAAA,KAAK,EAAE;AACHZ,QAAAA,EAAE,EAAEA,EADD;AAEHa,QAAAA,MAAM,EAAEL,KAAK,CAACK;AAFX;AADqC,KAA5B,CAApB;;AAMA,QAAI,CAACH,KAAL,EAAY;AACR,aAAO,IAAP;AACH;;AACD,WAAOA,KAAK,CAACI,MAAN,CAAa,UAAb,KAA4B,IAAnC;AACH,GAlBD;AAmBH,CA3ED,CADiB,EA6EjB,qBA7EiB,C","sourcesContent":["import apwHooks from \"./hooks\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/handler/plugins/ContextPlugin\";\nimport { ApwContentTypes, ApwContext, PageWithWorkflow } from \"~/types\";\nimport { createApw } from \"~/createApw\";\nimport { createStorageOperations } from \"~/storageOperations\";\nimport { createManageCMSPlugin } from \"~/plugins/createManageCMSPlugin\";\nimport { createContentHeadlessCmsContext } from \"@webiny/api-headless-cms\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\n\nexport default () => [\n new ContextPlugin<ApwContext>(async context => {\n const { tenancy, security, i18nContent } = context;\n\n const contentHeadlessCmsContextPlugins = createContentHeadlessCmsContext({\n storageOperations: context.cms.storageOperations\n });\n /**\n * Register cms plugins required by `api-apw` package.\n */\n context.plugins.register([createManageCMSPlugin(), ...contentHeadlessCmsContextPlugins]);\n\n const getLocale = () => {\n if (!i18nContent.locale) {\n throw new WebinyError(\n \"Missing context.i18nContent.locale in api-apw/plugins/context.ts\",\n \"LOCALE_ERROR\"\n );\n }\n // TODO: Check which locale do we need here?\n return i18nContent.locale;\n };\n\n const getTenant = (): Tenant => {\n return tenancy.getCurrentTenant();\n };\n\n const getPermission = async (name: string): Promise<SecurityPermission | null> => {\n return security.getPermission(name);\n };\n const getIdentity = () => security.getIdentity();\n\n context.apw = createApw({\n getLocale,\n getIdentity,\n getTenant,\n getPermission,\n storageOperations: createStorageOperations({\n /**\n * TODO: We need to figure out a way to pass \"cms\" from outside (e.g. api/code/graphql)\n */\n cms: context.cms,\n /**\n * TODO: This is required for \"entryFieldFromStorageTransform\" which access plugins from context.\n */\n getCmsContext: () => context\n })\n });\n /**\n * TODO: @ashutosh\n * Move these call into a separate package let say \"ap-apw-page-builder\"\n */\n context.apw.addWorkflowGetter(ApwContentTypes.PAGE, async id => {\n const page = await context.pageBuilder.getPage<PageWithWorkflow>(id);\n return page.settings.apw.workflowId;\n });\n\n context.apw.addWorkflowGetter(ApwContentTypes.CMS_ENTRY, async (id, settings) => {\n if (!settings.modelId) {\n return null;\n }\n const model = await context.cms.getModel(settings.modelId);\n if (!model) {\n return null;\n }\n const entry = await context.cms.getEntry(model, {\n where: {\n id: id,\n tenant: model.tenant\n }\n });\n if (!entry) {\n return null;\n }\n return entry.values[\"workflow\"] || null;\n });\n }),\n apwHooks()\n];\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["createManageCMSPlugin.ts"],"names":["createManageCMSPlugin","CmsParametersPlugin","context","locale","i18n","getCurrentLocale","WebinyError","type","code"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,MAAMA,qBAAqB,GAAG,MAA2B;AAC5D,SAAO,IAAIC,mCAAJ,CAAwB,MAAMC,OAAN,IAAiB;AAC5C,UAAMC,MAAM,GAAGD,OAAO,CAACE,IAAR,CAAaC,gBAAb,CAA8B,SAA9B,CAAf;;AAEA,QAAI,CAACF,MAAL,EAAa;AACT,YAAM,IAAIG,cAAJ,CAAiB,kCAAjB,EAAoD,kBAApD,EAAwE;AAC1EH,QAAAA;AAD0E,OAAxE,CAAN;AAGH;;AAED,WAAO;AACHI,MAAAA,IAAI,EAAE,QADH;AAEHJ,MAAAA,MAAM,EAAEA,MAAM,CAACK;AAFZ,KAAP;AAIH,GAbM,CAAP;AAcH,CAfM","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsParametersPlugin } from \"@webiny/api-headless-cms\";\n\nexport const createManageCMSPlugin = (): CmsParametersPlugin => {\n return new CmsParametersPlugin(async context => {\n const locale = context.i18n.getCurrentLocale(\"content\");\n\n if (!locale) {\n throw new WebinyError(`Could not able to load \"locale\".`, \"MALFORMED_LOCALE\", {\n locale\n });\n }\n\n return {\n type: \"manage\",\n locale: locale.code\n };\n });\n};\n"]}
|
@@ -128,6 +128,9 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
|
|
128
128
|
},
|
129
129
|
listChangeRequests: async (_, args, context) => {
|
130
130
|
try {
|
131
|
+
/**
|
132
|
+
* We know that args is CmsEntryListParams.
|
133
|
+
*/
|
131
134
|
const [entries, meta] = await context.apw.changeRequest.list(args);
|
132
135
|
return new _handlerGraphql.ListResponse(entries, meta);
|
133
136
|
} catch (e) {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["changeRequest.gql.ts"],"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getChangeRequest","_","args","context","apw","changeRequest","get","id","listChangeRequests","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createChangeRequest","create","data","updateChangeRequest","update","deleteChangeRequest","delete"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;AACvDC,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAzG2D;AA0GvDC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,gBAAgB,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC/C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BC,GAA1B,CAA8BJ,IAAI,CAACK,EAAnC,CAAd,CAAP;AACH,OAHK;AAINC,MAAAA,kBAAkB,EAAE,OAAOP,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AACjD,YAAI;AACA;AACpB;AACA;AACoB,gBAAM,CAACM,OAAD,EAAUC,IAAV,IAAkB,MAAMP,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BM,IAA1B,CAC1BT,IAD0B,CAA9B;AAGA,iBAAO,IAAIU,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;AACH,SARD,CAQE,OAAOG,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAhBK,KADH;AAmBPE,IAAAA,WAAW,EAAE;AACTC,MAAAA,mBAAmB,EAAE,OAAOf,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BY,MAA1B,CAAiCf,IAAI,CAACgB,IAAtC,CAAd,CAAP;AACH,OAHQ;AAITC,MAAAA,mBAAmB,EAAE,OAAOlB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0Be,MAA1B,CAAiClB,IAAI,CAACK,EAAtC,EAA0CL,IAAI,CAACgB,IAA/C,CAAd,CAAP;AACH,OANQ;AAOTG,MAAAA,mBAAmB,EAAE,OAAOpB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BiB,MAA1B,CAAiCpB,IAAI,CAACK,EAAtC,CAAd,CAAP;AACH;AATQ;AAnBN;AA1G4C,CAApC,CAAvB;eA2IeZ,c","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { ApwContext } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwChangeRequestListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ChangeRequest specific fields\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n type ApwListChangeRequestsResponse {\n data: [ApwChangeRequestListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwChangeRequest {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ChangeRequest specific fields\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n type ApwChangeRequestResponse {\n data: ApwChangeRequest\n error: ApwError\n }\n\n type ApwDeleteChangeRequestResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListChangeRequestSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwCreateChangeRequestInput {\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n input ApwUpdateChangeRequestInput {\n title: String\n body: JSON\n resolved: Boolean\n media: JSON\n }\n\n input ApwListChangeRequestWhereInput {\n id: ID\n step: String\n }\n\n input ApwListChangeRequestSearchInput {\n query: String\n }\n\n extend type ApwQuery {\n getChangeRequest(id: ID!): ApwChangeRequestResponse\n\n listChangeRequests(\n where: ApwListChangeRequestWhereInput\n limit: Int\n after: String\n sort: [ApwListChangeRequestSort!]\n search: ApwListChangeRequestSearchInput\n ): ApwListChangeRequestsResponse\n }\n\n extend type ApwMutation {\n createChangeRequest(data: ApwCreateChangeRequestInput!): ApwChangeRequestResponse\n\n updateChangeRequest(\n id: ID!\n data: ApwUpdateChangeRequestInput!\n ): ApwChangeRequestResponse\n\n deleteChangeRequest(id: ID!): ApwDeleteChangeRequestResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.get(args.id));\n },\n listChangeRequests: async (_, args: any, context) => {\n try {\n /**\n * We know that args is CmsEntryListParams.\n */\n const [entries, meta] = await context.apw.changeRequest.list(\n args as unknown as CmsEntryListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.create(args.data));\n },\n updateChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.update(args.id, args.data));\n },\n deleteChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.delete(args.id));\n }\n }\n }\n});\n\nexport default workflowSchema;\n"]}
|
@@ -142,6 +142,9 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
|
|
142
142
|
},
|
143
143
|
listComments: async (_, args, context) => {
|
144
144
|
try {
|
145
|
+
/**
|
146
|
+
* We know that args is CmsEntryListParams.
|
147
|
+
*/
|
145
148
|
const [entries, meta] = await context.apw.comment.list(args);
|
146
149
|
return new _handlerGraphql.ListResponse(entries, meta);
|
147
150
|
} catch (e) {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["comment.gql.ts"],"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getComment","_","args","context","apw","comment","get","id","listComments","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createComment","create","data","updateComment","update","deleteComment","delete"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;AACvDC,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAvH2D;AAwHvDC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,UAAU,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AACzC,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBC,GAApB,CAAwBJ,IAAI,CAACK,EAA7B,CAAd,CAAP;AACH,OAHK;AAINC,MAAAA,YAAY,EAAE,OAAOP,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC3C,YAAI;AACA;AACpB;AACA;AACoB,gBAAM,CAACM,OAAD,EAAUC,IAAV,IAAkB,MAAMP,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBM,IAApB,CAC1BT,IAD0B,CAA9B;AAGA,iBAAO,IAAIU,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;AACH,SARD,CAQE,OAAOG,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAhBK,KADH;AAmBPE,IAAAA,WAAW,EAAE;AACTC,MAAAA,aAAa,EAAE,OAAOf,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBY,MAApB,CAA2Bf,IAAI,CAACgB,IAAhC,CAAd,CAAP;AACH,OAHQ;AAITC,MAAAA,aAAa,EAAE,OAAOlB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBe,MAApB,CAA2BlB,IAAI,CAACK,EAAhC,EAAoCL,IAAI,CAACgB,IAAzC,CAAd,CAAP;AACH,OANQ;AAOTG,MAAAA,aAAa,EAAE,OAAOpB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBiB,MAApB,CAA2BpB,IAAI,CAACK,EAAhC,CAAd,CAAP;AACH;AATQ;AAnBN;AAxH4C,CAApC,CAAvB;eAyJeZ,c","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { ApwContext } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwCommentListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Comment specific fields\n body: JSON\n changeRequest: ApwRefField\n }\n\n type ApwListCommentsResponse {\n data: [ApwCommentListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwComment {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Comment specific fields\n body: JSON\n changeRequest: ApwRefField\n }\n\n type ApwCommentResponse {\n data: ApwComment\n error: ApwError\n }\n\n type ApwDeleteCommentResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListCommentsSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwCreateCommentInput {\n body: JSON!\n changeRequest: ApwRefFieldInput!\n }\n\n input ApwUpdateCommentInput {\n body: JSON!\n }\n\n input ApwListCommentsWhereInput {\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n createdBy: String\n createdBy_not: String\n createdBy_in: [String!]\n createdBy_not_in: [String!]\n ownedBy: String\n ownedBy_not: String\n ownedBy_in: [String!]\n ownedBy_not_in: [String!]\n changeRequest: ApwRefFieldWhereInput\n }\n\n input ApwListCommentsSearchInput {\n query: String\n }\n\n extend type ApwQuery {\n getComment(id: ID!): ApwCommentResponse\n\n listComments(\n where: ApwListCommentsWhereInput\n limit: Int\n after: String\n sort: [ApwListCommentsSort!]\n search: ApwListCommentsSearchInput\n ): ApwListCommentsResponse\n }\n\n extend type ApwMutation {\n createComment(data: ApwCreateCommentInput!): ApwCommentResponse\n\n updateComment(id: ID!, data: ApwUpdateCommentInput!): ApwCommentResponse\n\n deleteComment(id: ID!): ApwDeleteCommentResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.get(args.id));\n },\n listComments: async (_, args: any, context) => {\n try {\n /**\n * We know that args is CmsEntryListParams.\n */\n const [entries, meta] = await context.apw.comment.list(\n args as unknown as CmsEntryListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.create(args.data));\n },\n updateComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.update(args.id, args.data));\n },\n deleteComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.delete(args.id));\n }\n }\n }\n});\n\nexport default workflowSchema;\n"]}
|
@@ -197,6 +197,9 @@ const contentReviewSchema = new _plugins.GraphQLSchemaPlugin({
|
|
197
197
|
},
|
198
198
|
listContentReviews: async (_, args, context) => {
|
199
199
|
try {
|
200
|
+
/**
|
201
|
+
* We know that args is CmsEntryListParams.
|
202
|
+
*/
|
200
203
|
const [entries, meta] = await context.apw.contentReview.list(args);
|
201
204
|
return new _handlerGraphql.ListResponse(entries, meta);
|
202
205
|
} catch (e) {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["contentReview.gql.ts"],"names":["contentReviewSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getContentReview","_","args","context","apw","contentReview","get","id","listContentReviews","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createContentReview","create","data","deleteContentReview","delete","provideSignOff","step","retractSignOff"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AAEA,MAAMA,mBAAmB,GAAG,IAAIC,4BAAJ,CAAoC;AAC5DC,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA9KgE;AA+K5DC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,gBAAgB,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC/C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BC,GAA1B,CAA8BJ,IAAI,CAACK,EAAnC,CAAd,CAAP;AACH,OAHK;AAINC,MAAAA,kBAAkB,EAAE,OAAOP,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AACjD,YAAI;AACA;AACpB;AACA;AACoB,gBAAM,CAACM,OAAD,EAAUC,IAAV,IAAkB,MAAMP,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BM,IAA1B,CAC1BT,IAD0B,CAA9B;AAGA,iBAAO,IAAIU,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;AACH,SARD,CAQE,OAAOG,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAhBK,KADH;AAmBPE,IAAAA,WAAW,EAAE;AACTC,MAAAA,mBAAmB,EAAE,OAAOf,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BY,MAA1B,CAAiCf,IAAI,CAACgB,IAAtC,CAAd,CAAP;AACH,OAHQ;AAITC,MAAAA,mBAAmB,EAAE,OAAOlB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0Be,MAA1B,CAAiClB,IAAI,CAACK,EAAtC,CAAd,CAAP;AACH,OANQ;AAOTc,MAAAA,cAAc,EAAE,OAAOpB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC7C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BgB,cAA1B,CAAyCnB,IAAI,CAACK,EAA9C,EAAkDL,IAAI,CAACoB,IAAvD,CAAd,CAAP;AACH,OATQ;AAUTC,MAAAA,cAAc,EAAE,OAAOtB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC7C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BkB,cAA1B,CAAyCrB,IAAI,CAACK,EAA9C,EAAkDL,IAAI,CAACoB,IAAvD,CAAd,CAAP;AACH;AAZQ;AAnBN;AA/KiD,CAApC,CAA5B;eAmNe3B,mB","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { ApwContext } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst contentReviewSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwContentReviewListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ContentReview specific fields\n steps: [ApwContentReviewStep]\n content: ApwContentReviewContent\n status: ApwContentReviewStatus\n }\n\n type ApwListContentReviewsResponse {\n data: [ApwContentReviewListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwContentReviewReviewer {\n id: ID\n displayName: String\n }\n\n type ApwContentReviewComment {\n body: JSON\n author: String\n }\n\n type ApwContentReviewChangeRequested {\n title: String\n body: JSON\n media: JSON\n step: String\n resolved: Boolean\n comments: [ApwContentReviewComment]\n }\n\n enum ApwContentReviewStepStatus {\n done\n active\n inactive\n }\n\n enum ApwContentReviewStatus {\n underReview\n readyToBePublished\n published\n }\n\n type ApwContentReviewStep {\n status: ApwContentReviewStepStatus\n slug: String\n pendingChangeRequests: Int\n signOffProvidedOn: DateTime\n signOffProvidedBy: ApwCreatedBy\n }\n\n type ApwContentReview {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ContentReview specific fields\n steps: [ApwContentReviewStep]\n content: ApwContentReviewContent\n workflow: ID\n status: ApwContentReviewStatus\n }\n\n type ApwContentReviewResponse {\n data: ApwContentReview\n error: ApwError\n }\n\n type ApwDeleteContentReviewResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListContentReviewsSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwContentReviewReviewerInput {\n id: ID\n }\n\n input ApwContentReviewScopeInput {\n type: String\n options: JSON\n }\n\n input ApwContentReviewCommentInput {\n body: JSON\n author: String\n }\n\n input ApwContentReviewChangeRequestedInput {\n title: String\n body: JSON\n media: JSON\n step: String\n resolved: Boolean\n comments: [ApwContentReviewCommentInput]\n }\n\n enum ApwContentReviewContentTypes {\n page\n cms_entry\n }\n\n type ApwContentReviewContent {\n id: ID\n type: ApwContentReviewContentTypes\n settings: String\n }\n\n input ApwContentReviewContentInput {\n id: ID!\n type: ApwContentReviewContentTypes!\n settings: String\n }\n\n input ApwCreateContentReviewInput {\n content: ApwContentReviewContentInput!\n }\n\n input ApwListContentReviewsWhereInput {\n id: ID\n }\n\n input ApwListContentReviewsSearchInput {\n # By specifying \"query\", the search will be performed against workflow' \"title\" field.\n query: String\n }\n\n type ApwProvideSignOffResponse {\n data: Boolean\n error: ApwError\n }\n\n extend type ApwQuery {\n getContentReview(id: ID!): ApwContentReviewResponse\n\n listContentReviews(\n where: ApwListContentReviewsWhereInput\n limit: Int\n after: String\n sort: [ApwListContentReviewsSort!]\n search: ApwListContentReviewsSearchInput\n ): ApwListContentReviewsResponse\n }\n\n extend type ApwMutation {\n createContentReview(data: ApwCreateContentReviewInput!): ApwContentReviewResponse\n\n deleteContentReview(id: ID!): ApwDeleteContentReviewResponse\n\n provideSignOff(id: ID!, step: String!): ApwProvideSignOffResponse\n\n retractSignOff(id: ID!, step: String!): ApwProvideSignOffResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getContentReview: async (_, args: any, context) => {\n return resolve(() => context.apw.contentReview.get(args.id));\n },\n listContentReviews: async (_, args: any, context) => {\n try {\n /**\n * We know that args is CmsEntryListParams.\n */\n const [entries, meta] = await context.apw.contentReview.list(\n args as unknown as CmsEntryListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createContentReview: async (_, args: any, context) => {\n return resolve(() => context.apw.contentReview.create(args.data));\n },\n deleteContentReview: async (_, args: any, context) => {\n return resolve(() => context.apw.contentReview.delete(args.id));\n },\n provideSignOff: async (_, args: any, context) => {\n return resolve(() => context.apw.contentReview.provideSignOff(args.id, args.step));\n },\n retractSignOff: async (_, args: any, context) => {\n return resolve(() => context.apw.contentReview.retractSignOff(args.id, args.step));\n }\n }\n }\n});\n\nexport default contentReviewSchema;\n"]}
|
@@ -98,6 +98,9 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
|
|
98
98
|
},
|
99
99
|
listReviewers: async (_, args, context) => {
|
100
100
|
try {
|
101
|
+
/**
|
102
|
+
* We know that args is CmsEntryListParams.
|
103
|
+
*/
|
101
104
|
const [entries, meta] = await context.apw.reviewer.list(args);
|
102
105
|
return new _handlerGraphql.ListResponse(entries, meta);
|
103
106
|
} catch (e) {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["reviewer.gql.ts"],"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getReviewer","_","args","context","apw","reviewer","get","id","listReviewers","entries","meta","list","ListResponse","e","ErrorResponse"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;AACvDC,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA3E2D;AA4EvDC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,WAAW,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC1C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,QAAZ,CAAqBC,GAArB,CAAyBJ,IAAI,CAACK,EAA9B,CAAd,CAAP;AACH,OAHK;AAINC,MAAAA,aAAa,EAAE,OAAOP,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,YAAI;AACA;AACpB;AACA;AACoB,gBAAM,CAACM,OAAD,EAAUC,IAAV,IAAkB,MAAMP,OAAO,CAACC,GAAR,CAAYC,QAAZ,CAAqBM,IAArB,CAC1BT,IAD0B,CAA9B;AAGA,iBAAO,IAAIU,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;AACH,SARD,CAQE,OAAOG,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAhBK;AADH;AA5E4C,CAApC,CAAvB;eAkGelB,c","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { ApwContext } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwReviewerListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Reviewer specific fields\n identityId: ID\n displayName: String\n type: String\n }\n\n type ApwListReviewersResponse {\n data: [ApwReviewerListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwReviewer {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Reviewer specific fields\n identityId: ID\n displayName: String\n type: String\n }\n\n type ApwReviewerResponse {\n data: ApwReviewer\n error: ApwError\n }\n\n type ApwDeleteReviewerResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListReviewersSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwListReviewersWhereInput {\n identityId: ID\n }\n\n input ApwListReviewersSearchInput {\n # By specifying \"query\", the search will be performed against workflow' \"title\" field.\n query: String\n }\n\n extend type ApwQuery {\n getReviewer(id: ID!): ApwReviewerResponse\n\n listReviewers(\n where: ApwListReviewersWhereInput\n limit: Int\n after: String\n sort: [ApwListReviewersSort!]\n search: ApwListReviewersSearchInput\n ): ApwListReviewersResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getReviewer: async (_, args: any, context) => {\n return resolve(() => context.apw.reviewer.get(args.id));\n },\n listReviewers: async (_, args: any, context) => {\n try {\n /**\n * We know that args is CmsEntryListParams.\n */\n const [entries, meta] = await context.apw.reviewer.list(\n args as unknown as CmsEntryListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n }\n});\n\nexport default workflowSchema;\n"]}
|
@@ -175,6 +175,9 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
|
|
175
175
|
},
|
176
176
|
listWorkflows: async (_, args, context) => {
|
177
177
|
try {
|
178
|
+
/**
|
179
|
+
* We know that args is ListWorkflowsParams.
|
180
|
+
*/
|
178
181
|
const [entries, meta] = await context.apw.workflow.list(args);
|
179
182
|
return new _handlerGraphql.ListResponse(entries, meta);
|
180
183
|
} catch (e) {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["workflow.gql.ts"],"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getWorkflow","_","args","context","apw","workflow","get","id","listWorkflows","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createWorkflow","create","data","updateWorkflow","update","deleteWorkflow","delete"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;AACvDC,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAxJ2D;AAyJvDC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,WAAW,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC1C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,QAAZ,CAAqBC,GAArB,CAAyBJ,IAAI,CAACK,EAA9B,CAAd,CAAP;AACH,OAHK;AAINC,MAAAA,aAAa,EAAE,OAAOP,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,YAAI;AACA;AACpB;AACA;AACoB,gBAAM,CAACM,OAAD,EAAUC,IAAV,IAAkB,MAAMP,OAAO,CAACC,GAAR,CAAYC,QAAZ,CAAqBM,IAArB,CAC1BT,IAD0B,CAA9B;AAGA,iBAAO,IAAIU,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;AACH,SARD,CAQE,OAAOG,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAhBK,KADH;AAmBPE,IAAAA,WAAW,EAAE;AACTC,MAAAA,cAAc,EAAE,OAAOf,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC7C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,QAAZ,CAAqBY,MAArB,CAA4Bf,IAAI,CAACgB,IAAjC,CAAd,CAAP;AACH,OAHQ;AAITC,MAAAA,cAAc,EAAE,OAAOlB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC7C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,QAAZ,CAAqBe,MAArB,CAA4BlB,IAAI,CAACK,EAAjC,EAAqCL,IAAI,CAACgB,IAA1C,CAAd,CAAP;AACH,OANQ;AAOTG,MAAAA,cAAc,EAAE,OAAOpB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC7C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,QAAZ,CAAqBiB,MAArB,CAA4BpB,IAAI,CAACK,EAAjC,CAAd,CAAP;AACH;AATQ;AAnBN;AAzJ4C,CAApC,CAAvB;eA0LeZ,c","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { ApwContext, ListWorkflowsParams } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwWorkflowListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Workflow specific fields\n app: ApwWorkflowApplication\n title: String\n steps: [ApwWorkflowStep]\n scope: ApwWorkflowScope\n }\n\n type ApwListWorkflowsResponse {\n data: [ApwWorkflowListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwWorkflowReviewer {\n id: ID\n displayName: String\n }\n\n type ApwWorkflowStep {\n title: String\n slug: String\n type: ApwWorkflowStepTypes\n reviewers: [ApwRefField!]\n }\n\n type ApwWorkflowScope {\n type: String\n data: JSON\n }\n\n type ApwWorkflow {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Workflow specific fields\n app: ApwWorkflowApplication\n title: String\n steps: [ApwWorkflowStep]\n scope: ApwWorkflowScope\n }\n\n type ApwWorkflowResponse {\n data: ApwWorkflow\n error: ApwError\n }\n\n type ApwDeleteWorkflowResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwWorkflowApplication {\n pageBuilder\n cms\n formBuilder\n }\n\n enum ApwWorkflowStepTypes {\n mandatoryBlocking\n mandatoryNonBlocking\n notMandatory\n }\n\n enum ApwListWorkflowsSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwWorkflowReviewerInput {\n id: ID\n }\n\n input ApwCreateWorkflowStepInput {\n title: String!\n slug: String!\n type: ApwWorkflowStepTypes!\n reviewers: [ApwRefFieldInput!]!\n }\n\n input ApwUpdateWorkflowStepInput {\n title: String!\n slug: String!\n type: ApwWorkflowStepTypes!\n reviewers: [ApwRefFieldInput!]\n }\n\n input ApwWorkflowScopeInput {\n type: String!\n data: JSON\n }\n\n input ApwCreateWorkflowInput {\n title: String!\n steps: [ApwCreateWorkflowStepInput]!\n scope: ApwWorkflowScopeInput!\n app: ApwWorkflowApplication!\n }\n\n input ApwUpdateWorkflowInput {\n title: String\n steps: [ApwUpdateWorkflowStepInput]\n scope: ApwWorkflowScopeInput\n }\n\n input ApwListWorkflowsWhereInput {\n app: ApwWorkflowApplication\n }\n\n input ApwListWorkflowsSearchInput {\n # By specifying \"query\", the search will be performed against workflow' \"title\" field.\n query: String\n }\n\n type ApwQuery {\n getWorkflow(id: ID!): ApwWorkflowResponse\n\n listWorkflows(\n where: ApwListWorkflowsWhereInput\n limit: Int\n after: String\n sort: [ApwListWorkflowsSort!]\n search: ApwListWorkflowsSearchInput\n ): ApwListWorkflowsResponse\n }\n\n type ApwMutation {\n createWorkflow(data: ApwCreateWorkflowInput!): ApwWorkflowResponse\n\n # Update workflow by given ID.\n updateWorkflow(id: ID!, data: ApwUpdateWorkflowInput!): ApwWorkflowResponse\n\n # Delete workflow\n deleteWorkflow(id: ID!): ApwDeleteWorkflowResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getWorkflow: async (_, args: any, context) => {\n return resolve(() => context.apw.workflow.get(args.id));\n },\n listWorkflows: async (_, args: any, context) => {\n try {\n /**\n * We know that args is ListWorkflowsParams.\n */\n const [entries, meta] = await context.apw.workflow.list(\n args as unknown as ListWorkflowsParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createWorkflow: async (_, args: any, context) => {\n return resolve(() => context.apw.workflow.create(args.data));\n },\n updateWorkflow: async (_, args: any, context) => {\n return resolve(() => context.apw.workflow.update(args.id, args.data));\n },\n deleteWorkflow: async (_, args: any, context) => {\n return resolve(() => context.apw.workflow.delete(args.id));\n }\n }\n }\n});\n\nexport default workflowSchema;\n"]}
|
package/plugins/graphql.js
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["graphql.ts"],"names":["emptyResolver","baseSchema","GraphQLSchemaPlugin","typeDefs","resolvers","Query","apw","Mutation","workflowSchema","contentReviewSchema","reviewerSchema","commentSchema","changeRequestedSchema"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAMA,aAAa,GAAG,OAAO,EAAP,CAAtB;;AAEA,MAAMC,UAAU,GAAG,IAAIC,4BAAJ,CAAwB;AACvCC,EAAAA,QAAQ;AAAE;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,KA9C2C;AA+CvCC,EAAAA,SAAS,EAAE;AACPC,IAAAA,KAAK,EAAE;AACHC,MAAAA,GAAG,EAAEN;AADF,KADA;AAIPO,IAAAA,QAAQ,EAAE;AACND,MAAAA,GAAG,EAAEN;AADC;AAJH;AA/C4B,CAAxB,CAAnB;;eAyDe,MAAM,CACjBC,UADiB,EAEjBO,iBAFiB,EAGjBC,sBAHiB,EAIjBC,iBAJiB,EAKjBC,gBALiB,EAMjBC,sBANiB,C","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport workflowSchema from \"./graphql/workflow.gql\";\nimport contentReviewSchema from \"./graphql/contentReview.gql\";\nimport reviewerSchema from \"./graphql/reviewer.gql\";\nimport commentSchema from \"./graphql/comment.gql\";\nimport changeRequestedSchema from \"./graphql/changeRequest.gql\";\n\nconst emptyResolver = () => ({});\n\nconst baseSchema = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n input ApwRefFieldInput {\n id: ID!\n modelId: String\n }\n\n input ApwRefFieldWhereInput {\n id: String\n id_not: String\n id_in: [String!]\n id_not_in: [String]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n }\n\n type ApwRefField {\n modelId: String!\n entryId: ID!\n id: ID!\n }\n\n type ApwMeta {\n hasMoreItems: Boolean\n totalCount: Int\n cursor: String\n }\n type ApwCreatedBy {\n id: ID\n displayName: String\n type: String\n }\n type ApwError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n extend type Query {\n apw: ApwQuery\n }\n extend type Mutation {\n apw: ApwMutation\n }\n `,\n resolvers: {\n Query: {\n apw: emptyResolver\n },\n Mutation: {\n apw: emptyResolver\n }\n }\n});\n\nexport default () => [\n baseSchema,\n workflowSchema,\n contentReviewSchema,\n reviewerSchema,\n commentSchema,\n changeRequestedSchema\n];\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["createReviewerFromIdentity.ts"],"names":["createReviewerFromIdentity","security","apw","onAfterLogin","subscribe","identity","reviewer","list","where","identityId","id","limit","e","message","create","displayName","type"],"mappings":";;;;;;;AAEO,MAAMA,0BAA0B,GAAG,CAAC;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAD,KAAoD;AAC1F;AACJ;AACA;AACID,EAAAA,QAAQ,CAACE,YAAT,CAAsBC,SAAtB,CAAgC,OAAO;AAAEC,IAAAA;AAAF,GAAP,KAAwB;AACpD,QAAIC,QAAJ;;AACA,QAAI;AACA,OAAC,CAACA,QAAD,CAAD,IAAe,MAAMJ,GAAG,CAACI,QAAJ,CAAaC,IAAb,CAAkB;AACnCC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,UAAU,EAAEJ,QAAQ,CAACK;AAAvB,SAD4B;AAEnCC,QAAAA,KAAK,EAAE;AAF4B,OAAlB,CAArB;AAIH,KALD,CAKE,OAAOC,CAAP,EAAU;AACR,UAAIA,CAAC,CAACC,OAAF,KAAc,2BAAlB,EAA+C,CAC3C;AACH,OAFD,MAEO;AACH,cAAMD,CAAN;AACH;AACJ;;AAED,QAAI,CAACN,QAAL,EAAe;AACX,YAAMJ,GAAG,CAACI,QAAJ,CAAaQ,MAAb,CAAoB;AACtBL,QAAAA,UAAU,EAAEJ,QAAQ,CAACK,EADC;AAEtBK,QAAAA,WAAW,EAAEV,QAAQ,CAACU,WAFA;AAGtBC,QAAAA,IAAI,EAAEX,QAAQ,CAACW;AAHO,OAApB,CAAN;AAKH;AACJ,GAtBD;AAuBH,CA3BM","sourcesContent":["import { LifeCycleHookCallbackParams } from \"~/types\";\n\nexport const createReviewerFromIdentity = ({ security, apw }: LifeCycleHookCallbackParams) => {\n /**\n * Replicate identity in \"AdvancedPublishingWorkflow\" system after login.\n */\n security.onAfterLogin.subscribe(async ({ identity }) => {\n let reviewer;\n try {\n [[reviewer]] = await apw.reviewer.list({\n where: { identityId: identity.id },\n limit: 1\n });\n } catch (e) {\n if (e.message === \"index_not_found_exception\") {\n // Do nothing\n } else {\n throw e;\n }\n }\n\n if (!reviewer) {\n await apw.reviewer.create({\n identityId: identity.id,\n displayName: identity.displayName,\n type: identity.type\n });\n }\n });\n};\n"]}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { LifeCycleHookCallbackParams } from "../../types";
|
2
|
-
export declare const deleteChangeRequestsWithContentReview: ({ apw }: LifeCycleHookCallbackParams) => void;
|
2
|
+
export declare const deleteChangeRequestsWithContentReview: ({ apw }: Pick<LifeCycleHookCallbackParams, "apw">) => void;
|
@@ -27,15 +27,16 @@ const deleteChangeRequestsWithContentReview = ({
|
|
27
27
|
hasMoreItems: true,
|
28
28
|
cursor: null
|
29
29
|
};
|
30
|
-
let changeRequests = [];
|
31
30
|
/**
|
32
31
|
* Paginate through change requests.
|
33
32
|
*/
|
34
33
|
|
35
34
|
while (meta.hasMoreItems) {
|
35
|
+
let changeRequests = [];
|
36
36
|
/**
|
37
37
|
* Get all change requests.
|
38
38
|
*/
|
39
|
+
|
39
40
|
try {
|
40
41
|
[changeRequests, meta] = await apw.changeRequest.list({
|
41
42
|
where: {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["deleteChangeRequestsAfterContentReview.ts"],"names":["deleteChangeRequestsWithContentReview","apw","contentReview","onAfterContentReviewDelete","subscribe","steps","i","length","slug","meta","hasMoreItems","cursor","changeRequests","changeRequest","list","where","step","id","after","e","message","delete"],"mappings":";;;;;;;AAEO,MAAMA,qCAAqC,GAAG,CAAC;AAClDC,EAAAA;AADkD,CAAD,KAEL;AAC5CA,EAAAA,GAAG,CAACC,aAAJ,CAAkBC,0BAAlB,CAA6CC,SAA7C,CAAuD,OAAO;AAAEF,IAAAA;AAAF,GAAP,KAA6B;AAChF;AACR;AACA;AACQ,UAAMG,KAAK,GAAGH,aAAa,CAACG,KAA5B;AACA;AACR;AACA;;AACQ,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,KAAK,CAACE,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACnC,YAAM;AAAEE,QAAAA;AAAF,UAAWH,KAAK,CAACC,CAAD,CAAtB;AAEA,UAAIG,IAAkC,GAAG;AACrCC,QAAAA,YAAY,EAAE,IADuB;AAErCC,QAAAA,MAAM,EAAE;AAF6B,OAAzC;AAIA;AACZ;AACA;;AACY,aAAOF,IAAI,CAACC,YAAZ,EAA0B;AACtB,YAAIE,cAAkC,GAAG,EAAzC;AACA;AAChB;AACA;;AACgB,YAAI;AACA,WAACA,cAAD,EAAiBH,IAAjB,IAAyB,MAAMR,GAAG,CAACY,aAAJ,CAAkBC,IAAlB,CAAuB;AAClDC,YAAAA,KAAK,EAAE;AACHC,cAAAA,IAAI,EAAG,GAAEd,aAAa,CAACe,EAAG,IAAGT,IAAK;AAD/B,aAD2C;AAIlDU,YAAAA,KAAK,EAAET,IAAI,CAACE;AAJsC,WAAvB,CAA/B;AAMH,SAPD,CAOE,OAAOQ,CAAP,EAAU;AACRV,UAAAA,IAAI,CAACC,YAAL,GAAoB,KAApB;;AACA,cAAIS,CAAC,CAACC,OAAF,KAAc,2BAAlB,EAA+C;AAC3C,kBAAMD,CAAN;AACH;AACJ;AAED;AAChB;AACA;;;AACgB,aAAK,MAAMN,aAAX,IAA4BD,cAA5B,EAA4C;AACxC,gBAAMX,GAAG,CAACY,aAAJ,CAAkBQ,MAAlB,CAAyBR,aAAa,CAACI,EAAvC,CAAN;AACH;AACJ;AACJ;AACJ,GA7CD;AA8CH,CAjDM","sourcesContent":["import { ApwChangeRequest, LifeCycleHookCallbackParams, ListMeta } from \"~/types\";\n\nexport const deleteChangeRequestsWithContentReview = ({\n apw\n}: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.contentReview.onAfterContentReviewDelete.subscribe(async ({ contentReview }) => {\n /**\n * Also delete all associated \"changeRequest\" when a \"contentReview\" is deleted.\n */\n const steps = contentReview.steps;\n /**\n * For each step get associated change requests and delete them.\n */\n for (let i = 0; i < steps.length; i++) {\n const { slug } = steps[i];\n\n let meta: Omit<ListMeta, \"totalCount\"> = {\n hasMoreItems: true,\n cursor: null\n };\n /**\n * Paginate through change requests.\n */\n while (meta.hasMoreItems) {\n let changeRequests: ApwChangeRequest[] = [];\n /**\n * Get all change requests.\n */\n try {\n [changeRequests, meta] = await apw.changeRequest.list({\n where: {\n step: `${contentReview.id}#${slug}`\n },\n after: meta.cursor\n });\n } catch (e) {\n meta.hasMoreItems = false;\n if (e.message !== \"index_not_found_exception\") {\n throw e;\n }\n }\n\n /**\n * Delete change requests one by one.\n */\n for (const changeRequest of changeRequests) {\n await apw.changeRequest.delete(changeRequest.id);\n }\n }\n }\n });\n};\n"]}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { LifeCycleHookCallbackParams } from "../../types";
|
2
|
-
export declare const deleteCommentsAfterChangeRequest: ({ apw }: LifeCycleHookCallbackParams) => void;
|
2
|
+
export declare const deleteCommentsAfterChangeRequest: ({ apw }: Pick<LifeCycleHookCallbackParams, "apw">) => void;
|
@@ -18,15 +18,16 @@ const deleteCommentsAfterChangeRequest = ({
|
|
18
18
|
hasMoreItems: true,
|
19
19
|
cursor: null
|
20
20
|
};
|
21
|
-
let comments = [];
|
22
21
|
/**
|
23
22
|
* Paginate through comments.
|
24
23
|
*/
|
25
24
|
|
26
25
|
while (meta.hasMoreItems) {
|
26
|
+
let comments = [];
|
27
27
|
/**
|
28
28
|
* Get all comments.
|
29
29
|
*/
|
30
|
+
|
30
31
|
try {
|
31
32
|
[comments, meta] = await apw.comment.list({
|
32
33
|
where: {
|
@@ -34,7 +35,7 @@ const deleteCommentsAfterChangeRequest = ({
|
|
34
35
|
id: changeRequest.id
|
35
36
|
}
|
36
37
|
},
|
37
|
-
after: meta.cursor
|
38
|
+
after: meta.cursor || null
|
38
39
|
});
|
39
40
|
} catch (e) {
|
40
41
|
meta.hasMoreItems = false;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["deleteCommentsAfterChangeRequest.ts"],"names":["deleteCommentsAfterChangeRequest","apw","changeRequest","onAfterChangeRequestDelete","subscribe","meta","hasMoreItems","cursor","comments","comment","list","where","id","after","e","message","delete"],"mappings":";;;;;;;AAEO,MAAMA,gCAAgC,GAAG,CAAC;AAC7CC,EAAAA;AAD6C,CAAD,KAEA;AAC5CA,EAAAA,GAAG,CAACC,aAAJ,CAAkBC,0BAAlB,CAA6CC,SAA7C,CAAuD,OAAO;AAAEF,IAAAA;AAAF,GAAP,KAA6B;AAChF;AACR;AACA;AACQ,QAAIG,IAAkC,GAAG;AACrCC,MAAAA,YAAY,EAAE,IADuB;AAErCC,MAAAA,MAAM,EAAE;AAF6B,KAAzC;AAIA;AACR;AACA;;AACQ,WAAOF,IAAI,CAACC,YAAZ,EAA0B;AACtB,UAAIE,QAAsB,GAAG,EAA7B;AACA;AACZ;AACA;;AACY,UAAI;AACA,SAACA,QAAD,EAAWH,IAAX,IAAmB,MAAMJ,GAAG,CAACQ,OAAJ,CAAYC,IAAZ,CAAiB;AACtCC,UAAAA,KAAK,EAAE;AACHT,YAAAA,aAAa,EAAE;AACXU,cAAAA,EAAE,EAAEV,aAAa,CAACU;AADP;AADZ,WAD+B;AAMtCC,UAAAA,KAAK,EAAER,IAAI,CAACE,MAAL,IAAe;AANgB,SAAjB,CAAzB;AAQH,OATD,CASE,OAAOO,CAAP,EAAU;AACRT,QAAAA,IAAI,CAACC,YAAL,GAAoB,KAApB;;AACA,YAAIQ,CAAC,CAACC,OAAF,KAAc,2BAAlB,EAA+C;AAC3C,gBAAMD,CAAN;AACH;AACJ;AAED;AACZ;AACA;;;AACY,WAAK,MAAML,OAAX,IAAsBD,QAAtB,EAAgC;AAC5B,cAAMP,GAAG,CAACQ,OAAJ,CAAYO,MAAZ,CAAmBP,OAAO,CAACG,EAA3B,CAAN;AACH;AACJ;AACJ,GAvCD;AAwCH,CA3CM","sourcesContent":["import { ApwComment, LifeCycleHookCallbackParams, ListMeta } from \"~/types\";\n\nexport const deleteCommentsAfterChangeRequest = ({\n apw\n}: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.changeRequest.onAfterChangeRequestDelete.subscribe(async ({ changeRequest }) => {\n /**\n * Also delete all associated comments with \"changeRequest\".\n */\n let meta: Omit<ListMeta, \"totalCount\"> = {\n hasMoreItems: true,\n cursor: null\n };\n /**\n * Paginate through comments.\n */\n while (meta.hasMoreItems) {\n let comments: ApwComment[] = [];\n /**\n * Get all comments.\n */\n try {\n [comments, meta] = await apw.comment.list({\n where: {\n changeRequest: {\n id: changeRequest.id\n }\n },\n after: meta.cursor || null\n });\n } catch (e) {\n meta.hasMoreItems = false;\n if (e.message !== \"index_not_found_exception\") {\n throw e;\n }\n }\n\n /**\n * Delete comments one by one.\n */\n for (const comment of comments) {\n await apw.comment.delete(comment.id);\n }\n }\n });\n};\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["extendPbPageSchema.ts"],"names":["GraphQLSchemaPlugin","typeDefs"],"mappings":";;;;;;;AAAA;;eAGe,MACX,IAAIA,4BAAJ,CAAoC;AAChCC,EAAAA,QAAQ;AAAE;AAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATwC,CAApC,C","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ApwContext } from \"~/types\";\n\nexport default () =>\n new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type PbApwPageSettings {\n workflowId: ID\n }\n\n extend type PbPageSettings {\n apw: PbApwPageSettings\n }\n `\n });\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["ContextPlugin","context","security","apw","pageBuilder","pageMethods","onBeforePageCreate","getPage","updatePage"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;eAEe,MAAM,CACjB,kCADiB;AAEjB;AACJ;AACA;AACI,IAAIA,4BAAJ,CAA8B,MAAMC,OAAN,IAAiB;AAC3C,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,GAAZ;AAAiBC,IAAAA;AAAjB,MAAiCH,OAAvC;AACA,QAAMI,WAAW,GAAG;AAChBC,IAAAA,kBAAkB,EAAEF,WAAW,CAACE,kBADhB;AAEhBC,IAAAA,OAAO,EAAEH,WAAW,CAACG,OAFL;AAGhBC,IAAAA,UAAU,EAAEJ,WAAW,CAACI;AAHR,GAApB;AAMA,8DAA2B;AAAEN,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA3B;AAEA;AAAqBA,IAAAA;AAArB,KAA6BE,WAA7B;AAEA,kEAA6B;AAAEF,IAAAA;AAAF,GAA7B;AAEA,qEAAiC;AAAEA,IAAAA;AAAF,GAAjC;AAEA,0EAAiC;AAAEA,IAAAA;AAAF,GAAjC;AAEA,qFAAsC;AAAEA,IAAAA;AAAF,GAAtC;AACH,CAnBD,CALiB,C","sourcesContent":["import { ContextPlugin } from \"@webiny/handler/plugins/ContextPlugin\";\nimport { ApwContext } from \"~/types\";\nimport extendPbPageSchema from \"./extendPbPageSchema\";\nimport { linkWorkflowToPage } from \"./linkWorkflowToPage\";\nimport { deleteCommentsAfterChangeRequest } from \"./deleteCommentsAfterChangeRequest\";\nimport { deleteChangeRequestsWithContentReview } from \"./deleteChangeRequestsAfterContentReview\";\nimport { createReviewerFromIdentity } from \"./createReviewerFromIdentity\";\nimport { initializeContentReviewSteps } from \"./initializeContentReviewSteps\";\nimport { updatePendingChangeRequestsCount } from \"./updatePendingChangeRequests\";\n\nexport default () => [\n extendPbPageSchema(),\n /**\n * Hook into CMS events and execute business logic.\n */\n new ContextPlugin<ApwContext>(async context => {\n const { security, apw, pageBuilder } = context;\n const pageMethods = {\n onBeforePageCreate: pageBuilder.onBeforePageCreate,\n getPage: pageBuilder.getPage,\n updatePage: pageBuilder.updatePage\n };\n\n createReviewerFromIdentity({ security, apw });\n\n linkWorkflowToPage({ apw, ...pageMethods });\n\n initializeContentReviewSteps({ apw });\n\n updatePendingChangeRequestsCount({ apw });\n\n deleteCommentsAfterChangeRequest({ apw });\n\n deleteChangeRequestsWithContentReview({ apw });\n })\n];\n"]}
|
@@ -3,5 +3,5 @@ export declare const getWorkflowIdFromContent: (apw: AdvancedPublishingWorkflow,
|
|
3
3
|
type: ApwContentTypes;
|
4
4
|
id: string;
|
5
5
|
settings: Record<string, any>;
|
6
|
-
}) => Promise<string>;
|
7
|
-
export declare const initializeContentReviewSteps: ({ apw }: LifeCycleHookCallbackParams) => void;
|
6
|
+
}) => Promise<string | null>;
|
7
|
+
export declare const initializeContentReviewSteps: ({ apw }: Pick<LifeCycleHookCallbackParams, "apw">) => void;
|
@@ -30,9 +30,10 @@ const getWorkflowIdFromContent = async (apw, params) => {
|
|
30
30
|
case _types.ApwContentTypes.CMS_ENTRY:
|
31
31
|
const getWorkflowFromCmsEntry = apw.getWorkflowGetter(_types.ApwContentTypes.CMS_ENTRY);
|
32
32
|
return getWorkflowFromCmsEntry(params.id, params.settings);
|
33
|
-
}
|
34
33
|
|
35
|
-
|
34
|
+
default:
|
35
|
+
return null;
|
36
|
+
}
|
36
37
|
};
|
37
38
|
|
38
39
|
exports.getWorkflowIdFromContent = getWorkflowIdFromContent;
|