@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.86 kB
JavaScript
import{copy as e}from"../../../../i18n/copy.mjs";import t from"../../../../../utils/errors/lucid-api-error.mjs";import n from"../../../../kv/cache-keys.mjs";import r from"../../../utils/create-service-context.mjs";import{ClientScopes as i}from"../../../../permission/client-scopes.mjs";import a from"../../../../../utils/services/service-wrapper.mjs";import o from"../../../../../services/media/client/get-single.mjs";import s from"../../../middleware/cache.mjs";import c from"../../../middleware/client-authenticate.mjs";import l from"../../../middleware/validate.mjs";import u from"../../../openapi/index.mjs";import d from"../../../utils/build-response.mjs";import{controllerSchemas as f}from"../../../../../schemas/media.mjs";import p from"../../../middleware/client-scopes.mjs";import m from"zod";import{minutesToSeconds as h}from"date-fns";import{createFactory as g}from"hono/factory";import{describeRoute as _}from"hono-openapi";const v=g().createHandlers(_({description:`Get a single media item by ID via the client integration. Returns translated metadata.`,tags:[`client-media`],summary:`Get Media`,responses:u.responses({schema:m.toJSONSchema(f.client.getSingle.response)}),parameters:u.parameters({params:f.client.getSingle.params,headers:{authorization:!0}})}),c,p([i.MediaRead]),l(`param`,f.client.getSingle.params),s({ttl:h(5),mode:`static`,staticKey:e=>{let t=e.req.param(`id`);return t?n.http.static.clientMediaSingle(t,e.get(`tenant`)?.key??null):null}}),async n=>{let{id:i}=n.req.valid(`param`),s=r(n),c=await a(o,{transaction:!1,defaultError:{type:`basic`,name:e(`server:core.routes.media.fetch.error.name`),message:e(`server:core.routes.media.fetch.error.message`)}})(s,{id:Number.parseInt(i,10)});if(c.error)throw new t(c.error);return n.status(200),n.json(d(n,{data:c.data}))});export{v as default};
//# sourceMappingURL=get-single.mjs.map