@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 15.8 kB
JavaScript
import e from"../db/query-builder/index.mjs";import{activeMediaCropSelect as t}from"./helpers/media-selects.mjs";import n from"./parents/static-repository.mjs";import{richTextJSONSchema as r}from"../../schemas/shared/rich-text.mjs";import i from"zod";import{sql as a}from"kysely";var o=class extends n{constructor(e,t){super(e,t,`lucid_document_publish_operations`)}tableSchema=i.object({id:i.number(),collection_key:i.string(),tenant_key:i.string().nullable(),document_id:i.number(),target:i.string(),operation_type:i.enum([`request`,`direct`]),status:i.enum([`pending`,`approved`,`rejected`,`cancelled`,`superseded`]),source_version_id:i.number(),source_content_id:i.string(),snapshot_version_id:i.number(),requested_by:i.number().nullable(),request_comment:r.nullable(),decided_by:i.number().nullable(),decision_comment:r.nullable(),decided_at:i.union([i.string(),i.date()]).nullable(),scheduled_at:i.union([i.string(),i.date()]).nullable(),scheduled_timezone:i.string().nullable(),execution_status:i.enum([`awaiting_approval`,`scheduled`,`executing`,`executed`,`failed`,`cancelled`]),executed_at:i.union([i.string(),i.date()]).nullable(),failed_at:i.union([i.string(),i.date()]).nullable(),execution_error_message:i.string().nullable(),execution_error_data:i.record(i.string(),i.unknown()).nullable(),scheduled_job_id:i.string().nullable(),created_at:i.union([i.string(),i.date()]),updated_at:i.union([i.string(),i.date()]).nullable()});columnFormats={id:this.dbAdapter.getDataType(`primary`),collection_key:this.dbAdapter.getDataType(`text`),tenant_key:this.dbAdapter.getDataType(`text`),document_id:this.dbAdapter.getDataType(`integer`),target:this.dbAdapter.getDataType(`text`),operation_type:this.dbAdapter.getDataType(`text`),status:this.dbAdapter.getDataType(`text`),source_version_id:this.dbAdapter.getDataType(`integer`),source_content_id:this.dbAdapter.getDataType(`text`),snapshot_version_id:this.dbAdapter.getDataType(`integer`),requested_by:this.dbAdapter.getDataType(`integer`),request_comment:this.dbAdapter.getDataType(`json`),decided_by:this.dbAdapter.getDataType(`integer`),decision_comment:this.dbAdapter.getDataType(`json`),decided_at:this.dbAdapter.getDataType(`timestamp`),scheduled_at:this.dbAdapter.getDataType(`timestamp`),scheduled_timezone:this.dbAdapter.getDataType(`text`),execution_status:this.dbAdapter.getDataType(`text`),executed_at:this.dbAdapter.getDataType(`timestamp`),failed_at:this.dbAdapter.getDataType(`timestamp`),execution_error_message:this.dbAdapter.getDataType(`text`),execution_error_data:this.dbAdapter.getDataType(`json`),scheduled_job_id:this.dbAdapter.getDataType(`text`),created_at:this.dbAdapter.getDataType(`timestamp`),updated_at:this.dbAdapter.getDataType(`timestamp`)};queryConfig={tableKeys:{filters:{status:`lucid_document_publish_operations.status`,executionStatus:`lucid_document_publish_operations.execution_status`,operationType:`lucid_document_publish_operations.operation_type`,collectionKey:`lucid_document_publish_operations.collection_key`,documentId:`lucid_document_publish_operations.document_id`,target:`lucid_document_publish_operations.target`,requestedBy:`lucid_document_publish_operations.requested_by`,createdAt:`lucid_document_publish_operations.created_at`,updatedAt:`lucid_document_publish_operations.updated_at`,scheduledAt:`lucid_document_publish_operations.scheduled_at`,executedAt:`lucid_document_publish_operations.executed_at`,failedAt:`lucid_document_publish_operations.failed_at`},sorts:{createdAt:`lucid_document_publish_operations.created_at`,updatedAt:`lucid_document_publish_operations.updated_at`,scheduledAt:`lucid_document_publish_operations.scheduled_at`,executedAt:`lucid_document_publish_operations.executed_at`,failedAt:`lucid_document_publish_operations.failed_at`}}};async selectSingleDetailed(n){let r=this.db.selectFrom(`lucid_document_publish_operations`);r=e.select(r,n.where),r=e.tenantScope(r,{tenantKey:n.tenantKey,column:`lucid_document_publish_operations.tenant_key`});let i=r.leftJoin(`lucid_users as requester`,`requester.id`,`lucid_document_publish_operations.requested_by`).leftJoin(`lucid_users as decider`,`decider.id`,`lucid_document_publish_operations.decided_by`).selectAll(`lucid_document_publish_operations`).select([`requester.email as requested_by_email`,`requester.username as requested_by_username`,`requester.first_name as requested_by_first_name`,`requester.last_name as requested_by_last_name`,`decider.email as decided_by_email`,`decider.username as decided_by_username`,`decider.first_name as decided_by_first_name`,`decider.last_name as decided_by_last_name`]).select(e=>[this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_media`).select([`lucid_media.id`,`lucid_media.key`,`lucid_media.origin`,`lucid_media.type`,`lucid_media.mime_type`,`lucid_media.file_extension`,`lucid_media.file_name`,`lucid_media.file_size`,`lucid_media.width`,`lucid_media.height`,`lucid_media.focal_x`,`lucid_media.focal_y`,`lucid_media.blur_hash`,`lucid_media.average_color`,`lucid_media.base64`,`lucid_media.is_dark`,`lucid_media.is_light`,t(this.db,this.dbAdapter,`lucid_media.id`)]).whereRef(`lucid_media.id`,`=`,`requester.profile_picture_media_id`).where(`lucid_media.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).as(`requested_by_profile_picture`),this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_media`).select([`lucid_media.id`,`lucid_media.key`,`lucid_media.origin`,`lucid_media.type`,`lucid_media.mime_type`,`lucid_media.file_extension`,`lucid_media.file_name`,`lucid_media.file_size`,`lucid_media.width`,`lucid_media.height`,`lucid_media.focal_x`,`lucid_media.focal_y`,`lucid_media.blur_hash`,`lucid_media.average_color`,`lucid_media.base64`,`lucid_media.is_dark`,`lucid_media.is_light`,t(this.db,this.dbAdapter,`lucid_media.id`)]).whereRef(`lucid_media.id`,`=`,`decider.profile_picture_media_id`).where(`lucid_media.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).as(`decided_by_profile_picture`),this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_document_publish_operation_assignees`).leftJoin(`lucid_users`,`lucid_users.id`,`lucid_document_publish_operation_assignees.user_id`).select(e=>[`lucid_document_publish_operation_assignees.id`,`lucid_document_publish_operation_assignees.operation_id`,`lucid_document_publish_operation_assignees.user_id`,`lucid_document_publish_operation_assignees.assigned_by`,`lucid_document_publish_operation_assignees.assigned_at`,`lucid_users.email`,`lucid_users.username`,`lucid_users.first_name`,`lucid_users.last_name`,this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_media`).select([`lucid_media.id`,`lucid_media.key`,`lucid_media.origin`,`lucid_media.type`,`lucid_media.mime_type`,`lucid_media.file_extension`,`lucid_media.file_name`,`lucid_media.file_size`,`lucid_media.width`,`lucid_media.height`,`lucid_media.focal_x`,`lucid_media.focal_y`,`lucid_media.blur_hash`,`lucid_media.average_color`,`lucid_media.base64`,`lucid_media.is_dark`,`lucid_media.is_light`,t(this.db,this.dbAdapter,`lucid_media.id`)]).whereRef(`lucid_media.id`,`=`,`lucid_users.profile_picture_media_id`).where(`lucid_media.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).as(`profile_picture`)]).whereRef(`lucid_document_publish_operation_assignees.operation_id`,`=`,`lucid_document_publish_operations.id`)).as(`assignees`),this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_document_publish_operation_events`).select([`lucid_document_publish_operation_events.id`,`lucid_document_publish_operation_events.operation_id`,`lucid_document_publish_operation_events.event_type`,`lucid_document_publish_operation_events.user_id`,`lucid_document_publish_operation_events.comment`,`lucid_document_publish_operation_events.metadata`,`lucid_document_publish_operation_events.created_at`]).whereRef(`lucid_document_publish_operation_events.operation_id`,`=`,`lucid_document_publish_operations.id`).orderBy(`lucid_document_publish_operation_events.created_at`,`asc`)).as(`events`)]),a=await this.executeQuery(()=>i.executeTakeFirst(),{method:`selectSingleDetailed`});return a.response.error?a.response:this.validateResponse(a,{...n.validation,mode:`single`})}async selectMultipleDetailed(n){let r=await this.executeQuery(async()=>{let r=this.db.selectFrom(`lucid_document_publish_operations`),i=this.db.selectFrom(`lucid_document_publish_operations`).select(a`count(*)`.as(`count`));n.where!==void 0&&n.where.length>0&&(r=e.select(r,n.where),i=e.select(i,n.where)),r=e.tenantScope(r,{tenantKey:n.tenantKey,column:`lucid_document_publish_operations.tenant_key`}),i=e.tenantScope(i,{tenantKey:n.tenantKey,column:`lucid_document_publish_operations.tenant_key`});let o=e.main({main:r,count:i},{queryParams:n.queryParams,database:this.dbAdapter.config,meta:{...this.queryConfig,customFilters:{requestedByMe:({eb:e,filter:t})=>e(`lucid_document_publish_operations.requested_by`,t.value===!0||t.value===`true`||t.value===`1`||t.value===1?`=`:`!=`,n.currentUserId),assignedToMe:({eb:e,filter:t})=>{let r=e.exists(e.selectFrom(`lucid_document_publish_operation_assignees`).select(a.lit(1).as(`one`)).whereRef(`lucid_document_publish_operation_assignees.operation_id`,`=`,`lucid_document_publish_operations.id`).where(`lucid_document_publish_operation_assignees.user_id`,`=`,n.currentUserId));return t.value===!0||t.value===`true`||t.value===`1`||t.value===1?r:e.not(r)},reviewers:({eb:e,filter:t})=>{let n=(Array.isArray(t.value)?t.value:[t.value]).map(e=>Number(e)).filter(Number.isFinite);return n.length===0?a`1 = 0`:e.exists(e.selectFrom(`lucid_document_publish_operation_assignees`).select(a.lit(1).as(`one`)).whereRef(`lucid_document_publish_operation_assignees.operation_id`,`=`,`lucid_document_publish_operations.id`).where(`lucid_document_publish_operation_assignees.user_id`,`in`,n))}}}}),s=o.main.leftJoin(`lucid_users as requester`,`requester.id`,`lucid_document_publish_operations.requested_by`).leftJoin(`lucid_users as decider`,`decider.id`,`lucid_document_publish_operations.decided_by`).selectAll(`lucid_document_publish_operations`).select([`requester.email as requested_by_email`,`requester.username as requested_by_username`,`requester.first_name as requested_by_first_name`,`requester.last_name as requested_by_last_name`,`decider.email as decided_by_email`,`decider.username as decided_by_username`,`decider.first_name as decided_by_first_name`,`decider.last_name as decided_by_last_name`]).select(e=>[this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_media`).select([`lucid_media.id`,`lucid_media.key`,`lucid_media.origin`,`lucid_media.type`,`lucid_media.mime_type`,`lucid_media.file_extension`,`lucid_media.file_name`,`lucid_media.file_size`,`lucid_media.width`,`lucid_media.height`,`lucid_media.focal_x`,`lucid_media.focal_y`,`lucid_media.blur_hash`,`lucid_media.average_color`,`lucid_media.base64`,`lucid_media.is_dark`,`lucid_media.is_light`,t(this.db,this.dbAdapter,`lucid_media.id`)]).whereRef(`lucid_media.id`,`=`,`requester.profile_picture_media_id`).where(`lucid_media.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).as(`requested_by_profile_picture`),this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_media`).select([`lucid_media.id`,`lucid_media.key`,`lucid_media.origin`,`lucid_media.type`,`lucid_media.mime_type`,`lucid_media.file_extension`,`lucid_media.file_name`,`lucid_media.file_size`,`lucid_media.width`,`lucid_media.height`,`lucid_media.focal_x`,`lucid_media.focal_y`,`lucid_media.blur_hash`,`lucid_media.average_color`,`lucid_media.base64`,`lucid_media.is_dark`,`lucid_media.is_light`,t(this.db,this.dbAdapter,`lucid_media.id`)]).whereRef(`lucid_media.id`,`=`,`decider.profile_picture_media_id`).where(`lucid_media.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).as(`decided_by_profile_picture`),this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_document_publish_operation_assignees`).leftJoin(`lucid_users`,`lucid_users.id`,`lucid_document_publish_operation_assignees.user_id`).select(e=>[`lucid_document_publish_operation_assignees.id`,`lucid_document_publish_operation_assignees.operation_id`,`lucid_document_publish_operation_assignees.user_id`,`lucid_document_publish_operation_assignees.assigned_by`,`lucid_document_publish_operation_assignees.assigned_at`,`lucid_users.email`,`lucid_users.username`,`lucid_users.first_name`,`lucid_users.last_name`,this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_media`).select([`lucid_media.id`,`lucid_media.key`,`lucid_media.origin`,`lucid_media.type`,`lucid_media.mime_type`,`lucid_media.file_extension`,`lucid_media.file_name`,`lucid_media.file_size`,`lucid_media.width`,`lucid_media.height`,`lucid_media.focal_x`,`lucid_media.focal_y`,`lucid_media.blur_hash`,`lucid_media.average_color`,`lucid_media.base64`,`lucid_media.is_dark`,`lucid_media.is_light`,t(this.db,this.dbAdapter,`lucid_media.id`)]).whereRef(`lucid_media.id`,`=`,`lucid_users.profile_picture_media_id`).where(`lucid_media.is_deleted`,`=`,this.dbAdapter.getDefault(`boolean`,`false`))).as(`profile_picture`)]).whereRef(`lucid_document_publish_operation_assignees.operation_id`,`=`,`lucid_document_publish_operations.id`)).as(`assignees`),this.dbAdapter.jsonArrayFrom(e.selectFrom(`lucid_document_publish_operation_events`).select([`lucid_document_publish_operation_events.id`,`lucid_document_publish_operation_events.operation_id`,`lucid_document_publish_operation_events.event_type`,`lucid_document_publish_operation_events.user_id`,`lucid_document_publish_operation_events.comment`,`lucid_document_publish_operation_events.metadata`,`lucid_document_publish_operation_events.created_at`]).whereRef(`lucid_document_publish_operation_events.operation_id`,`=`,`lucid_document_publish_operations.id`).orderBy(`lucid_document_publish_operation_events.created_at`,`asc`)).as(`events`)]),c=n.queryParams.sort!==void 0&&n.queryParams.sort.length>0?s:s.orderBy(`lucid_document_publish_operations.created_at`,`desc`),[l,u]=await Promise.all([c.execute(),o.count?.executeTakeFirst()]);return[l,u]},{method:`selectMultipleDetailed`});return r.response.error?r.response:this.validateResponse(r,{...n.validation,mode:`multiple-count`})}async selectOverview(t){let n=()=>{let n=this.db.selectFrom(`lucid_document_publish_operations`).where(`lucid_document_publish_operations.operation_type`,`=`,`request`).where(`lucid_document_publish_operations.status`,`!=`,`superseded`);return n=e.tenantScope(n,{tenantKey:t.tenantKey,column:`lucid_document_publish_operations.tenant_key`}),n=n.where(`lucid_document_publish_operations.collection_key`,`in`,t.collectionKeys),t.collectionKey&&(n=n.where(`lucid_document_publish_operations.collection_key`,`=`,t.collectionKey)),t.target&&(n=n.where(`lucid_document_publish_operations.target`,`=`,t.target)),n},r=async e=>(await e.select(a`count(*)`.as(`count`)).executeTakeFirst())?.count;return(await this.executeQuery(async()=>{let[e,i,o,s,c,l,u,d]=await Promise.all([r(n()),r(n().where(`lucid_document_publish_operations.status`,`=`,`pending`)),r(n().where(({exists:e,selectFrom:n})=>e(n(`lucid_document_publish_operation_assignees`).select(a.lit(1).as(`one`)).whereRef(`lucid_document_publish_operation_assignees.operation_id`,`=`,`lucid_document_publish_operations.id`).where(`lucid_document_publish_operation_assignees.user_id`,`=`,t.userId)))),r(n().where(`lucid_document_publish_operations.requested_by`,`=`,t.userId)),r(n().where(`lucid_document_publish_operations.execution_status`,`=`,`scheduled`)),r(n().where(`lucid_document_publish_operations.status`,`=`,`approved`)),r(n().where(`lucid_document_publish_operations.status`,`=`,`rejected`)),r(n().where(`lucid_document_publish_operations.execution_status`,`=`,`failed`))]);return{total:e,pending:i,assignedToMe:o,requestedByMe:s,scheduled:c,approved:l,rejected:u,failed:d}},{method:`selectOverview`})).response}};export{o as default};
//# sourceMappingURL=document-publish-operations.mjs.map