@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.47 kB
JavaScript
import{copy as e}from"../i18n/copy.mjs";import t from"../../constants/constants.mjs";import n from"../repositories/queue-job-tenants.mjs";import r from"../repositories/queue-jobs.mjs";import{getTenantConfig as i}from"../../utils/helpers/tenants.mjs";import{randomUUID as a}from"node:crypto";const o=async(o,s)=>{let c=new Date,l=`pending`,u=new r(o.db.client,o.config.db),d=new n(o.db.client,o.config.db),f=Array.from(new Set(s.options?.tenantKeys??(o.request.tenantKey?[o.request.tenantKey]:[]))),p=f.find(e=>i(o.config,e)===void 0);if(p!==void 0)return{error:{type:`basic`,message:e(`server:core.tenants.unknown`,{data:{key:p}}),status:400},data:void 0};let m=s.payloads.map(e=>({jobId:a(),payload:e})),h=await u.createMultiple({data:m.map(e=>({job_id:e.jobId,event_type:s.event,event_data:e.payload,status:l,queue_adapter_key:s.adapterKey,priority:s.options?.priority??0,attempts:0,max_attempts:s.options?.maxAttempts??t.queue.maxAttempts,error_message:null,created_at:c.toISOString(),scheduled_for:s.options?.scheduledFor?s.options.scheduledFor.toISOString():void 0,created_by_user_id:s.options?.createdByUserId??null,updated_at:c.toISOString()})),returning:[`id`]});if(h.error)return h;let g=h.data??[];if(f.length>0&&g.length>0){let e=await d.createMultiple({data:g.flatMap(e=>f.map(t=>({queue_job_id:e.id,tenant_key:t})))});if(e.error)return e}return{error:void 0,data:{jobs:m,event:s.event,status:l}}};export{o as insertJobs};
//# sourceMappingURL=insert-job.mjs.map