@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 2.12 kB
JavaScript
import{copy as e}from"../../../libs/i18n/copy.mjs";import t from"../../../libs/repositories/documents.mjs";import{getTableNames as n}from"../../../libs/collection/schema/runtime/runtime-schema-selectors.mjs";import r from"../../../libs/hooks/execute-hooks.mjs";import i from"../checks/check-collection.mjs";import a from"../checks/check-document-access.mjs";import o from"../helpers/invalidate-client-cache.mjs";import s from"../nullify-document-references.mjs";import c from"../../preview-sessions/delete-for-documents.mjs";const l=async(l,u)=>{let d=await i(l,{key:u.collectionKey});if(d.error)return d;let f=new t(l.db.client,l.config.db),p=await n(l,u.collectionKey);if(p.error)return p;let m=await a(l,{collectionKey:u.collectionKey,id:u.id});if(m.error)return m;let h=await f.selectSingle({select:[`id`,`tenant_key`],where:[{key:`id`,operator:`=`,value:u.id},{key:`collection_key`,operator:`=`,value:u.collectionKey}],validation:{enabled:!0,defaultError:{type:`basic`,message:e(`server:core.documents.not.found.message`),status:404}}},{tableName:p.data.document});if(h.error)return h;let g=u.tenantKey===void 0?h.data.tenant_key:u.tenantKey,_=await r(l,{service:`documents`,event:`beforeDelete`,config:l.config,collectionInstance:d.data},{meta:{collection:d.data,collectionKey:u.collectionKey,userId:u.userId,collectionTableNames:p.data,tenantKey:g,hardDelete:!0},data:{ids:[u.id]}});if(_.error)return _;let[v,y,b]=await Promise.all([f.deleteSingle({where:[{key:`id`,operator:`=`,value:u.id}],returning:[`id`],validation:{enabled:!0}},{tableName:p.data.document}),s(l,{collectionKey:d.data.key,documentId:u.id}),c(l,{collectionKey:u.collectionKey,documentIds:[u.id]})]);if(v.error)return v;if(y.error)return y;if(b.error)return b;let x=await r(l,{service:`documents`,event:`afterDelete`,config:l.config,collectionInstance:d.data},{meta:{collection:d.data,collectionKey:u.collectionKey,userId:u.userId,collectionTableNames:p.data,tenantKey:g,hardDelete:!0},data:{ids:[u.id]}});return x.error?x:(await o(l,u.collectionKey),{error:void 0,data:void 0})};export{l as default};
//# sourceMappingURL=delete-single.mjs.map