diff --git a/packages/feedback-service/src/feedback-config/schema.ts b/packages/feedback-service/src/feedback-config/schema.ts index f88c31011..7ab322ee2 100644 --- a/packages/feedback-service/src/feedback-config/schema.ts +++ b/packages/feedback-service/src/feedback-config/schema.ts @@ -13,6 +13,9 @@ export const FeedbackConfigSchema: Schema = new Schema({ required: true, unique: true, }, + projectFrontendUrl: { + type: String, + }, isEnabled: { type: Boolean, default: true }, sourceType: { type: String, enum: ['JIRA', 'GITLAB', 'GITHUB', 'EMAIL'], default: 'JIRA' }, sourceApiUrl: { type: String }, diff --git a/packages/feedback-service/src/feedback-config/typedef.graphql b/packages/feedback-service/src/feedback-config/typedef.graphql index 82c013aa3..294276498 100644 --- a/packages/feedback-service/src/feedback-config/typedef.graphql +++ b/packages/feedback-service/src/feedback-config/typedef.graphql @@ -24,6 +24,7 @@ type FeedbackConfigType { sourceHeaders: [FeedbackHeaderType] projectKey: String feedbackEmail: String + projectFrontendUrl: String } input FeedbackConfigInput { @@ -36,6 +37,7 @@ input FeedbackConfigInput { sourceHeaders: [FeedbackHeaderInput] projectKey: String feedbackEmail: String + projectFrontendUrl: String } type Query { diff --git a/packages/feedback-service/src/helpers.ts b/packages/feedback-service/src/helpers.ts index 99503a05b..ab0cf31f0 100644 --- a/packages/feedback-service/src/helpers.ts +++ b/packages/feedback-service/src/helpers.ts @@ -324,14 +324,23 @@ function createEmailTemplate( ) { const appName = projectId.split( '/' )[ 1 ] ?? projectId; + const getPageUrl = ( str: string ) => { + try { + const url = new URL( str ); + return url.toString(); + } catch ( err ) { + return new URL( str, config.projectFrontendUrl ?? process.env.FEEDBACK_CLIENT!.toLowerCase() ); + } + } + + const pageUrl = getPageUrl(feedback.stackInfo?.path ?? '/'); + const emailBody = ` Hi ${userInfo[0].cn},

We have received the ${feedback.category.toLowerCase()} for the ${appName}

Summary: ${feedback.summary}

-URL: ${new URL(process.env.FEEDBACK_CLIENT as string).origin}${ - (feedback.stackInfo as any)?.path - }

+URL: ${pageUrl}

${ feedback.ticketUrl diff --git a/packages/feedback-service/src/types.d.ts b/packages/feedback-service/src/types.d.ts index 707978f1e..7385cbbc6 100644 --- a/packages/feedback-service/src/types.d.ts +++ b/packages/feedback-service/src/types.d.ts @@ -92,6 +92,7 @@ type FeedbackConfigType = { }>; projectKey: string; feedbackEmail: string; + projectFrontendUrl: string; }; type FeedbackConfigInput = {