@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.56 kB
JavaScript
import e from"../../constants/constants.mjs";import t from"../../libs/repositories/media-awaiting-sync.mjs";import n from"../../libs/repositories/media-upload-sessions.mjs";import{getMediaKeyTenantKey as r}from"../../utils/media/media-key-tenant.mjs";import i from"./helpers/group-queue-payloads-by-tenant.mjs";import{addMilliseconds as a}from"date-fns";const o=async o=>{let s=new t(o.db.client,o.config.db),c=new n(o.db.client,o.config.db),[l,u]=await Promise.all([s.selectMultiple({select:[`key`],where:[{key:`timestamp`,operator:`<`,value:a(new Date,e.mediaAwaitingSyncInterval*-1).toISOString()}],validation:{enabled:!0}}),c.selectMultiple({select:[`session_id`,`key`],where:[{key:`expires_at`,operator:`<`,value:new Date().toISOString()},{key:`status`,operator:`=`,value:`active`}],validation:{enabled:!0}})]);if(l.error)return l;if(u.error)return u;if(l.data.length===0&&u.data.length===0)return{error:void 0,data:void 0};let d=i(l.data.map(e=>({payload:{key:e.key},tenantKeys:[r(e.key)]}))),f=i(u.data.map(e=>({payload:{sessionId:e.session_id},tenantKeys:[r(e.key)]})));for(let e of d){let t=await o.queue.addBatch(o,{event:`media:delete-unsynced`,payloads:e.payloads,options:e.tenantKeys.length>0?{tenantKeys:e.tenantKeys}:void 0});if(t.error)return t}for(let e of f){let t=await o.queue.addBatch(o,{event:`media:abort-upload-session`,payloads:e.payloads,options:e.tenantKeys.length>0?{tenantKeys:e.tenantKeys}:void 0});if(t.error)return t}return{error:void 0,data:void 0}};export{o as default};
//# sourceMappingURL=delete-expired-unsynced-media.mjs.map