UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 1.45 kB
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../libs/repositories/media.mjs";import n from"../../libs/kv/cache-keys.mjs";import r from"../../libs/hooks/execute-hooks.mjs";import{invalidateHttpCacheTags as i}from"../../libs/kv/http-cache.mjs";import a from"./checks/check-media-access.mjs";import o from"./helpers/clear-client-media-cache.mjs";import s from"./helpers/permanently-delete-media.mjs";const c=async(c,l)=>{if(!l.ids||l.ids.length===0)return{error:void 0,data:void 0};let u=new t(c.db.client,c.config.db),d=await a(c,{ids:l.ids});if(d.error)return d;let f=await u.selectMultiple({select:[`id`],where:[{key:`id`,operator:`in`,value:l.ids}],validation:{enabled:!0}});if(f.error)return f;let p=new Set(f.data.map(e=>e.id));if(l.ids.filter(e=>!p.has(e)).length>0)return{error:{type:`basic`,message:e(`server:core.media.not.found.message`),errors:{ids:{message:e(`server:core.documents.ids.not.found.partial`,{data:{ids:f.data.map(e=>e.id).join(`, `)}})}},status:404},data:void 0};for(let e of l.ids){let t=await s(c,{id:e,invalidateCache:!1});if(t.error)return t}await Promise.all([...l.ids.map(e=>o(c,e)),i(c,[n.http.tags.clientMedia])]);let m=await r(c,{service:`media`,event:`afterDelete`,config:c.config},{meta:{tenantKey:c.request.tenantKey??null},data:{ids:l.ids,userId:l.userId,hardDelete:!0}});return m.error?m:{error:void 0,data:void 0}};export{c as default}; //# sourceMappingURL=delete-multiple-permanently.mjs.map