@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 2.6 kB
JavaScript
import e from"../../libs/repositories/document-versions.mjs";import t from"../../libs/hooks/execute-hooks.mjs";import n from"../documents/helpers/invalidate-client-cache.mjs";import r from"../documents-bricks/checks/check-duplicate-order.mjs";import i from"../documents-bricks/checks/check-validate-bricks-fields.mjs";import a from"../documents-bricks/create-multiple.mjs";import o from"../documents-bricks/delete-multiple.mjs";import s from"./helpers/get-update-context.mjs";import c from"../../libs/formatters/document-versions.mjs";import{randomUUID as l}from"node:crypto";const u=async(u,d)=>{let f=new e(u.db.client,u.config.db),p=await s(u,{collectionKey:d.collectionKey,documentId:d.documentId,versionId:d.versionId});if(p.error)return p;let m=await t(u,{service:`documents`,event:`beforeUpsert`,config:u.config,collectionInstance:p.data.collection},{meta:{collection:p.data.collection,collectionKey:d.collectionKey,userId:d.userId,collectionTableNames:p.data.tableNames,tenantKey:u.request.tenantKey??null,execution:{mode:`upsert`,action:`update`,willPersist:!0}},data:{documentId:d.documentId,versionId:d.versionId,versionType:p.data.versionType,bricks:d.bricks,fields:d.fields}});if(m.error)return m;let h=r(m.data.bricks??[]);if(h.error)return h;let g=await i(u,{collection:p.data.collection,bricks:m.data.bricks??[],fields:m.data.fields??[]});if(g.error)return g;let _=await o(u,{versionId:d.versionId,documentId:d.documentId,collectionKey:d.collectionKey});if(_.error)return _;let v=await a(u,{versionId:d.versionId,documentId:d.documentId,bricks:m.data.bricks,fields:m.data.fields,collection:p.data.collection,skipValidation:!0});if(v.error)return v;let y=await t(u,{service:`documents`,event:`afterUpsert`,config:u.config,collectionInstance:p.data.collection},{meta:{collection:p.data.collection,collectionKey:d.collectionKey,userId:d.userId,collectionTableNames:p.data.tableNames,tenantKey:u.request.tenantKey??null},data:{documentId:d.documentId,versionId:d.versionId,versionType:p.data.versionType,bricks:m.data.bricks||[],fields:m.data.fields||[]}});if(y.error)return y;let b=l(),x=new Date().toISOString(),S=await f.updateSingle({where:[{key:`id`,operator:`=`,value:d.versionId}],data:{content_id:b,collection_migration_id:p.data.migrationId,updated_by:d.userId,updated_at:x},returning:[`id`,`type`,`content_id`,`updated_at`],validation:{enabled:!0}},{tableName:p.data.tableNames.version});return S.error?S:(await n(u,d.collectionKey),{error:void 0,data:c.formatUpdateSingle({documentId:d.documentId,version:S.data})})};export{u as default};
//# sourceMappingURL=update-single.mjs.map