@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 3.87 kB
JavaScript
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"../../utils/helpers/get-filter-values.mjs";import i from"../../libs/repositories/documents.mjs";import{getFieldDatabaseConfig as a,isStorageMode as o}from"../../libs/collection/custom-fields/storage/index.mjs";import{getBricksTableSchema as s,getDocumentFieldsTableSchema as c,getTableNames as l}from"../../libs/collection/schema/runtime/runtime-schema-selectors.mjs";import u from"../collections/get-single-instance.mjs";import d from"../../libs/hooks/execute-hooks.mjs";import f from"../documents-bricks/helpers/extract-related-entity-ids.mjs";import p from"../documents-bricks/helpers/fetch-ref-data.mjs";import m from"./helpers/resolve-relation-version-type.mjs";import h from"./helpers/resolve-document-includes.mjs";import g from"./helpers/resolve-relation-document-filters.mjs";import _,{groupDocumentFilterConditions as v}from"../../utils/helpers/group-document-filters.mjs";import y from"../../libs/formatters/documents.mjs";import b from"../../libs/formatters/index.mjs";const x=async(x,S)=>{if(S.version===t.collectionBuilder.publishing.snapshotVersionType)return{error:{message:e(`server:core.documents.version.not.found.message`),status:404},data:void 0};let C=u(x,{key:S.collectionKey});if(C.error)return C;let w=new i(x.db.client,x.config.db),T=await s(x,S.collectionKey);if(T.error)return T;let E=await c(x,S.collectionKey);if(E.error)return E;let D=!!C.data.getData.workflow,O=T.data.filter(e=>{let t=a(e.type),n=e.key.fieldPath?.[e.key.fieldPath.length-1];return t!==null&&o(t,`relation-table`)&&e.key.brick===void 0&&n!==void 0&&C.data.listing.includes(n)}),[k,A]=await Promise.all([m(x,{collectionKey:S.collectionKey,versionType:S.version}),l(x,S.collectionKey)]);if(k.error)return k;if(A.error)return A;let j=await g(x,{collection:C.data,bricksTableSchema:T.data,filter:S.query.filter,filterOr:S.query.filterOr,relationVersionType:k.data.versionType,resolveVersionType:k.data.resolveVersionType});if(j.error)return j;let{documentFilters:M,brickFilters:N}=_(T.data,S.query.filter,{includeWorkflow:D,relationCollectionDefaults:j.data.relationCollectionDefaults}),P=r(M.workflowAssignee),F=S.query.filterOr?.map((e,t)=>({...v(T.data,e,{includeWorkflow:D,relationCollectionDefaults:j.data.relationCollectionDefaults}),relationDocumentFilters:j.data.filterOr[t]??[]})),I=h(S.query.include),L=await w.selectMultipleFiltered({version:S.version,query:S.query,documentFilters:M,filterOr:F,brickFilters:N,relationDocumentFilters:j.data.filters,collection:C.data,config:x.config,relationVersionType:k.data.versionType,tables:{versions:A.data.version,documentFields:A.data.documentFields},documentFieldsTableSchema:E.data,documentFieldRelationTableSchemas:O,includeWorkflow:D,workflowAssigneeFilterValues:P,tenantKey:x.request.tenantKey},{tableName:A.data.document});if(L.error)return L;let R;if(I.refs){let e=await f(x,{collection:C.data,brickSchema:T.data,responses:L.data?.[0]??[],includeTypes:I.refTypes});if(e.error)return e;let t=await p(x,{values:e.data,versionType:k.data.versionType,resolveVersionType:k.data.resolveVersionType});if(t.error)return t;R=t.data}let z=y.formatMultiple({documents:L.data?.[0]||[],collection:C.data,config:x.config,host:n(x),refData:R,refTypes:I.refTypes,hasFields:!0,hasBricks:!1,bricksTableSchema:T.data}),B=await d(x,{service:`documents`,event:`afterFetch`,config:x.config,collectionInstance:C.data},{meta:{collection:C.data,collectionKey:S.collectionKey,collectionTableNames:A.data,tenantKey:x.request.tenantKey??null},data:{versionType:S.version,relationVersionType:k.data.versionType,documents:z}});return B.error?B:{error:void 0,data:{data:B.data.documents,count:b.parseCount(L.data?.[1]?.count)}}};export{x as default};
//# sourceMappingURL=get-multiple.mjs.map