@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 2.48 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{getCollectionClientScope as i}from"../../../../permission/client-scopes.mjs";import a from"../../../../../services/documents/client/get-single.mjs";import o from"../../../../../utils/services/service-wrapper.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 f from"../../../utils/build-formatted-query.mjs";import{controllerSchemas as p}from"../../../../../schemas/documents.mjs";import m from"../../../middleware/client-scopes.mjs";import h from"zod";import{hoursToSeconds as g}from"date-fns";import{createFactory as _}from"hono/factory";import{describeRoute as v}from"hono-openapi";const y=_().createHandlers(v({description:`Get a single document by filters via the client integration.`,tags:[`client-documents`],summary:`Get Document`,responses:u.responses({schema:h.toJSONSchema(p.client.getSingle.response)}),parameters:u.parameters({params:p.client.getSingle.params,query:p.client.getSingle.query.string,headers:{authorization:!0}})}),c,l(`param`,p.client.getSingle.params),m(e=>[i(e.req.param(`collectionKey`)??``)]),l(`query`,p.client.getSingle.query.string),s({ttl:g(24),mode:`include-query`,bypass:e=>e.req.query(`preview`)!==void 0,tags:e=>{let t=e.req.param(`collectionKey`),r=[n.http.tags.clientDocuments];return t&&r.push(n.http.tags.clientDocumentsCollection(t)),r},keyContext:e=>{let t=e.get(`tenant`)?.key;return t?{tenant:t}:{}}}),async n=>{let{collectionKey:i}=n.req.valid(`param`),{preview:s,version:c}=n.req.valid(`query`),l=r(n),u=await f(n,p.client.getSingle.query.formatted),m=await o(a,{transaction:!1,defaultError:{type:`basic`,name:e(`server:core.routes.document.fetch.error.name`),message:e(`server:core.routes.document.fetch.error.message`)}})(l,{collectionKey:i,versionType:c,preview:s,query:u,clientScopes:n.get(`clientIntegrationAuth`).scopes});if(m.error)throw new t(m.error);return s!==void 0&&(n.header(`Cache-Control`,`private, no-store`),n.header(`Pragma`,`no-cache`),n.header(`Referrer-Policy`,`no-referrer`)),n.status(200),n.json(d(n,{data:m.data}))});export{y as default};
//# sourceMappingURL=get-single.mjs.map