Skip to content

Commit

Permalink
Merge pull request activepieces#5319 from activepieces/fix/invitation…
Browse files Browse the repository at this point in the history
…-link

fix: show invitation link when inviting someone already invited and smtp isn't configured
  • Loading branch information
AbdulTheActivePiecer authored Aug 11, 2024
2 parents 1aa1935 + 95ab50c commit e284963
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { readFile } from 'node:fs/promises'
import { AppSystemProp, system } from '@activepieces/server-shared'
import { AppSystemProp, logger, system } from '@activepieces/server-shared'
import { isNil, Platform } from '@activepieces/shared'
import Mustache from 'mustache'
import nodemailer, { Transporter } from 'nodemailer'
Expand Down Expand Up @@ -31,6 +31,7 @@ export const smtpEmailSender: SMTPEmailSender = {
const senderEmail = platform?.smtpSenderEmail ?? system.get(AppSystemProp.SMTP_SENDER_EMAIL)

if (!isSmtpConfigured(platform)) {
logger.error(`SMTP isn't configured for sending the email ${emailSubject}`)
return
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

import { ActivepiecesError, apId, assertEqual, assertNotNullOrUndefined, ErrorCode, InvitationStatus, InvitationType, isNil, PlatformRole, ProjectMemberRole, SeekPage, spreadIfDefined, UserInvitation, UserInvitationWithLink } from '@activepieces/shared'
import { ActivepiecesError, apId, assertEqual, assertNotNullOrUndefined, ErrorCode, InvitationStatus, InvitationType, isNil, Platform, PlatformRole, ProjectMemberRole, SeekPage, spreadIfDefined, UserInvitation, UserInvitationWithLink } from '@activepieces/shared'
import dayjs from 'dayjs'
import { IsNull, MoreThanOrEqual } from 'typeorm'
import { repoFactory } from '../core/db/repo-factory'
Expand Down Expand Up @@ -83,8 +83,10 @@ export const userInvitationsService = {
platformId,
projectId: isNil(projectId) ? IsNull() : projectId,
})
const platform = await platformService.getOneOrThrow(platformId)

if (!isNil(invitation)) {
return invitation
return handleInvitationLink({ platform, userInvitation: invitation })
}
const id = apId()
await repo().upsert({
Expand All @@ -102,19 +104,8 @@ export const userInvitationsService = {
id,
platformId,
})
const invitationLink = await generateInvitationLink(userInvitation)
await emailService.sendInvitation({
userInvitation,
invitationLink,
})
const platform = await platformService.getOneOrThrow(platformId)
if (!smtpEmailSender.isSmtpConfigured(platform)) {
return {
...userInvitation,
link: invitationLink,
}
}
return userInvitation

return handleInvitationLink({ platform, userInvitation })
},
async list(params: ListUserParams): Promise<SeekPage<UserInvitation>> {
const decodedCursor = paginationHelper.decodeCursor(params.cursor ?? null)
Expand Down Expand Up @@ -217,6 +208,20 @@ async function generateInvitationLink(userInvitation: UserInvitation): Promise<s
path: `invitation?token=${token}&email=${encodeURIComponent(userInvitation.email)}`,
})
}
const handleInvitationLink = async ({ platform, userInvitation }: { platform: Platform, userInvitation: UserInvitation }) => {
const invitationLink = await generateInvitationLink(userInvitation)
if (!smtpEmailSender.isSmtpConfigured(platform)) {
return {
...userInvitation,
link: invitationLink,
}
}
await emailService.sendInvitation({
userInvitation,
invitationLink,
})
return userInvitation
}
type ListUserParams = {
platformId: string
type: InvitationType
Expand Down Expand Up @@ -284,4 +289,4 @@ export type GetOneByPlatformIdAndEmailParams = {
email: string
platformId: string
projectId: string | null
}
}

0 comments on commit e284963

Please sign in to comment.