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.5 kB
import e from"../../utils/helpers/get-base-url.mjs";import t from"../../libs/repositories/document-bricks.mjs";import n from"../../libs/repositories/document-publish-operations.mjs";import r from"../../libs/repositories/document-versions.mjs";import{getTableNames as i}from"../../libs/collection/schema/runtime/runtime-schema-selectors.mjs";import a from"../collections/get-single-instance.mjs";import{getReviewableCollectionKeys as o,hasCollectionPermission as s,unresolvedPublishOperationExecutionStatuses as c}from"./helpers/index.mjs";import l from"./helpers/get-document-label.mjs";import u from"../../libs/formatters/document-publish-operations.mjs";import d from"../../libs/formatters/index.mjs";const f=async(f,p)=>{let m=o({config:f.config,user:p.user,tenantKey:f.request.tenantKey});if(m.length===0)return{error:void 0,data:{data:[],count:0}};let h=await new n(f.db.client,f.config.db).selectMultipleDetailed({where:[{key:`collection_key`,operator:`in`,value:m}],queryParams:p.query,currentUserId:p.user.id,tenantKey:f.request.tenantKey});if(h.error)return h;let g=h.data?.[0]??[],_=new r(f.db.client,f.config.db),v=new t(f.db.client,f.config.db),y=new Map,b=[];for(let t of g){let n=a(f,{key:t.collection_key});if(n.error)continue;let r=y.get(t.collection_key);if(r===void 0){let e=await i(f,t.collection_key);if(e.error)return e;r=e.data,y.set(t.collection_key,r)}let o=await _.selectSingle({select:[`content_id`],where:[{key:`collection_key`,operator:`=`,value:t.collection_key},{key:`document_id`,operator:`=`,value:t.document_id},{key:`type`,operator:`=`,value:`latest`}]},{tableName:r.version});if(o.error)return o;let u=await l({context:f,bricks:v,collection:n.data,tables:r,operation:t});if(u.error)return u;let d=s({user:p.user,collection:n.data,action:`review`}),m=s({user:p.user,collection:n.data,action:`publish`}),h=t.requested_by===p.user.id,g=c.some(e=>e===t.execution_status),x=t.operation_type===`direct`?m:d;b.push({operation:t,documentLabel:u.data,latestContentId:o.data?.content_id??null,host:e(f),permissions:{review:d,cancel:t.status===`pending`?h||d:t.status===`approved`&&g&&x,reschedule:t.status===`pending`?h||d:t.status===`approved`&&g&&x,retry:t.status===`approved`&&t.execution_status===`failed`&&x,updateReviewers:t.operation_type===`request`&&t.status===`pending`&&(h||d||p.user.superAdmin)}})}return{error:void 0,data:{data:u.formatMultiple({operations:b}),count:d.parseCount(h.data?.[1]?.count)}}};export{f as default}; //# sourceMappingURL=get-multiple.mjs.map