UNPKG

@lucidcms/core

Version:

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

2 lines 1.86 kB
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../libs/repositories/email-transactions.mjs";import n from"../../libs/repositories/emails.mjs";import r from"../../libs/email/is-simulated.mjs";import{getEmailResendState as i}from"../../libs/email/storage/resend.mjs";const a=async(a,o)=>{let s=new n(a.db.client,a.config.db),c=new t(a.db.client,a.config.db),l=await s.selectSingleById({id:o.id,tenantKey:a.request.tenantKey,validation:{enabled:!0,defaultError:{message:e(`server:core.email.not.found.message`),status:404}}});if(l.error)return l;let u=i({createdAt:l.data.created_at,storage:l.data.storage_strategy,resendWindowDays:a.config.email.resendWindowDays});if(u.error)return u;if(!u.data.enabled)return{error:{message:e(`server:core.email.resend.not.available`),status:400},data:void 0};let[d,f]=await Promise.all([s.updateSingle({where:[{key:`id`,operator:`=`,value:l.data.id}],data:{current_status:`scheduled`,updated_at:new Date().toISOString()}}),c.createSingle({data:{email_id:l.data.id,delivery_status:`scheduled`,message:null,strategy_identifier:a.email.key,strategy_data:null,simulate:r(a),external_message_id:null},validation:{enabled:!0},returning:[`id`]})]);if(f.error)return f;if(d.error)return d;let p=await a.queue.add(a,{event:`email:send`,payload:{emailId:l.data.id,transactionId:f.data.id??0},options:{tenantKeys:l.data.tenants?.map(e=>e.tenant_key)??[]}});return p.error?(await Promise.all([s.updateSingle({where:[{key:`id`,operator:`=`,value:l.data.id}],data:{current_status:`failed`,updated_at:new Date().toISOString()}}),c.updateSingle({where:[{key:`id`,operator:`=`,value:f.data.id}],data:{delivery_status:`failed`,message:a.translate.english(p.error.message)??null,updated_at:new Date().toISOString()}})]),p):{error:void 0,data:{jobId:p.data.jobId}}};export{a as default}; //# sourceMappingURL=resend-single.mjs.map