UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 2.89 kB
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../constants/constants.mjs";import n from"../../utils/helpers/get-base-url.mjs";import r from"../../libs/repositories/documents.mjs";import{getTableNames as i}from"../../libs/collection/schema/runtime/runtime-schema-selectors.mjs";import a from"../collections/get-single-instance.mjs";import o from"../../libs/hooks/execute-hooks.mjs";import s from"../document-workflows/get-single.mjs";import c from"./helpers/resolve-relation-version-type.mjs";import l from"./helpers/resolve-document-includes.mjs";import u from"../documents-bricks/get-multiple.mjs";import d from"../../libs/formatters/documents.mjs";const f=async(f,p)=>{let m=new r(f.db.client,f.config.db);if(p.version===t.collectionBuilder.publishing.snapshotVersionType)return{error:{type:`basic`,message:e(`server:core.documents.version.not.found.message`),status:404},data:void 0};let h=a(f,{key:p.collectionKey});if(h.error)return h;let g=await i(f,p.collectionKey);if(g.error)return g;let[_,v]=await Promise.all([m.selectSingleById({id:p.id,tables:{versions:g.data.version},version:p.version,versionId:p.versionId,validation:{enabled:!0,defaultError:{message:e(`server:core.documents.version.not.found.message`),status:404}}},{tableName:g.data.document}),s(f,{collectionKey:p.collectionKey,documentId:p.id})]);if(_.error)return _;if(v.error)return v;if(_.data.tenant_key&&f.request.tenantKey&&_.data.tenant_key!==f.request.tenantKey)return{error:{type:`basic`,message:e(`server:core.documents.version.not.found.message`),status:404},data:void 0};let y=p.version===void 0?p.versionId:_.data.version_id,b=p.version===void 0?_.data.version_type:p.version;if(!y||!b)return{error:{type:`basic`,message:e(`server:core.documents.version.not.found.message`),status:404},data:void 0};let x=await c(f,{collectionKey:_.data.collection_key,documentId:p.id,versionId:y,versionType:b});if(x.error)return x;let S,C=l(p.query.include);if(C.bricks||C.refs){let e=await u(f,{versionId:y,collectionKey:_.data.collection_key,versionType:x.data.versionType,resolveVersionType:x.data.resolveVersionType,includeBricks:C.bricks,includeRefs:C.refs,refTypes:C.refTypes});if(e.error)return e;S=d.formatSingle({document:_.data,collection:h.data,bricks:e.data.bricks,fields:e.data.fields,config:f.config,host:n(f),refs:e.data.refs,workflow:v.data})}else S=d.formatSingle({document:_.data,collection:h.data,bricks:[],fields:[],config:f.config,host:n(f),workflow:v.data});let w=await o(f,{service:`documents`,event:`afterFetch`,config:f.config,collectionInstance:h.data},{meta:{collection:h.data,collectionKey:_.data.collection_key,collectionTableNames:g.data,tenantKey:f.request.tenantKey??null},data:{versionType:b,relationVersionType:x.data.versionType,documents:[S]}});return w.error?w:{error:void 0,data:w.data.documents[0]??S}};export{f as default}; //# sourceMappingURL=get-single.mjs.map