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.12 kB
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../constants/constants.mjs";import n from"../../utils/helpers/format-email-subject.mjs";import r from"../../libs/repositories/user-tokens.mjs";import i from"../../libs/repositories/users.mjs";import{multiTenancyEnabled as a}from"../../utils/helpers/tenants.mjs";import o from"../email/send-email.mjs";import s from"../user-tokens/create-single.mjs";import c from"../../libs/formatters/index.mjs";import{add as l}from"date-fns";const u=async(u,d)=>{let f=new i(u.db.client,u.config.db),p=new r(u.db.client,u.config.db),m=await f.selectSinglePreset({tenantKey:u.request.tenantKey,where:[{key:`id`,operator:`=`,value:d.userId}],validation:{enabled:!0,defaultError:{message:e(`server:core.user.not.found.message`),status:404}}});if(m.error)return m;if(c.formatBoolean(m.data.invitation_accepted))return{error:{type:`basic`,status:400,name:e(`server:core.auth.invitations.user.already.accepted.name`),message:e(`server:core.auth.invitations.user.already.accepted.message`)},data:void 0};let h=a(u.config)?(m.data.tenants??[]).map(e=>e.tenant_key):[],g=new Date().toISOString(),_=await p.updateMultiple({data:{revoked_at:g,revoke_reason:t.userTokenRevokeReasons.invitationResent,expiry_date:g},where:[{key:`user_id`,operator:`=`,value:d.userId},{key:`token_type`,operator:`=`,value:t.userTokens.invitation},{key:`revoked_at`,operator:`is`,value:null}]});if(_.error)return _;let v=l(new Date,{minutes:t.userInviteTokenExpirationMinutes}).toISOString(),y=await s(u,{userId:m.data.id,tokenType:t.userTokens.invitation,expiryDate:v});if(y.error)return y;let b=await o(u,{type:`internal`,to:m.data.email,subject:e=>n(u.translate(`server:core.email.invitations.email.subject`),e.context.brand.name),template:t.email.templates.userInvite.key,data:{firstName:m.data.first_name,lastName:m.data.last_name,email:m.data.email,inviteLink:`${t.email.locations.acceptInvitation}?token=${y.data.token}`},storage:t.email.templates.userInvite.storage,tenantKeys:h});return b.error?b:{error:void 0,data:null}};export{u as default}; //# sourceMappingURL=resend-invitation.mjs.map