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.74 kB
import e from"../../../../constants/constants.mjs";import t from"../../../../utils/errors/lucid-api-error.mjs";import n from"../../utils/create-service-context.mjs";import r from"../../../../utils/services/service-wrapper.mjs";import i from"../../../../services/media-share-links/authorize-share.mjs";import a from"../../../../services/media-share-links/request-download.mjs";import o from"../../middleware/rate-limiter.mjs";import s from"../../middleware/validate.mjs";import c from"../../openapi/index.mjs";import l from"../../utils/build-response.mjs";import{controllerSchemas as u}from"../../../../schemas/share.mjs";import d from"../../../../utils/share-link/auth-cookie.mjs";import{z as f}from"zod";import{minutesToMilliseconds as p}from"date-fns";import{getCookie as m}from"hono/cookie";import{createFactory as h}from"hono/factory";import{describeRoute as g}from"hono-openapi";const _=h().createHandlers(g({description:`Request a direct download URL for a shared media item after validating share access.`,tags:[`share`],summary:`Request Share Download URL`,parameters:c.parameters({params:u.requestDownload.params}),responses:c.responses({schema:f.toJSONSchema(u.requestDownload.response)})}),o({mode:`ip`,scope:e.rateLimit.scopes.low.scopeKey,limit:e.rateLimit.scopes.low.limit,windowMs:p(1)}),s(`param`,u.requestDownload.params),async e=>{let{token:o}=e.req.valid(`param`),s=n(e),c=m(e,d(o)),u=await r(i,{transaction:!1})(s,{token:o,sessionCookie:c,enforcePasswordSession:!0});if(u.error)throw new t(u.error);let f=await r(a,{transaction:!1})(s,{mediaKey:u.data.mediaKey});if(f.error)throw new t(f.error);return e.status(200),e.json(l(e,{data:{url:f.data.url}}))});export{_ as default}; //# sourceMappingURL=request-download.mjs.map