@webiny/api-headless-cms 0.0.0-unstable.9f53ea597d → 0.0.0-unstable.a4f3e4ea8b
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/crud/contentEntry.crud.js +12 -39
- package/crud/contentEntry.crud.js.map +1 -1
- package/features/contentEntry/ContentEntriesFeature.js +4 -0
- package/features/contentEntry/ContentEntriesFeature.js.map +1 -1
- package/features/contentEntry/CreateEntry/CreateEntryRepository.d.ts +4 -2
- package/features/contentEntry/CreateEntry/CreateEntryRepository.js +8 -3
- package/features/contentEntry/CreateEntry/CreateEntryRepository.js.map +1 -1
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +1 -2
- package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.d.ts +4 -2
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js +8 -3
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js.map +1 -1
- package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.d.ts +4 -2
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js +8 -3
- package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.d.ts +3 -1
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js +8 -3
- package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js.map +1 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.d.ts +3 -1
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js +9 -3
- package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js.map +1 -1
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.d.ts +4 -2
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js +7 -3
- package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js.map +1 -1
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.d.ts +4 -4
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js +8 -11
- package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.d.ts +4 -2
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js +7 -3
- package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.d.ts +4 -2
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js +7 -3
- package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.d.ts +4 -2
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js +7 -3
- package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.d.ts +4 -2
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js +7 -3
- package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js.map +1 -1
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.d.ts +4 -2
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js +7 -3
- package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.d.ts +4 -2
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js +7 -3
- package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js.map +1 -1
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.d.ts +4 -2
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js +7 -3
- package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js.map +1 -1
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.d.ts +4 -2
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js +7 -3
- package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js.map +1 -1
- package/features/contentEntry/ListEntries/ListEntriesRepository.d.ts +4 -2
- package/features/contentEntry/ListEntries/ListEntriesRepository.js +7 -3
- package/features/contentEntry/ListEntries/ListEntriesRepository.js.map +1 -1
- package/features/contentEntry/MoveEntry/MoveEntryRepository.d.ts +4 -2
- package/features/contentEntry/MoveEntry/MoveEntryRepository.js +7 -3
- package/features/contentEntry/MoveEntry/MoveEntryRepository.js.map +1 -1
- package/features/contentEntry/PublishEntry/PublishEntryRepository.d.ts +4 -2
- package/features/contentEntry/PublishEntry/PublishEntryRepository.js +8 -3
- package/features/contentEntry/PublishEntry/PublishEntryRepository.js.map +1 -1
- package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.d.ts +4 -2
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js +8 -3
- package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js.map +1 -1
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.d.ts +4 -2
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js +8 -3
- package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js.map +1 -1
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.d.ts +4 -2
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js +8 -3
- package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js.map +1 -1
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.d.ts +4 -2
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js +8 -3
- package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js.map +1 -1
- package/features/contentEntry/UpdateRevision/UpdateRevisionRepository.d.ts +14 -0
- package/features/contentEntry/UpdateRevision/UpdateRevisionRepository.js +34 -0
- package/features/contentEntry/UpdateRevision/UpdateRevisionRepository.js.map +1 -0
- package/features/contentEntry/UpdateRevision/abstractions.d.ts +10 -0
- package/features/contentEntry/UpdateRevision/abstractions.js +5 -0
- package/features/contentEntry/UpdateRevision/abstractions.js.map +1 -0
- package/features/contentEntry/UpdateRevision/feature.d.ts +4 -0
- package/features/contentEntry/UpdateRevision/feature.js +11 -0
- package/features/contentEntry/UpdateRevision/feature.js.map +1 -0
- package/features/contentEntry/UpdateRevision/index.d.ts +1 -0
- package/features/contentEntry/UpdateRevision/index.js +1 -0
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.d.ts +2 -2
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js +2 -2
- package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js.map +1 -1
- package/features/contentEntry/ensureItemIds.d.ts +13 -0
- package/features/contentEntry/ensureItemIds.js +22 -0
- package/features/contentEntry/ensureItemIds.js.map +1 -0
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js +8 -2
- package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js.map +1 -1
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js +8 -2
- package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js.map +1 -1
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.d.ts +3 -1
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js +8 -2
- package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelRepository.d.ts +4 -2
- package/features/contentModel/CreateModel/CreateModelRepository.js +8 -4
- package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
- package/features/contentModel/CreateModel/CreateModelUseCase.js +2 -2
- package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
- package/features/contentModel/CreateModel/abstractions.d.ts +1 -1
- package/features/contentModel/CreateModel/abstractions.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.d.ts +4 -2
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +8 -4
- package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +2 -2
- package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
- package/features/contentModel/CreateModelFrom/abstractions.d.ts +1 -1
- package/features/contentModel/CreateModelFrom/abstractions.js.map +1 -1
- package/features/contentModel/DeleteModel/DeleteModelRepository.d.ts +4 -2
- package/features/contentModel/DeleteModel/DeleteModelRepository.js +7 -3
- package/features/contentModel/DeleteModel/DeleteModelRepository.js.map +1 -1
- package/features/contentModel/UpdateModel/UpdateModelRepository.d.ts +4 -2
- package/features/contentModel/UpdateModel/UpdateModelRepository.js +8 -4
- package/features/contentModel/UpdateModel/UpdateModelRepository.js.map +1 -1
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js +2 -2
- package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
- package/features/contentModel/UpdateModel/abstractions.d.ts +1 -1
- package/features/contentModel/UpdateModel/abstractions.js.map +1 -1
- package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js +3 -2
- package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.d.ts +4 -2
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +8 -4
- package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.d.ts +1 -3
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +5 -7
- package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/CreateGroup/abstractions.d.ts +1 -1
- package/features/contentModelGroup/CreateGroup/abstractions.js.map +1 -1
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.d.ts +4 -2
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js +7 -3
- package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.d.ts +4 -2
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js +8 -4
- package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +2 -2
- package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
- package/features/contentModelGroup/UpdateGroup/abstractions.d.ts +1 -1
- package/features/contentModelGroup/UpdateGroup/abstractions.js.map +1 -1
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js +7 -1
- package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/ObjectToGraphQL.js +6 -3
- package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -1
- package/features/graphql/fields/base/RefToGraphQL.js +17 -7
- package/features/graphql/fields/base/RefToGraphQL.js.map +1 -1
- package/features/modelBuilder/abstractions.d.ts +1 -2
- package/features/modelBuilder/abstractions.js.map +1 -1
- package/features/runtimeTenant/RuntimeTenant.d.ts +13 -0
- package/features/runtimeTenant/RuntimeTenant.js +22 -0
- package/features/runtimeTenant/RuntimeTenant.js.map +1 -0
- package/features/runtimeTenant/abstractions.d.ts +11 -0
- package/features/runtimeTenant/abstractions.js +5 -0
- package/features/runtimeTenant/abstractions.js.map +1 -0
- package/features/runtimeTenant/index.d.ts +2 -0
- package/features/runtimeTenant/index.js +2 -0
- package/features/sortMapper/SortMapper.js +2 -5
- package/features/sortMapper/SortMapper.js.map +1 -1
- package/features/storage/fields/ObjectStorageTransform.js +27 -7
- package/features/storage/fields/ObjectStorageTransform.js.map +1 -1
- package/features/validation/validators/PatternValidator.js +1 -1
- package/features/validation/validators/PatternValidator.js.map +1 -1
- package/features/whereMapper/WhereMapper.js +7 -5
- package/features/whereMapper/WhereMapper.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +15 -5
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +8 -2
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/package.json +18 -18
- package/types/types.d.ts +4 -0
- package/types/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/PublishEntry/PublishEntryUseCase.js","sources":["../../../../src/features/contentEntry/PublishEntry/PublishEntryUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PublishEntryUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PublishEntryRepository } from \"./abstractions.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"~/features/contentEntry/GetRevisionById/index.js\";\nimport { GetLatestRevisionByEntryIdUseCase } from \"~/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport {\n EntryBeforePublishEvent,\n EntryAfterPublishEvent,\n EntryPublishErrorEvent\n} from \"./events.js\";\nimport { EntryNotAuthorizedError
|
|
1
|
+
{"version":3,"file":"features/contentEntry/PublishEntry/PublishEntryUseCase.js","sources":["../../../../src/features/contentEntry/PublishEntry/PublishEntryUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { PublishEntryUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { PublishEntryRepository } from \"./abstractions.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"~/features/contentEntry/GetRevisionById/index.js\";\nimport { GetLatestRevisionByEntryIdUseCase } from \"~/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport {\n EntryBeforePublishEvent,\n EntryAfterPublishEvent,\n EntryPublishErrorEvent\n} from \"./events.js\";\nimport { EntryNotAuthorizedError, EntryNotFoundError } from \"~/domain/contentEntry/errors.js\";\nimport { CreatePublishEntryDataFactory } from \"~/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/index.js\";\n\nclass PublishEntryUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private repository: PublishEntryRepository.Interface,\n private accessControl: AccessControl.Interface,\n private getRevisionById: GetRevisionByIdUseCase.Interface,\n private getLatestRevision: GetLatestRevisionByEntryIdUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private createPublishEntryDataFactory: CreatePublishEntryDataFactory.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string\n ): Promise<Result<CmsEntry<T>, UseCaseAbstraction.Error>> {\n const canAccess = await this.accessControl.canAccessEntry({ model, pw: \"p\" });\n if (!canAccess) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n const result = await this.getRevisionById.execute<T>(model, id);\n\n if (result.isFail()) {\n return Result.fail(new EntryNotFoundError(id));\n }\n\n const originalEntry = result.value;\n\n const canAccessEntry = await this.accessControl.canAccessEntry({\n model,\n entry: originalEntry,\n pw: \"p\"\n });\n\n if (!canAccessEntry) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n const latestResult = await this.getLatestRevision.execute<T>(model, {\n id: originalEntry.entryId\n });\n\n if (latestResult.isFail()) {\n return Result.fail(latestResult.error);\n }\n\n const latestEntry = latestResult.value;\n\n const { entry } = await this.createPublishEntryDataFactory.create<T>(\n model,\n originalEntry,\n latestEntry\n );\n\n try {\n await this.eventPublisher.publish(\n new EntryBeforePublishEvent({\n entry,\n original: originalEntry,\n model\n })\n );\n\n const repositoryResult = await this.repository.execute(model, entry);\n\n if (repositoryResult.isFail()) {\n await this.eventPublisher.publish(\n new EntryPublishErrorEvent({\n entry,\n original: originalEntry,\n model,\n error: repositoryResult.error\n })\n );\n return Result.fail(repositoryResult.error);\n }\n\n const publishedEntry = repositoryResult.value;\n\n await this.eventPublisher.publish(\n new EntryAfterPublishEvent({\n entry: publishedEntry,\n original: originalEntry,\n model\n })\n );\n\n return Result.ok(entry);\n } catch (error) {\n await this.eventPublisher.publish(\n new EntryPublishErrorEvent({\n entry,\n original: originalEntry,\n model,\n error: error as Error\n })\n );\n return Result.fail(error as UseCaseAbstraction.Error);\n }\n }\n}\n\nexport const PublishEntryUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: PublishEntryUseCaseImpl,\n dependencies: [\n PublishEntryRepository,\n AccessControl,\n GetRevisionByIdUseCase,\n GetLatestRevisionByEntryIdUseCase,\n EventPublisher,\n CreatePublishEntryDataFactory\n ]\n});\n"],"names":["PublishEntryUseCaseImpl","repository","accessControl","getRevisionById","getLatestRevision","eventPublisher","createPublishEntryDataFactory","model","id","canAccess","Result","EntryNotAuthorizedError","result","EntryNotFoundError","originalEntry","canAccessEntry","latestResult","latestEntry","entry","EntryBeforePublishEvent","repositoryResult","EntryPublishErrorEvent","publishedEntry","EntryAfterPublishEvent","error","PublishEntryUseCase","createImplementation","UseCaseAbstraction","PublishEntryRepository","AccessControl","GetRevisionByIdUseCase","GetLatestRevisionByEntryIdUseCase","EventPublisher","CreatePublishEntryDataFactory"],"mappings":";;;;;;;;;AAiBA,MAAMA;IACF,YACYC,UAA4C,EAC5CC,aAAsC,EACtCC,eAAiD,EACjDC,iBAA8D,EAC9DC,cAAwC,EACxCC,6BAAsE,CAChF;aANUL,UAAU,GAAVA;aACAC,aAAa,GAAbA;aACAC,eAAe,GAAfA;aACAC,iBAAiB,GAAjBA;aACAC,cAAc,GAAdA;aACAC,6BAA6B,GAA7BA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,EAAU,EAC4C;QACtD,MAAMC,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAEF;YAAO,IAAI;QAAI;QAC3E,IAAI,CAACE,WACD,OAAOC,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACJ;QAGzD,MAAMK,SAAS,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAIL,OAAOC;QAE5D,IAAII,OAAO,MAAM,IACb,OAAOF,OAAO,IAAI,CAAC,IAAIG,mBAAmBL;QAG9C,MAAMM,gBAAgBF,OAAO,KAAK;QAElC,MAAMG,iBAAiB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAC3DR;YACA,OAAOO;YACP,IAAI;QACR;QAEA,IAAI,CAACC,gBACD,OAAOL,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACJ;QAGzD,MAAMS,eAAe,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAIT,OAAO;YAChE,IAAIO,cAAc,OAAO;QAC7B;QAEA,IAAIE,aAAa,MAAM,IACnB,OAAON,OAAO,IAAI,CAACM,aAAa,KAAK;QAGzC,MAAMC,cAAcD,aAAa,KAAK;QAEtC,MAAM,EAAEE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAC7DX,OACAO,eACAG;QAGJ,IAAI;YACA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIE,wBAAwB;gBACxBD;gBACA,UAAUJ;gBACVP;YACJ;YAGJ,MAAMa,mBAAmB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACb,OAAOW;YAE9D,IAAIE,iBAAiB,MAAM,IAAI;gBAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,uBAAuB;oBACvBH;oBACA,UAAUJ;oBACVP;oBACA,OAAOa,iBAAiB,KAAK;gBACjC;gBAEJ,OAAOV,OAAO,IAAI,CAACU,iBAAiB,KAAK;YAC7C;YAEA,MAAME,iBAAiBF,iBAAiB,KAAK;YAE7C,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIG,uBAAuB;gBACvB,OAAOD;gBACP,UAAUR;gBACVP;YACJ;YAGJ,OAAOG,OAAO,EAAE,CAACQ;QACrB,EAAE,OAAOM,OAAO;YACZ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIH,uBAAuB;gBACvBH;gBACA,UAAUJ;gBACVP;gBACA,OAAOiB;YACX;YAEJ,OAAOd,OAAO,IAAI,CAACc;QACvB;IACJ;AACJ;AAEO,MAAMC,0CAAsBC,qBAAqB;IACpD,aAAaC;IACb,gBAAgB3B;IAChB,cAAc;QACV4B;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -4,6 +4,7 @@ import { StorageOperations } from "../../../features/shared/abstractions.js";
|
|
|
4
4
|
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
5
5
|
import { EntryFromStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
6
|
import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js";
|
|
7
|
+
import { RuntimeTenant } from "../../../features/runtimeTenant/abstractions.js";
|
|
7
8
|
/**
|
|
8
9
|
* RepublishEntryRepository - Handles storage operations for republishing entries.
|
|
9
10
|
*
|
|
@@ -18,8 +19,9 @@ declare class RepublishEntryRepositoryImpl implements RepositoryAbstraction.Inte
|
|
|
18
19
|
private entryToStorageTransform;
|
|
19
20
|
private entryFromStorageTransform;
|
|
20
21
|
private storageOperations;
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
private runtimeTenant;
|
|
23
|
+
constructor(entryToStorageTransform: EntryToStorageTransform.Interface, entryFromStorageTransform: EntryFromStorageTransform.Interface, storageOperations: StorageOperations.Interface, runtimeTenant: RuntimeTenant.Interface);
|
|
24
|
+
execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, initialEntry: CmsEntry<T>): Promise<Result<CmsEntry<T>, RepositoryAbstraction.Error>>;
|
|
23
25
|
}
|
|
24
26
|
export declare const RepublishEntryRepository: import("@webiny/di").Implementation<typeof RepublishEntryRepositoryImpl>;
|
|
25
27
|
export {};
|
|
@@ -3,13 +3,17 @@ import { RepublishEntryRepository } from "./abstractions.js";
|
|
|
3
3
|
import { StorageOperations } from "../../shared/abstractions.js";
|
|
4
4
|
import { EntryFromStorageTransform, EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
5
5
|
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
6
|
+
import { RuntimeTenant } from "../../runtimeTenant/abstractions.js";
|
|
6
7
|
class RepublishEntryRepositoryImpl {
|
|
7
|
-
constructor(entryToStorageTransform, entryFromStorageTransform, storageOperations){
|
|
8
|
+
constructor(entryToStorageTransform, entryFromStorageTransform, storageOperations, runtimeTenant){
|
|
8
9
|
this.entryToStorageTransform = entryToStorageTransform;
|
|
9
10
|
this.entryFromStorageTransform = entryFromStorageTransform;
|
|
10
11
|
this.storageOperations = storageOperations;
|
|
12
|
+
this.runtimeTenant = runtimeTenant;
|
|
11
13
|
}
|
|
12
|
-
async execute(
|
|
14
|
+
async execute(initialModel, initialEntry) {
|
|
15
|
+
const model = this.runtimeTenant.assign(initialModel);
|
|
16
|
+
const entry = this.runtimeTenant.assign(initialEntry);
|
|
13
17
|
try {
|
|
14
18
|
const storageEntry = await this.entryToStorageTransform(model, entry);
|
|
15
19
|
await this.storageOperations.entries.update(model, {
|
|
@@ -33,7 +37,8 @@ const RepublishEntryRepository_RepublishEntryRepository = createImplementation({
|
|
|
33
37
|
dependencies: [
|
|
34
38
|
EntryToStorageTransform,
|
|
35
39
|
EntryFromStorageTransform,
|
|
36
|
-
StorageOperations
|
|
40
|
+
StorageOperations,
|
|
41
|
+
RuntimeTenant
|
|
37
42
|
]
|
|
38
43
|
});
|
|
39
44
|
export { RepublishEntryRepository_RepublishEntryRepository as RepublishEntryRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/RepublishEntry/RepublishEntryRepository.js","sources":["../../../../src/features/contentEntry/RepublishEntry/RepublishEntryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { RepublishEntryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\nimport { EntryFromStorageTransform } from \"~/legacy/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\n\n/**\n * RepublishEntryRepository - Handles storage operations for republishing entries.\n *\n * Responsibilities:\n * - Transform entry to storage format\n * - Update the entry in storage\n * - Publish the entry in storage\n * - Transform result back from storage format\n * - Handle storage errors\n */\nclass RepublishEntryRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private entryFromStorageTransform: EntryFromStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n
|
|
1
|
+
{"version":3,"file":"features/contentEntry/RepublishEntry/RepublishEntryRepository.js","sources":["../../../../src/features/contentEntry/RepublishEntry/RepublishEntryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { RepublishEntryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\nimport { EntryFromStorageTransform } from \"~/legacy/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport { RuntimeTenant } from \"~/features/runtimeTenant/abstractions.js\";\n\n/**\n * RepublishEntryRepository - Handles storage operations for republishing entries.\n *\n * Responsibilities:\n * - Transform entry to storage format\n * - Update the entry in storage\n * - Publish the entry in storage\n * - Transform result back from storage format\n * - Handle storage errors\n */\nclass RepublishEntryRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private entryFromStorageTransform: EntryFromStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface,\n private runtimeTenant: RuntimeTenant.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n initialEntry: CmsEntry<T>\n ): Promise<Result<CmsEntry<T>, RepositoryAbstraction.Error>> {\n const model = this.runtimeTenant.assign(initialModel);\n const entry = this.runtimeTenant.assign(initialEntry);\n\n try {\n // Transform entry to storage format\n const storageEntry = await this.entryToStorageTransform<T>(model, entry);\n\n // First update the entry\n await this.storageOperations.entries.update(model, {\n entry,\n storageEntry\n });\n\n // Then publish it\n const result = await this.storageOperations.entries.publish<T>(model, {\n entry,\n storageEntry\n });\n\n // Transform result back from storage format\n const transformedEntry = await this.entryFromStorageTransform<T>(model, result);\n\n return Result.ok(transformedEntry);\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const RepublishEntryRepository = createImplementation({\n abstraction: RepositoryAbstraction,\n implementation: RepublishEntryRepositoryImpl,\n dependencies: [\n EntryToStorageTransform,\n EntryFromStorageTransform,\n StorageOperations,\n RuntimeTenant\n ]\n});\n"],"names":["RepublishEntryRepositoryImpl","entryToStorageTransform","entryFromStorageTransform","storageOperations","runtimeTenant","initialModel","initialEntry","model","entry","storageEntry","result","transformedEntry","Result","error","EntryPersistenceError","RepublishEntryRepository","createImplementation","RepositoryAbstraction","EntryToStorageTransform","EntryFromStorageTransform","StorageOperations","RuntimeTenant"],"mappings":";;;;;;AAoBA,MAAMA;IACF,YACYC,uBAA0D,EAC1DC,yBAA8D,EAC9DC,iBAA8C,EAC9CC,aAAsC,CAChD;aAJUH,uBAAuB,GAAvBA;aACAC,yBAAyB,GAAzBA;aACAC,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAa,QACTC,YAAsB,EACtBC,YAAyB,EACgC;QACzD,MAAMC,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QACxC,MAAMG,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QAExC,IAAI;YAEA,MAAMG,eAAe,MAAM,IAAI,CAAC,uBAAuB,CAAIF,OAAOC;YAGlE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAACD,OAAO;gBAC/CC;gBACAC;YACJ;YAGA,MAAMC,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAIH,OAAO;gBAClEC;gBACAC;YACJ;YAGA,MAAME,mBAAmB,MAAM,IAAI,CAAC,yBAAyB,CAAIJ,OAAOG;YAExE,OAAOE,OAAO,EAAE,CAACD;QACrB,EAAE,OAAOE,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,oDAA2BC,qBAAqB;IACzD,aAAaC;IACb,gBAAgBjB;IAChB,cAAc;QACVkB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -3,6 +3,7 @@ import { RestoreEntryFromBinRepository as RepositoryAbstraction } from "./abstra
|
|
|
3
3
|
import { StorageOperations } from "../../../features/shared/abstractions.js";
|
|
4
4
|
import { EntryFromStorageTransform, EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
5
5
|
import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js";
|
|
6
|
+
import { RuntimeTenant } from "../../../features/runtimeTenant/abstractions.js";
|
|
6
7
|
/**
|
|
7
8
|
* RestoreEntryFromBinRepository - Handles storage operations for restoring entries from bin.
|
|
8
9
|
*
|
|
@@ -16,8 +17,9 @@ declare class RestoreEntryFromBinRepositoryImpl implements RepositoryAbstraction
|
|
|
16
17
|
private entryToStorageTransform;
|
|
17
18
|
private entryFromStorageTransform;
|
|
18
19
|
private storageOperations;
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
private runtimeTenant;
|
|
21
|
+
constructor(entryToStorageTransform: EntryToStorageTransform.Interface, entryFromStorageTransform: EntryFromStorageTransform.Interface, storageOperations: StorageOperations.Interface, runtimeTenant: RuntimeTenant.Interface);
|
|
22
|
+
execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, initialEntry: CmsEntry<T>): Promise<Result<CmsEntry<T>, RepositoryAbstraction.Error>>;
|
|
21
23
|
}
|
|
22
24
|
export declare const RestoreEntryFromBinRepository: import("@webiny/di").Implementation<typeof RestoreEntryFromBinRepositoryImpl>;
|
|
23
25
|
export {};
|
|
@@ -3,13 +3,17 @@ import { RestoreEntryFromBinRepository } from "./abstractions.js";
|
|
|
3
3
|
import { StorageOperations } from "../../shared/abstractions.js";
|
|
4
4
|
import { EntryFromStorageTransform, EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
5
5
|
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
6
|
+
import { RuntimeTenant } from "../../runtimeTenant/abstractions.js";
|
|
6
7
|
class RestoreEntryFromBinRepositoryImpl {
|
|
7
|
-
constructor(entryToStorageTransform, entryFromStorageTransform, storageOperations){
|
|
8
|
+
constructor(entryToStorageTransform, entryFromStorageTransform, storageOperations, runtimeTenant){
|
|
8
9
|
this.entryToStorageTransform = entryToStorageTransform;
|
|
9
10
|
this.entryFromStorageTransform = entryFromStorageTransform;
|
|
10
11
|
this.storageOperations = storageOperations;
|
|
12
|
+
this.runtimeTenant = runtimeTenant;
|
|
11
13
|
}
|
|
12
|
-
async execute(
|
|
14
|
+
async execute(initialModel, initialEntry) {
|
|
15
|
+
const model = this.runtimeTenant.assign(initialModel);
|
|
16
|
+
const entry = this.runtimeTenant.assign(initialEntry);
|
|
13
17
|
try {
|
|
14
18
|
const storageEntry = await this.entryToStorageTransform(model, entry);
|
|
15
19
|
const result = await this.storageOperations.entries.restoreFromBin(model, {
|
|
@@ -29,7 +33,8 @@ const RestoreEntryFromBinRepository_RestoreEntryFromBinRepository = createImplem
|
|
|
29
33
|
dependencies: [
|
|
30
34
|
EntryToStorageTransform,
|
|
31
35
|
EntryFromStorageTransform,
|
|
32
|
-
StorageOperations
|
|
36
|
+
StorageOperations,
|
|
37
|
+
RuntimeTenant
|
|
33
38
|
]
|
|
34
39
|
});
|
|
35
40
|
export { RestoreEntryFromBinRepository_RestoreEntryFromBinRepository as RestoreEntryFromBinRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js","sources":["../../../../src/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.ts"],"sourcesContent":["import { createImplementation, Result } from \"@webiny/feature/api\";\nimport { RestoreEntryFromBinRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryFromStorageTransform, EntryToStorageTransform } from \"~/legacy/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\n\n/**\n * RestoreEntryFromBinRepository - Handles storage operations for restoring entries from bin.\n *\n * Responsibilities:\n * - Transform entry to storage format\n * - Call storage operation to restore entry\n * - Transform result back from storage format\n * - Handle storage errors\n */\nclass RestoreEntryFromBinRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private entryFromStorageTransform: EntryFromStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n
|
|
1
|
+
{"version":3,"file":"features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js","sources":["../../../../src/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.ts"],"sourcesContent":["import { createImplementation, Result } from \"@webiny/feature/api\";\nimport { RestoreEntryFromBinRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryFromStorageTransform, EntryToStorageTransform } from \"~/legacy/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport { RuntimeTenant } from \"~/features/runtimeTenant/abstractions.js\";\n\n/**\n * RestoreEntryFromBinRepository - Handles storage operations for restoring entries from bin.\n *\n * Responsibilities:\n * - Transform entry to storage format\n * - Call storage operation to restore entry\n * - Transform result back from storage format\n * - Handle storage errors\n */\nclass RestoreEntryFromBinRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private entryFromStorageTransform: EntryFromStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface,\n private runtimeTenant: RuntimeTenant.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n initialEntry: CmsEntry<T>\n ): Promise<Result<CmsEntry<T>, RepositoryAbstraction.Error>> {\n const model = this.runtimeTenant.assign(initialModel);\n const entry = this.runtimeTenant.assign(initialEntry);\n\n try {\n // Transform entry to storage format\n const storageEntry = await this.entryToStorageTransform<T>(model, entry);\n\n // Call storage operation\n const result = await this.storageOperations.entries.restoreFromBin<T>(model, {\n entry,\n storageEntry\n });\n\n // Transform result back from storage format\n const transformedEntry = await this.entryFromStorageTransform<T>(model, result);\n\n return Result.ok(transformedEntry);\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const RestoreEntryFromBinRepository = createImplementation({\n abstraction: RepositoryAbstraction,\n implementation: RestoreEntryFromBinRepositoryImpl,\n dependencies: [\n EntryToStorageTransform,\n EntryFromStorageTransform,\n StorageOperations,\n RuntimeTenant\n ]\n});\n"],"names":["RestoreEntryFromBinRepositoryImpl","entryToStorageTransform","entryFromStorageTransform","storageOperations","runtimeTenant","initialModel","initialEntry","model","entry","storageEntry","result","transformedEntry","Result","error","EntryPersistenceError","RestoreEntryFromBinRepository","createImplementation","RepositoryAbstraction","EntryToStorageTransform","EntryFromStorageTransform","StorageOperations","RuntimeTenant"],"mappings":";;;;;;AAiBA,MAAMA;IACF,YACYC,uBAA0D,EAC1DC,yBAA8D,EAC9DC,iBAA8C,EAC9CC,aAAsC,CAChD;aAJUH,uBAAuB,GAAvBA;aACAC,yBAAyB,GAAzBA;aACAC,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAa,QACTC,YAAsB,EACtBC,YAAyB,EACgC;QACzD,MAAMC,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QACxC,MAAMG,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QAExC,IAAI;YAEA,MAAMG,eAAe,MAAM,IAAI,CAAC,uBAAuB,CAAIF,OAAOC;YAGlE,MAAME,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAIH,OAAO;gBACzEC;gBACAC;YACJ;YAGA,MAAME,mBAAmB,MAAM,IAAI,CAAC,yBAAyB,CAAIJ,OAAOG;YAExE,OAAOE,OAAO,EAAE,CAACD;QACrB,EAAE,OAAOE,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,8DAAgCC,qBAAqB;IAC9D,aAAaC;IACb,gBAAgBjB;IAChB,cAAc;QACVkB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -4,6 +4,7 @@ import type { CmsEntry, CmsEntryValues } from "../../../types/index.js";
|
|
|
4
4
|
import type { CmsModel } from "../../../types/index.js";
|
|
5
5
|
import { StorageOperations } from "../../../features/shared/abstractions.js";
|
|
6
6
|
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
7
|
+
import { RuntimeTenant } from "../../../features/runtimeTenant/abstractions.js";
|
|
7
8
|
/**
|
|
8
9
|
* UnpublishEntryRepository - Handles persistence of entry unpublish.
|
|
9
10
|
* Transforms domain entry to storage format and persists unpublish operation.
|
|
@@ -11,8 +12,9 @@ import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
|
11
12
|
declare class UnpublishEntryRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
12
13
|
private entryToStorageTransform;
|
|
13
14
|
private storageOperations;
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
private runtimeTenant;
|
|
16
|
+
constructor(entryToStorageTransform: EntryToStorageTransform.Interface, storageOperations: StorageOperations.Interface, runtimeTenant: RuntimeTenant.Interface);
|
|
17
|
+
execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, initialEntry: CmsEntry<T>): Promise<Result<CmsEntry<T>, RepositoryAbstraction.Error>>;
|
|
16
18
|
}
|
|
17
19
|
export declare const UnpublishEntryRepository: import("@webiny/di").Implementation<typeof UnpublishEntryRepositoryImpl>;
|
|
18
20
|
export {};
|
|
@@ -3,12 +3,16 @@ import { UnpublishEntryRepository } from "./abstractions.js";
|
|
|
3
3
|
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
4
4
|
import { StorageOperations } from "../../shared/abstractions.js";
|
|
5
5
|
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
|
+
import { RuntimeTenant } from "../../runtimeTenant/abstractions.js";
|
|
6
7
|
class UnpublishEntryRepositoryImpl {
|
|
7
|
-
constructor(entryToStorageTransform, storageOperations){
|
|
8
|
+
constructor(entryToStorageTransform, storageOperations, runtimeTenant){
|
|
8
9
|
this.entryToStorageTransform = entryToStorageTransform;
|
|
9
10
|
this.storageOperations = storageOperations;
|
|
11
|
+
this.runtimeTenant = runtimeTenant;
|
|
10
12
|
}
|
|
11
|
-
async execute(
|
|
13
|
+
async execute(initialModel, initialEntry) {
|
|
14
|
+
const model = this.runtimeTenant.assign(initialModel);
|
|
15
|
+
const entry = this.runtimeTenant.assign(initialEntry);
|
|
12
16
|
try {
|
|
13
17
|
const storageEntry = await this.entryToStorageTransform(model, entry);
|
|
14
18
|
const result = await this.storageOperations.entries.unpublish(model, {
|
|
@@ -26,7 +30,8 @@ const UnpublishEntryRepository_UnpublishEntryRepository = createImplementation({
|
|
|
26
30
|
implementation: UnpublishEntryRepositoryImpl,
|
|
27
31
|
dependencies: [
|
|
28
32
|
EntryToStorageTransform,
|
|
29
|
-
StorageOperations
|
|
33
|
+
StorageOperations,
|
|
34
|
+
RuntimeTenant
|
|
30
35
|
]
|
|
31
36
|
});
|
|
32
37
|
export { UnpublishEntryRepository_UnpublishEntryRepository as UnpublishEntryRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js","sources":["../../../../src/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { UnpublishEntryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport type { CmsEntry, CmsEntryValues } from \"~/types/index.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\n\n/**\n * UnpublishEntryRepository - Handles persistence of entry unpublish.\n * Transforms domain entry to storage format and persists unpublish operation.\n */\nclass UnpublishEntryRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n
|
|
1
|
+
{"version":3,"file":"features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js","sources":["../../../../src/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { UnpublishEntryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport type { CmsEntry, CmsEntryValues } from \"~/types/index.js\";\nimport type { CmsModel } from \"~/types/index.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\nimport { RuntimeTenant } from \"~/features/runtimeTenant/abstractions.js\";\n\n/**\n * UnpublishEntryRepository - Handles persistence of entry unpublish.\n * Transforms domain entry to storage format and persists unpublish operation.\n */\nclass UnpublishEntryRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface,\n private runtimeTenant: RuntimeTenant.Interface\n ) {}\n\n public async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n initialEntry: CmsEntry<T>\n ): Promise<Result<CmsEntry<T>, RepositoryAbstraction.Error>> {\n const model = this.runtimeTenant.assign(initialModel);\n const entry = this.runtimeTenant.assign(initialEntry);\n\n try {\n // Transform domain entry to storage format\n const storageEntry = await this.entryToStorageTransform<T>(model, entry);\n\n // Persist unpublish to storage\n const result = await this.storageOperations.entries.unpublish<T>(model, {\n entry,\n storageEntry\n });\n\n return Result.ok(result);\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const UnpublishEntryRepository = createImplementation({\n abstraction: RepositoryAbstraction,\n implementation: UnpublishEntryRepositoryImpl,\n dependencies: [EntryToStorageTransform, StorageOperations, RuntimeTenant]\n});\n"],"names":["UnpublishEntryRepositoryImpl","entryToStorageTransform","storageOperations","runtimeTenant","initialModel","initialEntry","model","entry","storageEntry","result","Result","error","EntryPersistenceError","UnpublishEntryRepository","createImplementation","RepositoryAbstraction","EntryToStorageTransform","StorageOperations","RuntimeTenant"],"mappings":";;;;;;AAcA,MAAMA;IACF,YACYC,uBAA0D,EAC1DC,iBAA8C,EAC9CC,aAAsC,CAChD;aAHUF,uBAAuB,GAAvBA;aACAC,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAa,QACTC,YAAsB,EACtBC,YAAyB,EACgC;QACzD,MAAMC,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QACxC,MAAMG,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QAExC,IAAI;YAEA,MAAMG,eAAe,MAAM,IAAI,CAAC,uBAAuB,CAAIF,OAAOC;YAGlE,MAAME,SAAS,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAIH,OAAO;gBACpEC;gBACAC;YACJ;YAEA,OAAOE,OAAO,EAAE,CAACD;QACrB,EAAE,OAAOE,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,oDAA2BC,qBAAqB;IACzD,aAAaC;IACb,gBAAgBf;IAChB,cAAc;QAACgB;QAAyBC;QAAmBC;KAAc;AAC7E"}
|
|
@@ -3,6 +3,7 @@ import { UpdateEntryRepository as RepositoryAbstraction } from "./abstractions.j
|
|
|
3
3
|
import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js";
|
|
4
4
|
import { StorageOperations } from "../../../features/shared/abstractions.js";
|
|
5
5
|
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
|
+
import { RuntimeTenant } from "../../../features/runtimeTenant/abstractions.js";
|
|
6
7
|
/**
|
|
7
8
|
* UpdateEntryRepository - Handles persistence of entry updates.
|
|
8
9
|
* Transforms domain entry to storage format and persists changes.
|
|
@@ -10,8 +11,9 @@ import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
|
10
11
|
declare class UpdateEntryRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
11
12
|
private entryToStorageTransform;
|
|
12
13
|
private storageOperations;
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
private readonly runtimeTenant;
|
|
15
|
+
constructor(entryToStorageTransform: EntryToStorageTransform.Interface, storageOperations: StorageOperations.Interface, runtimeTenant: RuntimeTenant.Interface);
|
|
16
|
+
execute<T extends CmsEntryValues = CmsEntryValues>(initialModel: CmsModel, initialEntry: CmsEntry<T>): Promise<Result<void, RepositoryAbstraction.Error>>;
|
|
15
17
|
}
|
|
16
18
|
export declare const UpdateEntryRepository: import("@webiny/di").Implementation<typeof UpdateEntryRepositoryImpl>;
|
|
17
19
|
export {};
|
|
@@ -3,12 +3,16 @@ import { UpdateEntryRepository } from "./abstractions.js";
|
|
|
3
3
|
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
4
4
|
import { StorageOperations } from "../../shared/abstractions.js";
|
|
5
5
|
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
|
+
import { RuntimeTenant } from "../../runtimeTenant/abstractions.js";
|
|
6
7
|
class UpdateEntryRepositoryImpl {
|
|
7
|
-
constructor(entryToStorageTransform, storageOperations){
|
|
8
|
+
constructor(entryToStorageTransform, storageOperations, runtimeTenant){
|
|
8
9
|
this.entryToStorageTransform = entryToStorageTransform;
|
|
9
10
|
this.storageOperations = storageOperations;
|
|
11
|
+
this.runtimeTenant = runtimeTenant;
|
|
10
12
|
}
|
|
11
|
-
async execute(
|
|
13
|
+
async execute(initialModel, initialEntry) {
|
|
14
|
+
const model = this.runtimeTenant.assign(initialModel);
|
|
15
|
+
const entry = this.runtimeTenant.assign(initialEntry);
|
|
12
16
|
try {
|
|
13
17
|
const storageEntry = await this.entryToStorageTransform(model, entry);
|
|
14
18
|
await this.storageOperations.entries.update(model, {
|
|
@@ -26,7 +30,8 @@ const UpdateEntryRepository_UpdateEntryRepository = createImplementation({
|
|
|
26
30
|
implementation: UpdateEntryRepositoryImpl,
|
|
27
31
|
dependencies: [
|
|
28
32
|
EntryToStorageTransform,
|
|
29
|
-
StorageOperations
|
|
33
|
+
StorageOperations,
|
|
34
|
+
RuntimeTenant
|
|
30
35
|
]
|
|
31
36
|
});
|
|
32
37
|
export { UpdateEntryRepository_UpdateEntryRepository as UpdateEntryRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/UpdateEntry/UpdateEntryRepository.js","sources":["../../../../src/features/contentEntry/UpdateEntry/UpdateEntryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { UpdateEntryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\n\n/**\n * UpdateEntryRepository - Handles persistence of entry updates.\n * Transforms domain entry to storage format and persists changes.\n */\nclass UpdateEntryRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n
|
|
1
|
+
{"version":3,"file":"features/contentEntry/UpdateEntry/UpdateEntryRepository.js","sources":["../../../../src/features/contentEntry/UpdateEntry/UpdateEntryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { UpdateEntryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\nimport { RuntimeTenant } from \"~/features/runtimeTenant/abstractions.js\";\n\n/**\n * UpdateEntryRepository - Handles persistence of entry updates.\n * Transforms domain entry to storage format and persists changes.\n */\nclass UpdateEntryRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface,\n private readonly runtimeTenant: RuntimeTenant.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n initialModel: CmsModel,\n initialEntry: CmsEntry<T>\n ): Promise<Result<void, RepositoryAbstraction.Error>> {\n const model = this.runtimeTenant.assign(initialModel);\n const entry = this.runtimeTenant.assign(initialEntry);\n\n try {\n // Transform domain entry to storage format\n const storageEntry = await this.entryToStorageTransform<T>(model, entry);\n\n // Persist to storage\n await this.storageOperations.entries.update<T>(model, {\n entry,\n storageEntry\n });\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const UpdateEntryRepository = createImplementation({\n abstraction: RepositoryAbstraction,\n implementation: UpdateEntryRepositoryImpl,\n dependencies: [EntryToStorageTransform, StorageOperations, RuntimeTenant]\n});\n"],"names":["UpdateEntryRepositoryImpl","entryToStorageTransform","storageOperations","runtimeTenant","initialModel","initialEntry","model","entry","storageEntry","Result","error","EntryPersistenceError","UpdateEntryRepository","createImplementation","RepositoryAbstraction","EntryToStorageTransform","StorageOperations","RuntimeTenant"],"mappings":";;;;;;AAaA,MAAMA;IACF,YACYC,uBAA0D,EAC1DC,iBAA8C,EACrCC,aAAsC,CACzD;aAHUF,uBAAuB,GAAvBA;aACAC,iBAAiB,GAAjBA;aACSC,aAAa,GAAbA;IAClB;IAEH,MAAM,QACFC,YAAsB,EACtBC,YAAyB,EACyB;QAClD,MAAMC,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QACxC,MAAMG,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF;QAExC,IAAI;YAEA,MAAMG,eAAe,MAAM,IAAI,CAAC,uBAAuB,CAAIF,OAAOC;YAGlE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAID,OAAO;gBAClDC;gBACAC;YACJ;YAEA,OAAOC,OAAO,EAAE;QACpB,EAAE,OAAOC,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,8CAAwBC,qBAAqB;IACtD,aAAaC;IACb,gBAAgBd;IAChB,cAAc;QAACe;QAAyBC;QAAmBC;KAAc;AAC7E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateRevisionRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
|
+
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
4
|
+
import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js";
|
|
5
|
+
import { StorageOperations } from "../../../features/shared/abstractions.js";
|
|
6
|
+
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
7
|
+
declare class UpdateRevisionRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
8
|
+
private entryToStorageTransform;
|
|
9
|
+
private storageOperations;
|
|
10
|
+
constructor(entryToStorageTransform: EntryToStorageTransform.Interface, storageOperations: StorageOperations.Interface);
|
|
11
|
+
execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, entry: CmsEntry<T>): Promise<Result<void, EntryPersistenceError>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const UpdateRevisionRepository: import("@webiny/di").Implementation<typeof UpdateRevisionRepositoryImpl>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateRevisionRepository } from "./abstractions.js";
|
|
3
|
+
import { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
4
|
+
import { StorageOperations } from "../../shared/abstractions.js";
|
|
5
|
+
import { EntryToStorageTransform } from "../../../legacy/abstractions.js";
|
|
6
|
+
class UpdateRevisionRepositoryImpl {
|
|
7
|
+
constructor(entryToStorageTransform, storageOperations){
|
|
8
|
+
this.entryToStorageTransform = entryToStorageTransform;
|
|
9
|
+
this.storageOperations = storageOperations;
|
|
10
|
+
}
|
|
11
|
+
async execute(model, entry) {
|
|
12
|
+
try {
|
|
13
|
+
const storageEntry = await this.entryToStorageTransform(model, entry);
|
|
14
|
+
await this.storageOperations.entries.updateRevision(model, {
|
|
15
|
+
entry,
|
|
16
|
+
storageEntry
|
|
17
|
+
});
|
|
18
|
+
return Result.ok();
|
|
19
|
+
} catch (error) {
|
|
20
|
+
return Result.fail(new EntryPersistenceError(error));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const UpdateRevisionRepository_UpdateRevisionRepository = createImplementation({
|
|
25
|
+
abstraction: UpdateRevisionRepository,
|
|
26
|
+
implementation: UpdateRevisionRepositoryImpl,
|
|
27
|
+
dependencies: [
|
|
28
|
+
EntryToStorageTransform,
|
|
29
|
+
StorageOperations
|
|
30
|
+
]
|
|
31
|
+
});
|
|
32
|
+
export { UpdateRevisionRepository_UpdateRevisionRepository as UpdateRevisionRepository };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=UpdateRevisionRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/contentEntry/UpdateRevision/UpdateRevisionRepository.js","sources":["../../../../src/features/contentEntry/UpdateRevision/UpdateRevisionRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { UpdateRevisionRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { StorageOperations } from \"~/features/shared/abstractions.js\";\nimport { EntryToStorageTransform } from \"~/legacy/abstractions.js\";\n\nclass UpdateRevisionRepositoryImpl implements RepositoryAbstraction.Interface {\n public constructor(\n private entryToStorageTransform: EntryToStorageTransform.Interface,\n private storageOperations: StorageOperations.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n entry: CmsEntry<T>\n ): Promise<Result<void, EntryPersistenceError>> {\n try {\n const storageEntry = await this.entryToStorageTransform<T>(model, entry);\n\n await this.storageOperations.entries.updateRevision<T>(model, {\n entry,\n storageEntry\n });\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new EntryPersistenceError(error as Error));\n }\n }\n}\n\nexport const UpdateRevisionRepository = createImplementation({\n abstraction: RepositoryAbstraction,\n implementation: UpdateRevisionRepositoryImpl,\n dependencies: [EntryToStorageTransform, StorageOperations]\n});\n"],"names":["UpdateRevisionRepositoryImpl","entryToStorageTransform","storageOperations","model","entry","storageEntry","Result","error","EntryPersistenceError","UpdateRevisionRepository","createImplementation","RepositoryAbstraction","EntryToStorageTransform","StorageOperations"],"mappings":";;;;;AAQA,MAAMA;IACF,YACYC,uBAA0D,EAC1DC,iBAA8C,CACxD;aAFUD,uBAAuB,GAAvBA;aACAC,iBAAiB,GAAjBA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,KAAkB,EAC0B;QAC5C,IAAI;YACA,MAAMC,eAAe,MAAM,IAAI,CAAC,uBAAuB,CAAIF,OAAOC;YAElE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAID,OAAO;gBAC1DC;gBACAC;YACJ;YAEA,OAAOC,OAAO,EAAE;QACpB,EAAE,OAAOC,OAAO;YACZ,OAAOD,OAAO,IAAI,CAAC,IAAIE,sBAAsBD;QACjD;IACJ;AACJ;AAEO,MAAME,oDAA2BC,qBAAqB;IACzD,aAAaC;IACb,gBAAgBX;IAChB,cAAc;QAACY;QAAyBC;KAAkB;AAC9D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import type { CmsEntry, CmsModel } from "../../../types/index.js";
|
|
3
|
+
import type { EntryPersistenceError } from "../../../domain/contentEntry/errors.js";
|
|
4
|
+
export interface IUpdateRevisionRepository {
|
|
5
|
+
execute(model: CmsModel, entry: CmsEntry): Promise<Result<void, EntryPersistenceError>>;
|
|
6
|
+
}
|
|
7
|
+
export declare const UpdateRevisionRepository: import("@webiny/di").Abstraction<IUpdateRevisionRepository>;
|
|
8
|
+
export declare namespace UpdateRevisionRepository {
|
|
9
|
+
type Interface = IUpdateRevisionRepository;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/contentEntry/UpdateRevision/abstractions.js","sources":["../../../../src/features/contentEntry/UpdateRevision/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { CmsEntry, CmsModel } from \"~/types/index.js\";\nimport type { EntryPersistenceError } from \"~/domain/contentEntry/errors.js\";\n\nexport interface IUpdateRevisionRepository {\n execute(model: CmsModel, entry: CmsEntry): Promise<Result<void, EntryPersistenceError>>;\n}\n\nexport const UpdateRevisionRepository = createAbstraction<IUpdateRevisionRepository>(\n \"UpdateRevisionRepository\"\n);\n\nexport namespace UpdateRevisionRepository {\n export type Interface = IUpdateRevisionRepository;\n}\n"],"names":["UpdateRevisionRepository","createAbstraction"],"mappings":";AAQO,MAAMA,2BAA2BC,kBACpC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateRevisionRepository } from "./UpdateRevisionRepository.js";
|
|
3
|
+
const UpdateRevisionFeature = createFeature({
|
|
4
|
+
name: "UpdateRevision",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(UpdateRevisionRepository);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { UpdateRevisionFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/contentEntry/UpdateRevision/feature.js","sources":["../../../../src/features/contentEntry/UpdateRevision/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateRevisionRepository } from \"./UpdateRevisionRepository.js\";\n\nexport const UpdateRevisionFeature = createFeature({\n name: \"UpdateRevision\",\n register(container) {\n container.register(UpdateRevisionRepository);\n }\n});\n"],"names":["UpdateRevisionFeature","createFeature","container","UpdateRevisionRepository"],"mappings":";;AAGO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UpdateRevisionRepository } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UpdateRevisionRepository } from "./abstractions.js";
|
package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.d.ts
CHANGED
|
@@ -3,14 +3,14 @@ import { UpdateRevisionDescriptionUseCase as UseCaseAbstraction } from "./abstra
|
|
|
3
3
|
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
4
4
|
import { AccessControl } from "../../../features/shared/abstractions.js";
|
|
5
5
|
import { GetRevisionByIdUseCase } from "../../../features/contentEntry/GetRevisionById/abstractions.js";
|
|
6
|
+
import { UpdateRevisionRepository } from "../../../features/contentEntry/UpdateRevision/abstractions.js";
|
|
6
7
|
import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js";
|
|
7
|
-
import { UpdateEntryRepository } from "../UpdateEntry/index.js";
|
|
8
8
|
declare class UpdateRevisionDescriptionUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
9
9
|
private eventPublisher;
|
|
10
10
|
private repository;
|
|
11
11
|
private accessControl;
|
|
12
12
|
private getRevisionByIdUseCase;
|
|
13
|
-
constructor(eventPublisher: EventPublisher.Interface, repository:
|
|
13
|
+
constructor(eventPublisher: EventPublisher.Interface, repository: UpdateRevisionRepository.Interface, accessControl: AccessControl.Interface, getRevisionByIdUseCase: GetRevisionByIdUseCase.Interface);
|
|
14
14
|
execute<T extends CmsEntryValues = CmsEntryValues>(model: CmsModel, id: string, revisionDescription: string | undefined): Promise<Result<CmsEntry<T>, UseCaseAbstraction.Error>>;
|
|
15
15
|
}
|
|
16
16
|
export declare const UpdateRevisionDescriptionUseCase: import("@webiny/di").Implementation<typeof UpdateRevisionDescriptionUseCaseImpl>;
|
|
@@ -4,8 +4,8 @@ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.j
|
|
|
4
4
|
import { EntryAfterUpdateRevisionDescriptionEvent, EntryBeforeUpdateRevisionDescriptionEvent } from "./events.js";
|
|
5
5
|
import { AccessControl } from "../../shared/abstractions.js";
|
|
6
6
|
import { GetRevisionByIdUseCase } from "../GetRevisionById/abstractions.js";
|
|
7
|
+
import { UpdateRevisionRepository } from "../UpdateRevision/abstractions.js";
|
|
7
8
|
import { EntryNotAuthorizedError } from "../../../domain/contentEntry/errors.js";
|
|
8
|
-
import { UpdateEntryRepository } from "../UpdateEntry/index.js";
|
|
9
9
|
class UpdateRevisionDescriptionUseCaseImpl {
|
|
10
10
|
constructor(eventPublisher, repository, accessControl, getRevisionByIdUseCase){
|
|
11
11
|
this.eventPublisher = eventPublisher;
|
|
@@ -58,7 +58,7 @@ const UpdateRevisionDescriptionUseCase_UpdateRevisionDescriptionUseCase = create
|
|
|
58
58
|
implementation: UpdateRevisionDescriptionUseCaseImpl,
|
|
59
59
|
dependencies: [
|
|
60
60
|
EventPublisher,
|
|
61
|
-
|
|
61
|
+
UpdateRevisionRepository,
|
|
62
62
|
AccessControl,
|
|
63
63
|
GetRevisionByIdUseCase
|
|
64
64
|
]
|
package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js","sources":["../../../../src/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.ts"],"sourcesContent":["import { createImplementation, Result } from \"@webiny/feature/api\";\nimport { UpdateRevisionDescriptionUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n EntryAfterUpdateRevisionDescriptionEvent,\n EntryBeforeUpdateRevisionDescriptionEvent\n} from \"./events.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"~/features/contentEntry/GetRevisionById/abstractions.js\";\nimport
|
|
1
|
+
{"version":3,"file":"features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js","sources":["../../../../src/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.ts"],"sourcesContent":["import { createImplementation, Result } from \"@webiny/feature/api\";\nimport { UpdateRevisionDescriptionUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n EntryAfterUpdateRevisionDescriptionEvent,\n EntryBeforeUpdateRevisionDescriptionEvent\n} from \"./events.js\";\nimport { AccessControl } from \"~/features/shared/abstractions.js\";\nimport { GetRevisionByIdUseCase } from \"~/features/contentEntry/GetRevisionById/abstractions.js\";\nimport { UpdateRevisionRepository } from \"~/features/contentEntry/UpdateRevision/abstractions.js\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"~/types/index.js\";\nimport { EntryNotAuthorizedError } from \"~/domain/contentEntry/errors.js\";\n\nclass UpdateRevisionDescriptionUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateRevisionRepository.Interface,\n private accessControl: AccessControl.Interface,\n private getRevisionByIdUseCase: GetRevisionByIdUseCase.Interface\n ) {}\n\n async execute<T extends CmsEntryValues = CmsEntryValues>(\n model: CmsModel,\n id: string,\n revisionDescription: string | undefined\n ): Promise<Result<CmsEntry<T>, UseCaseAbstraction.Error>> {\n const canAccess = await this.accessControl.canAccessEntry({ model, rwd: \"w\" });\n if (!canAccess) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n try {\n const result = await this.getRevisionByIdUseCase.execute<T>(model, id);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n const originalEntry = result.value;\n\n const entry = {\n ...originalEntry,\n revisionDescription\n };\n\n const canAccessEntry = await this.accessControl.canAccessEntry({\n model,\n entry,\n rwd: \"w\"\n });\n\n if (!canAccessEntry) {\n return Result.fail(EntryNotAuthorizedError.fromModel(model));\n }\n\n await this.eventPublisher.publish(\n new EntryBeforeUpdateRevisionDescriptionEvent({\n entry,\n original: originalEntry,\n revisionDescription,\n model\n })\n );\n\n const updateResult = await this.repository.execute(model, entry);\n if (updateResult.isFail()) {\n return Result.fail(updateResult.error);\n }\n\n await this.eventPublisher.publish(\n new EntryAfterUpdateRevisionDescriptionEvent({\n entry,\n original: originalEntry,\n revisionDescription,\n model\n })\n );\n\n return Result.ok(entry);\n } catch (error) {\n return Result.fail(error as UseCaseAbstraction.Error);\n }\n }\n}\n\nexport const UpdateRevisionDescriptionUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: UpdateRevisionDescriptionUseCaseImpl,\n dependencies: [EventPublisher, UpdateRevisionRepository, AccessControl, GetRevisionByIdUseCase]\n});\n"],"names":["UpdateRevisionDescriptionUseCaseImpl","eventPublisher","repository","accessControl","getRevisionByIdUseCase","model","id","revisionDescription","canAccess","Result","EntryNotAuthorizedError","result","originalEntry","entry","canAccessEntry","EntryBeforeUpdateRevisionDescriptionEvent","updateResult","EntryAfterUpdateRevisionDescriptionEvent","error","UpdateRevisionDescriptionUseCase","createImplementation","UseCaseAbstraction","EventPublisher","UpdateRevisionRepository","AccessControl","GetRevisionByIdUseCase"],"mappings":";;;;;;;;AAaA,MAAMA;IACF,YACYC,cAAwC,EACxCC,UAA8C,EAC9CC,aAAsC,EACtCC,sBAAwD,CAClE;aAJUH,cAAc,GAAdA;aACAC,UAAU,GAAVA;aACAC,aAAa,GAAbA;aACAC,sBAAsB,GAAtBA;IACT;IAEH,MAAM,QACFC,KAAe,EACfC,EAAU,EACVC,mBAAuC,EACe;QACtD,MAAMC,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAAEH;YAAO,KAAK;QAAI;QAC5E,IAAI,CAACG,WACD,OAAOC,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACL;QAGzD,IAAI;YACA,MAAMM,SAAS,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAIN,OAAOC;YAEnE,IAAIK,OAAO,MAAM,IACb,OAAOF,OAAO,IAAI,CAACE,OAAO,KAAK;YAGnC,MAAMC,gBAAgBD,OAAO,KAAK;YAElC,MAAME,QAAQ;gBACV,GAAGD,aAAa;gBAChBL;YACJ;YAEA,MAAMO,iBAAiB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;gBAC3DT;gBACAQ;gBACA,KAAK;YACT;YAEA,IAAI,CAACC,gBACD,OAAOL,OAAO,IAAI,CAACC,wBAAwB,SAAS,CAACL;YAGzD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIU,0CAA0C;gBAC1CF;gBACA,UAAUD;gBACVL;gBACAF;YACJ;YAGJ,MAAMW,eAAe,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACX,OAAOQ;YAC1D,IAAIG,aAAa,MAAM,IACnB,OAAOP,OAAO,IAAI,CAACO,aAAa,KAAK;YAGzC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,yCAAyC;gBACzCJ;gBACA,UAAUD;gBACVL;gBACAF;YACJ;YAGJ,OAAOI,OAAO,EAAE,CAACI;QACrB,EAAE,OAAOK,OAAO;YACZ,OAAOT,OAAO,IAAI,CAACS;QACvB;IACJ;AACJ;AAEO,MAAMC,oEAAmCC,qBAAqB;IACjE,aAAaC;IACb,gBAAgBrB;IAChB,cAAc;QAACsB;QAAgBC;QAA0BC;QAAeC;KAAuB;AACnG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CmsModelAst, CmsEntryValues } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Walk entry values using the model AST and assign a stable `_id` to every
|
|
4
|
+
* object and dynamic-zone value — both list items and single values.
|
|
5
|
+
*
|
|
6
|
+
* - Values that already carry an `_id` keep it.
|
|
7
|
+
* - Values without `_id` get a newly generated one.
|
|
8
|
+
* - Duplicate `_id` values within a list array are silently regenerated.
|
|
9
|
+
*
|
|
10
|
+
* Uses `ContentEntryTraverser` so nested objects / dynamic zones are handled
|
|
11
|
+
* automatically — no manual recursion needed.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ensureItemIds(modelAst: CmsModelAst, values: CmsEntryValues): Promise<void>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { generateAlphaNumericLowerCaseId } from "@webiny/utils";
|
|
2
|
+
import { ContentEntryTraverser } from "./ContentEntryTraverser/ContentEntryTraverser.js";
|
|
3
|
+
async function ensureItemIds(modelAst, values) {
|
|
4
|
+
const traverser = new ContentEntryTraverser(modelAst);
|
|
5
|
+
await traverser.traverse(values, async ({ field, value })=>{
|
|
6
|
+
if ("object" !== field.type && "dynamicZone" !== field.type) return;
|
|
7
|
+
if (field.list && Array.isArray(value)) {
|
|
8
|
+
const seen = new Set();
|
|
9
|
+
for (const item of value)if (null != item && "object" == typeof item) {
|
|
10
|
+
if (!item._id || seen.has(item._id)) item._id = generateAlphaNumericLowerCaseId(12);
|
|
11
|
+
seen.add(item._id);
|
|
12
|
+
}
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (!field.list && null != value && "object" == typeof value && !Array.isArray(value)) {
|
|
16
|
+
if (!value._id) value._id = generateAlphaNumericLowerCaseId(12);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export { ensureItemIds };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=ensureItemIds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/contentEntry/ensureItemIds.js","sources":["../../../src/features/contentEntry/ensureItemIds.ts"],"sourcesContent":["import { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport type { CmsModelAst, CmsEntryValues } from \"~/types/index.js\";\nimport { ContentEntryTraverser } from \"./ContentEntryTraverser/ContentEntryTraverser.js\";\n\n/**\n * Walk entry values using the model AST and assign a stable `_id` to every\n * object and dynamic-zone value — both list items and single values.\n *\n * - Values that already carry an `_id` keep it.\n * - Values without `_id` get a newly generated one.\n * - Duplicate `_id` values within a list array are silently regenerated.\n *\n * Uses `ContentEntryTraverser` so nested objects / dynamic zones are handled\n * automatically — no manual recursion needed.\n */\nexport async function ensureItemIds(modelAst: CmsModelAst, values: CmsEntryValues): Promise<void> {\n const traverser = new ContentEntryTraverser(modelAst);\n\n await traverser.traverse(values, async ({ field, value }) => {\n if (field.type !== \"object\" && field.type !== \"dynamicZone\") {\n return;\n }\n\n // List fields: assign _id to every array item.\n if (field.list && Array.isArray(value)) {\n const seen = new Set<string>();\n\n for (const item of value) {\n if (item == null || typeof item !== \"object\") {\n continue;\n }\n\n if (!item._id || seen.has(item._id)) {\n item._id = generateAlphaNumericLowerCaseId(12);\n }\n\n seen.add(item._id);\n }\n return;\n }\n\n // Single-value: assign _id to the value object.\n if (!field.list && value != null && typeof value === \"object\" && !Array.isArray(value)) {\n if (!value._id) {\n value._id = generateAlphaNumericLowerCaseId(12);\n }\n }\n });\n}\n"],"names":["ensureItemIds","modelAst","values","traverser","ContentEntryTraverser","field","value","Array","seen","Set","item","generateAlphaNumericLowerCaseId"],"mappings":";;AAeO,eAAeA,cAAcC,QAAqB,EAAEC,MAAsB;IAC7E,MAAMC,YAAY,IAAIC,sBAAsBH;IAE5C,MAAME,UAAU,QAAQ,CAACD,QAAQ,OAAO,EAAEG,KAAK,EAAEC,KAAK,EAAE;QACpD,IAAID,AAAe,aAAfA,MAAM,IAAI,IAAiBA,AAAe,kBAAfA,MAAM,IAAI,EACrC;QAIJ,IAAIA,MAAM,IAAI,IAAIE,MAAM,OAAO,CAACD,QAAQ;YACpC,MAAME,OAAO,IAAIC;YAEjB,KAAK,MAAMC,QAAQJ,MACf,IAAII,AAAQ,QAARA,QAAgB,AAAgB,YAAhB,OAAOA;gBAI3B,IAAI,CAACA,KAAK,GAAG,IAAIF,KAAK,GAAG,CAACE,KAAK,GAAG,GAC9BA,KAAK,GAAG,GAAGC,gCAAgC;gBAG/CH,KAAK,GAAG,CAACE,KAAK,GAAG;;YAErB;QACJ;QAGA,IAAI,CAACL,MAAM,IAAI,IAAIC,AAAS,QAATA,SAAiB,AAAiB,YAAjB,OAAOA,SAAsB,CAACC,MAAM,OAAO,CAACD,QAC5E;YAAA,IAAI,CAACA,MAAM,GAAG,EACVA,MAAM,GAAG,GAAGK,gCAAgC;QAChD;IAER;AACJ"}
|
package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.d.ts
CHANGED
|
@@ -3,12 +3,14 @@ import { AccessControl, CmsContext } from "../../../../features/shared/abstracti
|
|
|
3
3
|
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
|
|
4
4
|
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
5
5
|
import type { CmsEntryValues, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../../types/index.js";
|
|
6
|
+
import { ModelToAstConverter } from "../../../../features/contentModel/ModelToAstConverter/abstractions.js";
|
|
6
7
|
declare class CreateEntryDataFactoryImpl implements ICreateEntryDataFactory {
|
|
7
8
|
private readonly cmsContext;
|
|
8
9
|
private readonly identityContext;
|
|
9
10
|
private readonly tenantContext;
|
|
10
11
|
private readonly accessControl;
|
|
11
|
-
|
|
12
|
+
private readonly modelToAstConverter;
|
|
13
|
+
constructor(cmsContext: CmsContext.Interface, identityContext: IdentityContext.Interface, tenantContext: TenantContext.Interface, accessControl: AccessControl.Interface, modelToAstConverter: ModelToAstConverter.Interface);
|
|
12
14
|
create<TValues extends CmsEntryValues = CmsEntryValues>(model: CmsModel, rawInput: CreateCmsEntryInput<TValues>, options?: CreateCmsEntryOptionsInput): Promise<ICreateEntryDataResponse<TValues>>;
|
|
13
15
|
}
|
|
14
16
|
export declare const CreateEntryDataFactory: import("@webiny/di").Implementation<typeof CreateEntryDataFactoryImpl>;
|