@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.79 kB
JavaScript
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../libs/repositories/media-upload-sessions.mjs";import{resolveMediaKeyTenant as n}from"../../utils/media/media-key-tenant.mjs";import r from"./checks/check-media-key-access.mjs";import{hasResumableUploadSessions as i}from"../../libs/media/resumable-upload-sessions.mjs";const a=async(a,o)=>{let s=await new t(a.db.client,a.config.db).selectSingle({select:[`session_id`,`key`,`adapter_key`,`adapter_upload_id`,`part_size`,`expires_at`,`status`],where:[{key:`session_id`,operator:`=`,value:o.sessionId},{key:`status`,operator:`=`,value:`active`}],validation:{enabled:!0,defaultError:{status:404}}});if(s.error)return s;let c=await r(a,{key:s.data.key});if(c.error)return c;if(!a.media)return{error:{type:`basic`,status:400,message:e(`server:core.media.adapters.not.enabled`)},data:void 0};if(s.data.adapter_key!==a.media.key)return{error:void 0,data:{canResume:!1,sessionId:s.data.session_id,reason:`adapter_changed`}};if(!i(a.media))return{error:void 0,data:{canResume:!1,sessionId:s.data.session_id,reason:`adapter_not_resumable`}};if(!s.data.adapter_upload_id)return{error:{type:`basic`,status:400,message:e(`server:core.media.upload.sessions.missing.adapter.upload.id`)},data:void 0};if(!s.data.part_size)return{error:{type:`basic`,status:400,message:e(`server:core.media.upload.sessions.missing.part.size`)},data:void 0};let l=await a.media.listUploadParts(a,{key:s.data.key,uploadId:s.data.adapter_upload_id,tenant:n(a.config,s.data.key)});return l.error?l:{error:void 0,data:{canResume:!0,key:s.data.key,sessionId:s.data.session_id,partSize:s.data.part_size,expiresAt:new Date(s.data.expires_at).toISOString(),uploadedParts:l.data.uploadedParts}}};export{a as default};
//# sourceMappingURL=get-upload-session.mjs.map