@strapi/content-releases 0.0.0-next.2cc011c888f93c1bfab276c5f709a40fb3fc9aac → 0.0.0-next.2d97100ef73dbf1378ee138cf52f414d1b32a0c5
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/dist/admin/assets/purchase-page-illustration-dark.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +1 -0
- package/dist/admin/components/EntryValidationPopover.js +344 -0
- package/dist/admin/components/EntryValidationPopover.js.map +1 -0
- package/dist/admin/components/EntryValidationPopover.mjs +342 -0
- package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
- package/dist/admin/components/RelativeTime.js +76 -0
- package/dist/admin/components/RelativeTime.js.map +1 -0
- package/dist/admin/components/RelativeTime.mjs +55 -0
- package/dist/admin/components/RelativeTime.mjs.map +1 -0
- package/dist/admin/components/ReleaseAction.js +203 -0
- package/dist/admin/components/ReleaseAction.js.map +1 -0
- package/dist/admin/components/ReleaseAction.mjs +201 -0
- package/dist/admin/components/ReleaseAction.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.js +194 -0
- package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.mjs +173 -0
- package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionModal.js +268 -0
- package/dist/admin/components/ReleaseActionModal.js.map +1 -0
- package/dist/admin/components/ReleaseActionModal.mjs +244 -0
- package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.js +104 -0
- package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
- package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
- package/dist/admin/components/ReleaseListCell.js +103 -0
- package/dist/admin/components/ReleaseListCell.js.map +1 -0
- package/dist/admin/components/ReleaseListCell.mjs +100 -0
- package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
- package/dist/admin/components/ReleaseModal.js +323 -0
- package/dist/admin/components/ReleaseModal.js.map +1 -0
- package/dist/admin/components/ReleaseModal.mjs +302 -0
- package/dist/admin/components/ReleaseModal.mjs.map +1 -0
- package/dist/admin/components/ReleasesPanel.js +138 -0
- package/dist/admin/components/ReleasesPanel.js.map +1 -0
- package/dist/admin/components/ReleasesPanel.mjs +136 -0
- package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
- package/dist/admin/constants.js +77 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +75 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +120 -14
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +121 -13
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/modules/hooks.js +8 -0
- package/dist/admin/modules/hooks.js.map +1 -0
- package/dist/admin/modules/hooks.mjs +6 -0
- package/dist/admin/modules/hooks.mjs.map +1 -0
- package/dist/admin/pages/App.js +29 -0
- package/dist/admin/pages/App.js.map +1 -0
- package/dist/admin/pages/App.mjs +27 -0
- package/dist/admin/pages/App.mjs.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.js +192 -0
- package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.js +772 -0
- package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs +751 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
- package/dist/admin/pages/ReleasesPage.js +403 -0
- package/dist/admin/pages/ReleasesPage.js.map +1 -0
- package/dist/admin/pages/ReleasesPage.mjs +381 -0
- package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
- package/dist/admin/{chunks/ReleasesSettingsPage-DgUoq8_y.js → pages/ReleasesSettingsPage.js} +47 -30
- package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
- package/dist/admin/{chunks/ReleasesSettingsPage-BDN7ia8_.mjs → pages/ReleasesSettingsPage.mjs} +41 -24
- package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/services/release.js +464 -0
- package/dist/admin/services/release.js.map +1 -0
- package/dist/admin/services/release.mjs +447 -0
- package/dist/admin/services/release.mjs.map +1 -0
- package/dist/admin/store/hooks.js +8 -0
- package/dist/admin/store/hooks.js.map +1 -0
- package/dist/admin/store/hooks.mjs +6 -0
- package/dist/admin/store/hooks.mjs.map +1 -0
- package/dist/admin/{chunks/en-BzpFfVeO.js → translations/en.json.js} +8 -3
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-B2EeDoOz.mjs → translations/en.json.mjs} +7 -2
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-9T9su-bj.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-Bp9HotPq.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/utils/api.js +8 -0
- package/dist/admin/utils/api.js.map +1 -0
- package/dist/admin/utils/api.mjs +6 -0
- package/dist/admin/utils/api.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/time.js +42 -0
- package/dist/admin/utils/time.js.map +1 -0
- package/dist/admin/utils/time.mjs +39 -0
- package/dist/admin/utils/time.mjs.map +1 -0
- package/dist/admin/{chunks/schemas-DS7NeFDN.js → validation/schemas.js} +1 -1
- package/dist/admin/validation/schemas.js.map +1 -0
- package/dist/admin/{chunks/schemas-DMt8h1z-.mjs → validation/schemas.mjs} +2 -2
- package/dist/admin/validation/schemas.mjs.map +1 -0
- package/dist/server/bootstrap.js +68 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +66 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/constants.js +74 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/constants.mjs +69 -0
- package/dist/server/constants.mjs.map +1 -0
- package/dist/server/content-types/index.js +12 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +10 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/release/index.js +10 -0
- package/dist/server/content-types/release/index.js.map +1 -0
- package/dist/server/content-types/release/index.mjs +8 -0
- package/dist/server/content-types/release/index.mjs.map +1 -0
- package/dist/server/content-types/release/schema.js +58 -0
- package/dist/server/content-types/release/schema.js.map +1 -0
- package/dist/server/content-types/release/schema.mjs +56 -0
- package/dist/server/content-types/release/schema.mjs.map +1 -0
- package/dist/server/content-types/release-action/index.js +10 -0
- package/dist/server/content-types/release-action/index.js.map +1 -0
- package/dist/server/content-types/release-action/index.mjs +8 -0
- package/dist/server/content-types/release-action/index.mjs.map +1 -0
- package/dist/server/content-types/release-action/schema.js +55 -0
- package/dist/server/content-types/release-action/schema.js.map +1 -0
- package/dist/server/content-types/release-action/schema.mjs +53 -0
- package/dist/server/content-types/release-action/schema.mjs.map +1 -0
- package/dist/server/controllers/index.js +14 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +12 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/release-action.js +150 -0
- package/dist/server/controllers/release-action.js.map +1 -0
- package/dist/server/controllers/release-action.mjs +148 -0
- package/dist/server/controllers/release-action.mjs.map +1 -0
- package/dist/server/controllers/release.js +302 -0
- package/dist/server/controllers/release.js.map +1 -0
- package/dist/server/controllers/release.mjs +300 -0
- package/dist/server/controllers/release.mjs.map +1 -0
- package/dist/server/controllers/settings.js +37 -0
- package/dist/server/controllers/settings.js.map +1 -0
- package/dist/server/controllers/settings.mjs +35 -0
- package/dist/server/controllers/settings.mjs.map +1 -0
- package/dist/server/controllers/validation/release-action.js +34 -0
- package/dist/server/controllers/validation/release-action.js.map +1 -0
- package/dist/server/controllers/validation/release-action.mjs +30 -0
- package/dist/server/controllers/validation/release-action.mjs.map +1 -0
- package/dist/server/controllers/validation/release.js +26 -0
- package/dist/server/controllers/validation/release.js.map +1 -0
- package/dist/server/controllers/validation/release.mjs +22 -0
- package/dist/server/controllers/validation/release.mjs.map +1 -0
- package/dist/server/controllers/validation/settings.js +32 -0
- package/dist/server/controllers/validation/settings.js.map +1 -0
- package/dist/server/controllers/validation/settings.mjs +10 -0
- package/dist/server/controllers/validation/settings.mjs.map +1 -0
- package/dist/server/destroy.js +15 -0
- package/dist/server/destroy.js.map +1 -0
- package/dist/server/destroy.mjs +13 -0
- package/dist/server/destroy.mjs.map +1 -0
- package/dist/server/index.js +16 -2336
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +7 -2308
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/documents.js +104 -0
- package/dist/server/middlewares/documents.js.map +1 -0
- package/dist/server/middlewares/documents.mjs +101 -0
- package/dist/server/middlewares/documents.mjs.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
- package/dist/server/migrations/index.js +205 -0
- package/dist/server/migrations/index.js.map +1 -0
- package/dist/server/migrations/index.mjs +198 -0
- package/dist/server/migrations/index.mjs.map +1 -0
- package/dist/server/register.js +23 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +21 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/index.js +14 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +12 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/release-action.js +100 -0
- package/dist/server/routes/release-action.js.map +1 -0
- package/dist/server/routes/release-action.mjs +98 -0
- package/dist/server/routes/release-action.mjs.map +1 -0
- package/dist/server/routes/release.js +154 -0
- package/dist/server/routes/release.js.map +1 -0
- package/dist/server/routes/release.mjs +152 -0
- package/dist/server/routes/release.mjs.map +1 -0
- package/dist/server/routes/settings.js +46 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/settings.mjs +44 -0
- package/dist/server/routes/settings.mjs.map +1 -0
- package/dist/server/services/index.js +18 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +16 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/release-action.js +324 -0
- package/dist/server/services/release-action.js.map +1 -0
- package/dist/server/services/release-action.mjs +322 -0
- package/dist/server/services/release-action.mjs.map +1 -0
- package/dist/server/services/release.js +324 -0
- package/dist/server/services/release.js.map +1 -0
- package/dist/server/services/release.mjs +322 -0
- package/dist/server/services/release.mjs.map +1 -0
- package/dist/server/services/scheduling.js +70 -0
- package/dist/server/services/scheduling.js.map +1 -0
- package/dist/server/services/scheduling.mjs +68 -0
- package/dist/server/services/scheduling.mjs.map +1 -0
- package/dist/server/services/settings.js +34 -0
- package/dist/server/services/settings.js.map +1 -0
- package/dist/server/services/settings.mjs +32 -0
- package/dist/server/services/settings.mjs.map +1 -0
- package/dist/server/services/validation.js +91 -0
- package/dist/server/services/validation.js.map +1 -0
- package/dist/server/services/validation.mjs +86 -0
- package/dist/server/services/validation.mjs.map +1 -0
- package/dist/server/src/services/release-action.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/utils/index.js +94 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +88 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/package.json +10 -10
- package/dist/admin/chunks/App-Ccfr_N2a.js +0 -1866
- package/dist/admin/chunks/App-Ccfr_N2a.js.map +0 -1
- package/dist/admin/chunks/App-nCn9ijZP.mjs +0 -1845
- package/dist/admin/chunks/App-nCn9ijZP.mjs.map +0 -1
- package/dist/admin/chunks/PurchaseContentReleases-BCME5SQU.js +0 -55
- package/dist/admin/chunks/PurchaseContentReleases-BCME5SQU.js.map +0 -1
- package/dist/admin/chunks/PurchaseContentReleases-S1ccDSwp.mjs +0 -53
- package/dist/admin/chunks/PurchaseContentReleases-S1ccDSwp.mjs.map +0 -1
- package/dist/admin/chunks/ReleasesSettingsPage-BDN7ia8_.mjs.map +0 -1
- package/dist/admin/chunks/ReleasesSettingsPage-DgUoq8_y.js.map +0 -1
- package/dist/admin/chunks/en-B2EeDoOz.mjs.map +0 -1
- package/dist/admin/chunks/en-BzpFfVeO.js.map +0 -1
- package/dist/admin/chunks/index-BFXwEPqg.js +0 -1658
- package/dist/admin/chunks/index-BFXwEPqg.js.map +0 -1
- package/dist/admin/chunks/index-TSoOtDGF.mjs +0 -1619
- package/dist/admin/chunks/index-TSoOtDGF.mjs.map +0 -1
- package/dist/admin/chunks/schemas-DMt8h1z-.mjs.map +0 -1
- package/dist/admin/chunks/schemas-DS7NeFDN.js.map +0 -1
- package/dist/admin/chunks/uk-9T9su-bj.js.map +0 -1
- package/dist/admin/chunks/uk-Bp9HotPq.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/content-types/index.ts"],"sourcesContent":["import { release } from './release';\nimport { releaseAction } from './release-action';\n\nexport const contentTypes = {\n release,\n 'release-action': releaseAction,\n};\n"],"names":["contentTypes","release","releaseAction"],"mappings":";;;MAGaA,YAAe,GAAA;AAC1BC,IAAAA,OAAAA;IACA,gBAAkBC,EAAAA;AACpB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../server/src/content-types/release/index.ts"],"sourcesContent":["import schema from './schema';\n\nexport const release = {\n schema,\n};\n"],"names":["release","schema"],"mappings":";;;;MAEaA,OAAU,GAAA;AACrBC,IAAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../server/src/content-types/release/index.ts"],"sourcesContent":["import schema from './schema';\n\nexport const release = {\n schema,\n};\n"],"names":["release","schema"],"mappings":";;MAEaA,OAAU,GAAA;AACrBC,IAAAA;AACF;;;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('../../constants.js');
|
|
4
|
+
|
|
5
|
+
var schema = {
|
|
6
|
+
collectionName: 'strapi_releases',
|
|
7
|
+
info: {
|
|
8
|
+
singularName: 'release',
|
|
9
|
+
pluralName: 'releases',
|
|
10
|
+
displayName: 'Release'
|
|
11
|
+
},
|
|
12
|
+
options: {
|
|
13
|
+
draftAndPublish: false
|
|
14
|
+
},
|
|
15
|
+
pluginOptions: {
|
|
16
|
+
'content-manager': {
|
|
17
|
+
visible: false
|
|
18
|
+
},
|
|
19
|
+
'content-type-builder': {
|
|
20
|
+
visible: false
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
attributes: {
|
|
24
|
+
name: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
required: true
|
|
27
|
+
},
|
|
28
|
+
releasedAt: {
|
|
29
|
+
type: 'datetime'
|
|
30
|
+
},
|
|
31
|
+
scheduledAt: {
|
|
32
|
+
type: 'datetime'
|
|
33
|
+
},
|
|
34
|
+
timezone: {
|
|
35
|
+
type: 'string'
|
|
36
|
+
},
|
|
37
|
+
status: {
|
|
38
|
+
type: 'enumeration',
|
|
39
|
+
enum: [
|
|
40
|
+
'ready',
|
|
41
|
+
'blocked',
|
|
42
|
+
'failed',
|
|
43
|
+
'done',
|
|
44
|
+
'empty'
|
|
45
|
+
],
|
|
46
|
+
required: true
|
|
47
|
+
},
|
|
48
|
+
actions: {
|
|
49
|
+
type: 'relation',
|
|
50
|
+
relation: 'oneToMany',
|
|
51
|
+
target: constants.RELEASE_ACTION_MODEL_UID,
|
|
52
|
+
mappedBy: 'release'
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
module.exports = schema;
|
|
58
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../../../server/src/content-types/release/schema.ts"],"sourcesContent":["import { RELEASE_ACTION_MODEL_UID } from '../../constants';\n\nexport default {\n collectionName: 'strapi_releases',\n info: {\n singularName: 'release',\n pluralName: 'releases',\n displayName: 'Release',\n },\n options: {\n draftAndPublish: false,\n },\n pluginOptions: {\n 'content-manager': {\n visible: false,\n },\n 'content-type-builder': {\n visible: false,\n },\n },\n attributes: {\n name: {\n type: 'string',\n required: true,\n },\n releasedAt: {\n type: 'datetime',\n },\n scheduledAt: {\n type: 'datetime',\n },\n timezone: {\n type: 'string',\n },\n status: {\n type: 'enumeration',\n enum: ['ready', 'blocked', 'failed', 'done', 'empty'],\n required: true,\n },\n actions: {\n type: 'relation',\n relation: 'oneToMany',\n target: RELEASE_ACTION_MODEL_UID,\n mappedBy: 'release',\n },\n },\n};\n"],"names":["collectionName","info","singularName","pluralName","displayName","options","draftAndPublish","pluginOptions","visible","attributes","name","type","required","releasedAt","scheduledAt","timezone","status","enum","actions","relation","target","RELEASE_ACTION_MODEL_UID","mappedBy"],"mappings":";;;;AAEA,aAAe;IACbA,cAAgB,EAAA,iBAAA;IAChBC,IAAM,EAAA;QACJC,YAAc,EAAA,SAAA;QACdC,UAAY,EAAA,UAAA;QACZC,WAAa,EAAA;AACf,KAAA;IACAC,OAAS,EAAA;QACPC,eAAiB,EAAA;AACnB,KAAA;IACAC,aAAe,EAAA;QACb,iBAAmB,EAAA;YACjBC,OAAS,EAAA;AACX,SAAA;QACA,sBAAwB,EAAA;YACtBA,OAAS,EAAA;AACX;AACF,KAAA;IACAC,UAAY,EAAA;QACVC,IAAM,EAAA;YACJC,IAAM,EAAA,QAAA;YACNC,QAAU,EAAA;AACZ,SAAA;QACAC,UAAY,EAAA;YACVF,IAAM,EAAA;AACR,SAAA;QACAG,WAAa,EAAA;YACXH,IAAM,EAAA;AACR,SAAA;QACAI,QAAU,EAAA;YACRJ,IAAM,EAAA;AACR,SAAA;QACAK,MAAQ,EAAA;YACNL,IAAM,EAAA,aAAA;YACNM,IAAM,EAAA;AAAC,gBAAA,OAAA;AAAS,gBAAA,SAAA;AAAW,gBAAA,QAAA;AAAU,gBAAA,MAAA;AAAQ,gBAAA;AAAQ,aAAA;YACrDL,QAAU,EAAA;AACZ,SAAA;QACAM,OAAS,EAAA;YACPP,IAAM,EAAA,UAAA;YACNQ,QAAU,EAAA,WAAA;YACVC,MAAQC,EAAAA,kCAAAA;YACRC,QAAU,EAAA;AACZ;AACF;AACF,CAAE;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { RELEASE_ACTION_MODEL_UID } from '../../constants.mjs';
|
|
2
|
+
|
|
3
|
+
var schema = {
|
|
4
|
+
collectionName: 'strapi_releases',
|
|
5
|
+
info: {
|
|
6
|
+
singularName: 'release',
|
|
7
|
+
pluralName: 'releases',
|
|
8
|
+
displayName: 'Release'
|
|
9
|
+
},
|
|
10
|
+
options: {
|
|
11
|
+
draftAndPublish: false
|
|
12
|
+
},
|
|
13
|
+
pluginOptions: {
|
|
14
|
+
'content-manager': {
|
|
15
|
+
visible: false
|
|
16
|
+
},
|
|
17
|
+
'content-type-builder': {
|
|
18
|
+
visible: false
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
attributes: {
|
|
22
|
+
name: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
required: true
|
|
25
|
+
},
|
|
26
|
+
releasedAt: {
|
|
27
|
+
type: 'datetime'
|
|
28
|
+
},
|
|
29
|
+
scheduledAt: {
|
|
30
|
+
type: 'datetime'
|
|
31
|
+
},
|
|
32
|
+
timezone: {
|
|
33
|
+
type: 'string'
|
|
34
|
+
},
|
|
35
|
+
status: {
|
|
36
|
+
type: 'enumeration',
|
|
37
|
+
enum: [
|
|
38
|
+
'ready',
|
|
39
|
+
'blocked',
|
|
40
|
+
'failed',
|
|
41
|
+
'done',
|
|
42
|
+
'empty'
|
|
43
|
+
],
|
|
44
|
+
required: true
|
|
45
|
+
},
|
|
46
|
+
actions: {
|
|
47
|
+
type: 'relation',
|
|
48
|
+
relation: 'oneToMany',
|
|
49
|
+
target: RELEASE_ACTION_MODEL_UID,
|
|
50
|
+
mappedBy: 'release'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { schema as default };
|
|
56
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","sources":["../../../../server/src/content-types/release/schema.ts"],"sourcesContent":["import { RELEASE_ACTION_MODEL_UID } from '../../constants';\n\nexport default {\n collectionName: 'strapi_releases',\n info: {\n singularName: 'release',\n pluralName: 'releases',\n displayName: 'Release',\n },\n options: {\n draftAndPublish: false,\n },\n pluginOptions: {\n 'content-manager': {\n visible: false,\n },\n 'content-type-builder': {\n visible: false,\n },\n },\n attributes: {\n name: {\n type: 'string',\n required: true,\n },\n releasedAt: {\n type: 'datetime',\n },\n scheduledAt: {\n type: 'datetime',\n },\n timezone: {\n type: 'string',\n },\n status: {\n type: 'enumeration',\n enum: ['ready', 'blocked', 'failed', 'done', 'empty'],\n required: true,\n },\n actions: {\n type: 'relation',\n relation: 'oneToMany',\n target: RELEASE_ACTION_MODEL_UID,\n mappedBy: 'release',\n },\n },\n};\n"],"names":["collectionName","info","singularName","pluralName","displayName","options","draftAndPublish","pluginOptions","visible","attributes","name","type","required","releasedAt","scheduledAt","timezone","status","enum","actions","relation","target","RELEASE_ACTION_MODEL_UID","mappedBy"],"mappings":";;AAEA,aAAe;IACbA,cAAgB,EAAA,iBAAA;IAChBC,IAAM,EAAA;QACJC,YAAc,EAAA,SAAA;QACdC,UAAY,EAAA,UAAA;QACZC,WAAa,EAAA;AACf,KAAA;IACAC,OAAS,EAAA;QACPC,eAAiB,EAAA;AACnB,KAAA;IACAC,aAAe,EAAA;QACb,iBAAmB,EAAA;YACjBC,OAAS,EAAA;AACX,SAAA;QACA,sBAAwB,EAAA;YACtBA,OAAS,EAAA;AACX;AACF,KAAA;IACAC,UAAY,EAAA;QACVC,IAAM,EAAA;YACJC,IAAM,EAAA,QAAA;YACNC,QAAU,EAAA;AACZ,SAAA;QACAC,UAAY,EAAA;YACVF,IAAM,EAAA;AACR,SAAA;QACAG,WAAa,EAAA;YACXH,IAAM,EAAA;AACR,SAAA;QACAI,QAAU,EAAA;YACRJ,IAAM,EAAA;AACR,SAAA;QACAK,MAAQ,EAAA;YACNL,IAAM,EAAA,aAAA;YACNM,IAAM,EAAA;AAAC,gBAAA,OAAA;AAAS,gBAAA,SAAA;AAAW,gBAAA,QAAA;AAAU,gBAAA,MAAA;AAAQ,gBAAA;AAAQ,aAAA;YACrDL,QAAU,EAAA;AACZ,SAAA;QACAM,OAAS,EAAA;YACPP,IAAM,EAAA,UAAA;YACNQ,QAAU,EAAA,WAAA;YACVC,MAAQC,EAAAA,wBAAAA;YACRC,QAAU,EAAA;AACZ;AACF;AACF,CAAE;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../server/src/content-types/release-action/index.ts"],"sourcesContent":["import schema from './schema';\n\nexport const releaseAction = {\n schema,\n};\n"],"names":["releaseAction","schema"],"mappings":";;;;MAEaA,aAAgB,GAAA;AAC3BC,IAAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../server/src/content-types/release-action/index.ts"],"sourcesContent":["import schema from './schema';\n\nexport const releaseAction = {\n schema,\n};\n"],"names":["releaseAction","schema"],"mappings":";;MAEaA,aAAgB,GAAA;AAC3BC,IAAAA;AACF;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('../../constants.js');
|
|
4
|
+
|
|
5
|
+
var schema = {
|
|
6
|
+
collectionName: 'strapi_release_actions',
|
|
7
|
+
info: {
|
|
8
|
+
singularName: 'release-action',
|
|
9
|
+
pluralName: 'release-actions',
|
|
10
|
+
displayName: 'Release Action'
|
|
11
|
+
},
|
|
12
|
+
options: {
|
|
13
|
+
draftAndPublish: false
|
|
14
|
+
},
|
|
15
|
+
pluginOptions: {
|
|
16
|
+
'content-manager': {
|
|
17
|
+
visible: false
|
|
18
|
+
},
|
|
19
|
+
'content-type-builder': {
|
|
20
|
+
visible: false
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
attributes: {
|
|
24
|
+
type: {
|
|
25
|
+
type: 'enumeration',
|
|
26
|
+
enum: [
|
|
27
|
+
'publish',
|
|
28
|
+
'unpublish'
|
|
29
|
+
],
|
|
30
|
+
required: true
|
|
31
|
+
},
|
|
32
|
+
contentType: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
required: true
|
|
35
|
+
},
|
|
36
|
+
entryDocumentId: {
|
|
37
|
+
type: 'string'
|
|
38
|
+
},
|
|
39
|
+
locale: {
|
|
40
|
+
type: 'string'
|
|
41
|
+
},
|
|
42
|
+
release: {
|
|
43
|
+
type: 'relation',
|
|
44
|
+
relation: 'manyToOne',
|
|
45
|
+
target: constants.RELEASE_MODEL_UID,
|
|
46
|
+
inversedBy: 'actions'
|
|
47
|
+
},
|
|
48
|
+
isEntryValid: {
|
|
49
|
+
type: 'boolean'
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
module.exports = schema;
|
|
55
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../../../server/src/content-types/release-action/schema.ts"],"sourcesContent":["import { RELEASE_MODEL_UID } from '../../constants';\n\nexport default {\n collectionName: 'strapi_release_actions',\n info: {\n singularName: 'release-action',\n pluralName: 'release-actions',\n displayName: 'Release Action',\n },\n options: {\n draftAndPublish: false,\n },\n pluginOptions: {\n 'content-manager': {\n visible: false,\n },\n 'content-type-builder': {\n visible: false,\n },\n },\n attributes: {\n type: {\n type: 'enumeration',\n enum: ['publish', 'unpublish'],\n required: true,\n },\n contentType: {\n type: 'string',\n required: true,\n },\n entryDocumentId: {\n type: 'string',\n },\n locale: {\n type: 'string',\n },\n release: {\n type: 'relation',\n relation: 'manyToOne',\n target: RELEASE_MODEL_UID,\n inversedBy: 'actions',\n },\n isEntryValid: {\n type: 'boolean',\n },\n },\n};\n"],"names":["collectionName","info","singularName","pluralName","displayName","options","draftAndPublish","pluginOptions","visible","attributes","type","enum","required","contentType","entryDocumentId","locale","release","relation","target","RELEASE_MODEL_UID","inversedBy","isEntryValid"],"mappings":";;;;AAEA,aAAe;IACbA,cAAgB,EAAA,wBAAA;IAChBC,IAAM,EAAA;QACJC,YAAc,EAAA,gBAAA;QACdC,UAAY,EAAA,iBAAA;QACZC,WAAa,EAAA;AACf,KAAA;IACAC,OAAS,EAAA;QACPC,eAAiB,EAAA;AACnB,KAAA;IACAC,aAAe,EAAA;QACb,iBAAmB,EAAA;YACjBC,OAAS,EAAA;AACX,SAAA;QACA,sBAAwB,EAAA;YACtBA,OAAS,EAAA;AACX;AACF,KAAA;IACAC,UAAY,EAAA;QACVC,IAAM,EAAA;YACJA,IAAM,EAAA,aAAA;YACNC,IAAM,EAAA;AAAC,gBAAA,SAAA;AAAW,gBAAA;AAAY,aAAA;YAC9BC,QAAU,EAAA;AACZ,SAAA;QACAC,WAAa,EAAA;YACXH,IAAM,EAAA,QAAA;YACNE,QAAU,EAAA;AACZ,SAAA;QACAE,eAAiB,EAAA;YACfJ,IAAM,EAAA;AACR,SAAA;QACAK,MAAQ,EAAA;YACNL,IAAM,EAAA;AACR,SAAA;QACAM,OAAS,EAAA;YACPN,IAAM,EAAA,UAAA;YACNO,QAAU,EAAA,WAAA;YACVC,MAAQC,EAAAA,2BAAAA;YACRC,UAAY,EAAA;AACd,SAAA;QACAC,YAAc,EAAA;YACZX,IAAM,EAAA;AACR;AACF;AACF,CAAE;;;;"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { RELEASE_MODEL_UID } from '../../constants.mjs';
|
|
2
|
+
|
|
3
|
+
var schema = {
|
|
4
|
+
collectionName: 'strapi_release_actions',
|
|
5
|
+
info: {
|
|
6
|
+
singularName: 'release-action',
|
|
7
|
+
pluralName: 'release-actions',
|
|
8
|
+
displayName: 'Release Action'
|
|
9
|
+
},
|
|
10
|
+
options: {
|
|
11
|
+
draftAndPublish: false
|
|
12
|
+
},
|
|
13
|
+
pluginOptions: {
|
|
14
|
+
'content-manager': {
|
|
15
|
+
visible: false
|
|
16
|
+
},
|
|
17
|
+
'content-type-builder': {
|
|
18
|
+
visible: false
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
attributes: {
|
|
22
|
+
type: {
|
|
23
|
+
type: 'enumeration',
|
|
24
|
+
enum: [
|
|
25
|
+
'publish',
|
|
26
|
+
'unpublish'
|
|
27
|
+
],
|
|
28
|
+
required: true
|
|
29
|
+
},
|
|
30
|
+
contentType: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
required: true
|
|
33
|
+
},
|
|
34
|
+
entryDocumentId: {
|
|
35
|
+
type: 'string'
|
|
36
|
+
},
|
|
37
|
+
locale: {
|
|
38
|
+
type: 'string'
|
|
39
|
+
},
|
|
40
|
+
release: {
|
|
41
|
+
type: 'relation',
|
|
42
|
+
relation: 'manyToOne',
|
|
43
|
+
target: RELEASE_MODEL_UID,
|
|
44
|
+
inversedBy: 'actions'
|
|
45
|
+
},
|
|
46
|
+
isEntryValid: {
|
|
47
|
+
type: 'boolean'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { schema as default };
|
|
53
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","sources":["../../../../server/src/content-types/release-action/schema.ts"],"sourcesContent":["import { RELEASE_MODEL_UID } from '../../constants';\n\nexport default {\n collectionName: 'strapi_release_actions',\n info: {\n singularName: 'release-action',\n pluralName: 'release-actions',\n displayName: 'Release Action',\n },\n options: {\n draftAndPublish: false,\n },\n pluginOptions: {\n 'content-manager': {\n visible: false,\n },\n 'content-type-builder': {\n visible: false,\n },\n },\n attributes: {\n type: {\n type: 'enumeration',\n enum: ['publish', 'unpublish'],\n required: true,\n },\n contentType: {\n type: 'string',\n required: true,\n },\n entryDocumentId: {\n type: 'string',\n },\n locale: {\n type: 'string',\n },\n release: {\n type: 'relation',\n relation: 'manyToOne',\n target: RELEASE_MODEL_UID,\n inversedBy: 'actions',\n },\n isEntryValid: {\n type: 'boolean',\n },\n },\n};\n"],"names":["collectionName","info","singularName","pluralName","displayName","options","draftAndPublish","pluginOptions","visible","attributes","type","enum","required","contentType","entryDocumentId","locale","release","relation","target","RELEASE_MODEL_UID","inversedBy","isEntryValid"],"mappings":";;AAEA,aAAe;IACbA,cAAgB,EAAA,wBAAA;IAChBC,IAAM,EAAA;QACJC,YAAc,EAAA,gBAAA;QACdC,UAAY,EAAA,iBAAA;QACZC,WAAa,EAAA;AACf,KAAA;IACAC,OAAS,EAAA;QACPC,eAAiB,EAAA;AACnB,KAAA;IACAC,aAAe,EAAA;QACb,iBAAmB,EAAA;YACjBC,OAAS,EAAA;AACX,SAAA;QACA,sBAAwB,EAAA;YACtBA,OAAS,EAAA;AACX;AACF,KAAA;IACAC,UAAY,EAAA;QACVC,IAAM,EAAA;YACJA,IAAM,EAAA,aAAA;YACNC,IAAM,EAAA;AAAC,gBAAA,SAAA;AAAW,gBAAA;AAAY,aAAA;YAC9BC,QAAU,EAAA;AACZ,SAAA;QACAC,WAAa,EAAA;YACXH,IAAM,EAAA,QAAA;YACNE,QAAU,EAAA;AACZ,SAAA;QACAE,eAAiB,EAAA;YACfJ,IAAM,EAAA;AACR,SAAA;QACAK,MAAQ,EAAA;YACNL,IAAM,EAAA;AACR,SAAA;QACAM,OAAS,EAAA;YACPN,IAAM,EAAA,UAAA;YACNO,QAAU,EAAA,WAAA;YACVC,MAAQC,EAAAA,iBAAAA;YACRC,UAAY,EAAA;AACd,SAAA;QACAC,YAAc,EAAA;YACZX,IAAM,EAAA;AACR;AACF;AACF,CAAE;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var release = require('./release.js');
|
|
4
|
+
var releaseAction = require('./release-action.js');
|
|
5
|
+
var settings = require('./settings.js');
|
|
6
|
+
|
|
7
|
+
const controllers = {
|
|
8
|
+
release,
|
|
9
|
+
'release-action': releaseAction,
|
|
10
|
+
settings
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
exports.controllers = controllers;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import release from './release';\nimport releaseAction from './release-action';\nimport settings from './settings';\n\nexport const controllers = {\n release,\n 'release-action': releaseAction,\n settings,\n};\n"],"names":["controllers","release","releaseAction","settings"],"mappings":";;;;;;MAIaA,WAAc,GAAA;AACzBC,IAAAA,OAAAA;IACA,gBAAkBC,EAAAA,aAAAA;AAClBC,IAAAA;AACF;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import releaseController from './release.mjs';
|
|
2
|
+
import releaseActionController from './release-action.mjs';
|
|
3
|
+
import settingsController from './settings.mjs';
|
|
4
|
+
|
|
5
|
+
const controllers = {
|
|
6
|
+
release: releaseController,
|
|
7
|
+
'release-action': releaseActionController,
|
|
8
|
+
settings: settingsController
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { controllers };
|
|
12
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import release from './release';\nimport releaseAction from './release-action';\nimport settings from './settings';\n\nexport const controllers = {\n release,\n 'release-action': releaseAction,\n settings,\n};\n"],"names":["controllers","release","releaseAction","settings"],"mappings":";;;;MAIaA,WAAc,GAAA;AACzBC,aAAAA,iBAAAA;IACA,gBAAkBC,EAAAA,uBAAAA;AAClBC,cAAAA;AACF;;;;"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@strapi/utils');
|
|
4
|
+
var releaseAction = require('./validation/release-action.js');
|
|
5
|
+
var index = require('../utils/index.js');
|
|
6
|
+
var constants = require('../constants.js');
|
|
7
|
+
var validation = require('../services/validation.js');
|
|
8
|
+
|
|
9
|
+
const releaseActionController = {
|
|
10
|
+
async create (ctx) {
|
|
11
|
+
const releaseId = ctx.params.releaseId;
|
|
12
|
+
const releaseActionArgs = ctx.request.body;
|
|
13
|
+
await releaseAction.validateReleaseAction(releaseActionArgs);
|
|
14
|
+
const releaseActionService = index.getService('release-action', {
|
|
15
|
+
strapi
|
|
16
|
+
});
|
|
17
|
+
const releaseAction$1 = await releaseActionService.create(releaseId, releaseActionArgs);
|
|
18
|
+
ctx.created({
|
|
19
|
+
data: releaseAction$1
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
async createMany (ctx) {
|
|
23
|
+
const releaseId = ctx.params.releaseId;
|
|
24
|
+
const releaseActionsArgs = ctx.request.body;
|
|
25
|
+
await Promise.all(releaseActionsArgs.map((releaseActionArgs)=>releaseAction.validateReleaseAction(releaseActionArgs)));
|
|
26
|
+
const releaseActionService = index.getService('release-action', {
|
|
27
|
+
strapi
|
|
28
|
+
});
|
|
29
|
+
const releaseService = index.getService('release', {
|
|
30
|
+
strapi
|
|
31
|
+
});
|
|
32
|
+
const releaseActions = await strapi.db.transaction(async ()=>{
|
|
33
|
+
const releaseActions = await Promise.all(releaseActionsArgs.map(async (releaseActionArgs)=>{
|
|
34
|
+
try {
|
|
35
|
+
const action = await releaseActionService.create(releaseId, releaseActionArgs, {
|
|
36
|
+
disableUpdateReleaseStatus: true
|
|
37
|
+
});
|
|
38
|
+
return action;
|
|
39
|
+
} catch (error) {
|
|
40
|
+
// If the entry is already in the release, we don't want to throw an error, so we catch and ignore it
|
|
41
|
+
if (error instanceof validation.AlreadyOnReleaseError) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
return releaseActions;
|
|
48
|
+
});
|
|
49
|
+
const newReleaseActions = releaseActions.filter((action)=>action !== null);
|
|
50
|
+
if (newReleaseActions.length > 0) {
|
|
51
|
+
releaseService.updateReleaseStatus(releaseId);
|
|
52
|
+
}
|
|
53
|
+
ctx.created({
|
|
54
|
+
data: newReleaseActions,
|
|
55
|
+
meta: {
|
|
56
|
+
entriesAlreadyInRelease: releaseActions.length - newReleaseActions.length,
|
|
57
|
+
totalEntries: releaseActions.length
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
async findMany (ctx) {
|
|
62
|
+
const releaseId = ctx.params.releaseId;
|
|
63
|
+
const permissionsManager = strapi.service('admin::permission').createPermissionsManager({
|
|
64
|
+
ability: ctx.state.userAbility,
|
|
65
|
+
model: constants.RELEASE_ACTION_MODEL_UID
|
|
66
|
+
});
|
|
67
|
+
await releaseAction.validateFindManyActionsParams(ctx.query);
|
|
68
|
+
if (ctx.query.groupBy) {
|
|
69
|
+
if (![
|
|
70
|
+
'action',
|
|
71
|
+
'contentType',
|
|
72
|
+
'locale'
|
|
73
|
+
].includes(ctx.query.groupBy)) {
|
|
74
|
+
ctx.badRequest('Invalid groupBy parameter');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
ctx.query.sort = ctx.query.groupBy === 'action' ? 'type' : ctx.query.groupBy;
|
|
78
|
+
delete ctx.query.groupBy;
|
|
79
|
+
const query = await permissionsManager.sanitizeQuery(ctx.query);
|
|
80
|
+
const releaseActionService = index.getService('release-action', {
|
|
81
|
+
strapi
|
|
82
|
+
});
|
|
83
|
+
const { results, pagination } = await releaseActionService.findPage(releaseId, {
|
|
84
|
+
...query
|
|
85
|
+
});
|
|
86
|
+
/**
|
|
87
|
+
* Release actions can be related to entries of different content types.
|
|
88
|
+
* We need to sanitize the entry output according to that content type.
|
|
89
|
+
* So, we group the sanitized output function by content type.
|
|
90
|
+
*/ const contentTypeOutputSanitizers = results.reduce((acc, action)=>{
|
|
91
|
+
if (acc[action.contentType]) {
|
|
92
|
+
return acc;
|
|
93
|
+
}
|
|
94
|
+
const contentTypePermissionsManager = strapi.service('admin::permission').createPermissionsManager({
|
|
95
|
+
ability: ctx.state.userAbility,
|
|
96
|
+
model: action.contentType
|
|
97
|
+
});
|
|
98
|
+
acc[action.contentType] = contentTypePermissionsManager.sanitizeOutput;
|
|
99
|
+
return acc;
|
|
100
|
+
}, {});
|
|
101
|
+
/**
|
|
102
|
+
* sanitizeOutput doesn't work if you use it directly on the Release Action model, it doesn't sanitize the entries
|
|
103
|
+
* So, we need to sanitize manually each entry inside a Release Action
|
|
104
|
+
*/ const sanitizedResults = await utils.async.map(results, async (action)=>({
|
|
105
|
+
...action,
|
|
106
|
+
entry: action.entry ? await contentTypeOutputSanitizers[action.contentType](action.entry) : {}
|
|
107
|
+
}));
|
|
108
|
+
const groupedData = await releaseActionService.groupActions(sanitizedResults, query.sort);
|
|
109
|
+
const contentTypes = await releaseActionService.getContentTypeModelsFromActions(results);
|
|
110
|
+
const releaseService = index.getService('release', {
|
|
111
|
+
strapi
|
|
112
|
+
});
|
|
113
|
+
const components = await releaseService.getAllComponents();
|
|
114
|
+
ctx.body = {
|
|
115
|
+
data: groupedData,
|
|
116
|
+
meta: {
|
|
117
|
+
pagination,
|
|
118
|
+
contentTypes,
|
|
119
|
+
components
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
},
|
|
123
|
+
async update (ctx) {
|
|
124
|
+
const actionId = ctx.params.actionId;
|
|
125
|
+
const releaseId = ctx.params.releaseId;
|
|
126
|
+
const releaseActionUpdateArgs = ctx.request.body;
|
|
127
|
+
await releaseAction.validateReleaseActionUpdateSchema(releaseActionUpdateArgs);
|
|
128
|
+
const releaseActionService = index.getService('release-action', {
|
|
129
|
+
strapi
|
|
130
|
+
});
|
|
131
|
+
const updatedAction = await releaseActionService.update(actionId, releaseId, releaseActionUpdateArgs);
|
|
132
|
+
ctx.body = {
|
|
133
|
+
data: updatedAction
|
|
134
|
+
};
|
|
135
|
+
},
|
|
136
|
+
async delete (ctx) {
|
|
137
|
+
const actionId = ctx.params.actionId;
|
|
138
|
+
const releaseId = ctx.params.releaseId;
|
|
139
|
+
const releaseActionService = index.getService('release-action', {
|
|
140
|
+
strapi
|
|
141
|
+
});
|
|
142
|
+
const deletedReleaseAction = await releaseActionService.delete(actionId, releaseId);
|
|
143
|
+
ctx.body = {
|
|
144
|
+
data: deletedReleaseAction
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
module.exports = releaseActionController;
|
|
150
|
+
//# sourceMappingURL=release-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-action.js","sources":["../../../server/src/controllers/release-action.ts"],"sourcesContent":["import type Koa from 'koa';\n\nimport { async } from '@strapi/utils';\nimport {\n validateReleaseAction,\n validateReleaseActionUpdateSchema,\n validateFindManyActionsParams,\n} from './validation/release-action';\nimport type {\n CreateReleaseAction,\n CreateManyReleaseActions,\n GetReleaseActions,\n UpdateReleaseAction,\n DeleteReleaseAction,\n} from '../../../shared/contracts/release-actions';\nimport { getService } from '../utils';\nimport { RELEASE_ACTION_MODEL_UID } from '../constants';\nimport { AlreadyOnReleaseError } from '../services/validation';\n\nconst releaseActionController = {\n async create(ctx: Koa.Context) {\n const releaseId: CreateReleaseAction.Request['params']['releaseId'] = ctx.params.releaseId;\n const releaseActionArgs = ctx.request.body as CreateReleaseAction.Request['body'];\n\n await validateReleaseAction(releaseActionArgs);\n\n const releaseActionService = getService('release-action', { strapi });\n const releaseAction = await releaseActionService.create(releaseId, releaseActionArgs);\n\n ctx.created({\n data: releaseAction,\n });\n },\n\n async createMany(ctx: Koa.Context) {\n const releaseId: CreateManyReleaseActions.Request['params']['releaseId'] = ctx.params.releaseId;\n const releaseActionsArgs = ctx.request.body as CreateManyReleaseActions.Request['body'];\n\n await Promise.all(\n releaseActionsArgs.map((releaseActionArgs) => validateReleaseAction(releaseActionArgs))\n );\n\n const releaseActionService = getService('release-action', { strapi });\n const releaseService = getService('release', { strapi });\n\n const releaseActions = await strapi.db.transaction(async () => {\n const releaseActions = await Promise.all(\n releaseActionsArgs.map(async (releaseActionArgs) => {\n try {\n const action = await releaseActionService.create(releaseId, releaseActionArgs, {\n disableUpdateReleaseStatus: true,\n });\n return action;\n } catch (error) {\n // If the entry is already in the release, we don't want to throw an error, so we catch and ignore it\n if (error instanceof AlreadyOnReleaseError) {\n return null;\n }\n throw error;\n }\n })\n );\n return releaseActions;\n });\n\n const newReleaseActions = releaseActions.filter((action) => action !== null);\n\n if (newReleaseActions.length > 0) {\n releaseService.updateReleaseStatus(releaseId);\n }\n\n ctx.created({\n data: newReleaseActions,\n meta: {\n entriesAlreadyInRelease: releaseActions.length - newReleaseActions.length,\n totalEntries: releaseActions.length,\n },\n });\n },\n\n async findMany(ctx: Koa.Context) {\n const releaseId: GetReleaseActions.Request['params']['releaseId'] = ctx.params.releaseId;\n const permissionsManager = strapi.service('admin::permission').createPermissionsManager({\n ability: ctx.state.userAbility,\n model: RELEASE_ACTION_MODEL_UID,\n });\n\n await validateFindManyActionsParams(ctx.query);\n\n if (ctx.query.groupBy) {\n if (!['action', 'contentType', 'locale'].includes(ctx.query.groupBy as string)) {\n ctx.badRequest('Invalid groupBy parameter');\n }\n }\n\n ctx.query.sort = ctx.query.groupBy === 'action' ? 'type' : ctx.query.groupBy;\n delete ctx.query.groupBy;\n\n const query = await permissionsManager.sanitizeQuery(ctx.query);\n\n const releaseActionService = getService('release-action', { strapi });\n const { results, pagination } = await releaseActionService.findPage(releaseId, {\n ...query,\n });\n\n /**\n * Release actions can be related to entries of different content types.\n * We need to sanitize the entry output according to that content type.\n * So, we group the sanitized output function by content type.\n */\n const contentTypeOutputSanitizers = results.reduce((acc: Record<string, any>, action: any) => {\n if (acc[action.contentType]) {\n return acc;\n }\n\n const contentTypePermissionsManager = strapi\n .service('admin::permission')\n .createPermissionsManager({\n ability: ctx.state.userAbility,\n model: action.contentType,\n });\n\n acc[action.contentType] = contentTypePermissionsManager.sanitizeOutput;\n\n return acc;\n }, {});\n\n /**\n * sanitizeOutput doesn't work if you use it directly on the Release Action model, it doesn't sanitize the entries\n * So, we need to sanitize manually each entry inside a Release Action\n */\n const sanitizedResults = await async.map(results, async (action: any) => ({\n ...action,\n entry: action.entry\n ? await contentTypeOutputSanitizers[action.contentType](action.entry)\n : {},\n }));\n\n const groupedData = await releaseActionService.groupActions(sanitizedResults, query.sort);\n\n const contentTypes = await releaseActionService.getContentTypeModelsFromActions(results);\n\n const releaseService = getService('release', { strapi });\n const components = await releaseService.getAllComponents();\n\n ctx.body = {\n data: groupedData,\n meta: {\n pagination,\n contentTypes,\n components,\n },\n };\n },\n\n async update(ctx: Koa.Context) {\n const actionId: UpdateReleaseAction.Request['params']['actionId'] = ctx.params.actionId;\n const releaseId: UpdateReleaseAction.Request['params']['releaseId'] = ctx.params.releaseId;\n const releaseActionUpdateArgs = ctx.request.body as UpdateReleaseAction.Request['body'];\n\n await validateReleaseActionUpdateSchema(releaseActionUpdateArgs);\n\n const releaseActionService = getService('release-action', { strapi });\n\n const updatedAction = await releaseActionService.update(\n actionId,\n releaseId,\n releaseActionUpdateArgs\n );\n\n ctx.body = {\n data: updatedAction,\n };\n },\n\n async delete(ctx: Koa.Context) {\n const actionId: DeleteReleaseAction.Request['params']['actionId'] = ctx.params.actionId;\n const releaseId: DeleteReleaseAction.Request['params']['releaseId'] = ctx.params.releaseId;\n\n const releaseActionService = getService('release-action', { strapi });\n\n const deletedReleaseAction = await releaseActionService.delete(actionId, releaseId);\n\n ctx.body = {\n data: deletedReleaseAction,\n };\n },\n};\n\nexport default releaseActionController;\n"],"names":["releaseActionController","create","ctx","releaseId","params","releaseActionArgs","request","body","validateReleaseAction","releaseActionService","getService","strapi","releaseAction","created","data","createMany","releaseActionsArgs","Promise","all","map","releaseService","releaseActions","db","transaction","action","disableUpdateReleaseStatus","error","AlreadyOnReleaseError","newReleaseActions","filter","length","updateReleaseStatus","meta","entriesAlreadyInRelease","totalEntries","findMany","permissionsManager","service","createPermissionsManager","ability","state","userAbility","model","RELEASE_ACTION_MODEL_UID","validateFindManyActionsParams","query","groupBy","includes","badRequest","sort","sanitizeQuery","results","pagination","findPage","contentTypeOutputSanitizers","reduce","acc","contentType","contentTypePermissionsManager","sanitizeOutput","sanitizedResults","async","entry","groupedData","groupActions","contentTypes","getContentTypeModelsFromActions","components","getAllComponents","update","actionId","releaseActionUpdateArgs","validateReleaseActionUpdateSchema","updatedAction","delete","deletedReleaseAction"],"mappings":"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"}
|