@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.31 kB
JavaScript
import e from"../../libs/repositories/media.mjs";import t from"../../libs/repositories/processed-images.mjs";import{getMediaKeyTenantKey as n,resolveMediaKeyTenant as r}from"../../utils/media/media-key-tenant.mjs";import i from"../media/adjust-storage-usage.mjs";import a from"../media/checks/check-has-media-strategy.mjs";const o=async(o,s)=>{let c=await a(o);if(c.error)return c;if(!s.key&&s.id===void 0)return{error:{type:`basic`,status:400},data:void 0};let l=new t(o.db.client,o.config.db),u=s.key,d=u===void 0?null:n(u);if(u===void 0&&s.id!==void 0){let t=await new e(o.db.client,o.config.db).selectSingleById({id:s.id,tenantKey:o.request.tenantKey,validation:{enabled:!0}});if(t.error)return t;u=t.data.key,d=t.data.tenant_key}let f=await l.selectMultiple({select:[`key`,`file_size`],where:[{key:`media_key`,operator:`=`,value:u}],validation:{enabled:!0}});if(f.error)return f;if(f.data.length===0)return{error:void 0,data:void 0};let p=f.data.reduce((e,t)=>e+t.file_size,0),m=r(o.config,u),[h,g,_]=await Promise.all([c.data.deleteMultiple(o,{keys:f.data.map(e=>e.key),tenant:m}),l.deleteMultiple({where:[{key:`media_key`,operator:`=`,value:u}]}),i(o,{tenantKey:d,delta:-p,min:0})]);return g.error?g:_.error?_:{error:void 0,data:void 0}};export{o as default};
//# sourceMappingURL=clear-single.mjs.map