diff --git a/src/app.module.ts b/src/app.module.ts index bc20acf..040bf33 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -22,7 +22,6 @@ import { TelegramBotService } from './telegram-bot/telegram-bot.service'; import { UserMetaInfoService } from './user-meta-info/user-meta-info.service'; import { UserMetaInfo } from './couchdb-datasources/user-meta-info'; import { PersonalNotificationAdapterService } from './notifications/adapters/personal-notification.adapter/personal-notification.adapter.service'; -import { PublicUrlAdapterService } from './notifications/adapters/public-url.adapter.service'; import { StatusChangeAdapterService } from './notifications/adapters/status-change.adapter.service'; @Module({ @@ -49,7 +48,6 @@ import { StatusChangeAdapterService } from './notifications/adapters/status-chan UserMetaInfoService, UserMetaInfo, PersonalNotificationAdapterService, - PublicUrlAdapterService, StatusChangeAdapterService, ], }) diff --git a/src/converters/redmine-public-url.converter.ts b/src/converters/redmine-public-url.converter.ts index 1abf0b1..da7b4d2 100644 --- a/src/converters/redmine-public-url.converter.ts +++ b/src/converters/redmine-public-url.converter.ts @@ -1,3 +1,4 @@ +import { RedmineTypes } from '@app/event-emitter/models/redmine-types'; import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; @@ -14,4 +15,13 @@ export class RedminePublicUrlConverter { convert(issueId: number | string): string { return `${this.redminePublicUrlPrefix}/issues/${issueId}`; } + + getUrl(issueId: number | string): string { + return this.convert(issueId); + } + + getHtmlHref(issue: RedmineTypes.Issue): string { + const url = this.getUrl(issue.id); + return `${issue.tracker.name} #${issue.id}`; + } } diff --git a/src/notifications/adapters/personal-notification.adapter/personal-notification.adapter.service.ts b/src/notifications/adapters/personal-notification.adapter/personal-notification.adapter.service.ts index 83c645a..6d946ea 100644 --- a/src/notifications/adapters/personal-notification.adapter/personal-notification.adapter.service.ts +++ b/src/notifications/adapters/personal-notification.adapter/personal-notification.adapter.service.ts @@ -4,7 +4,7 @@ import { ConfigService } from '@nestjs/config'; import { IssueAndPersonalParsedMessageModel } from 'src/models/issue-and-personal-parsed-message.model'; import { TelegramBotService } from 'src/telegram-bot/telegram-bot.service'; import Handlebars from 'handlebars'; -import { PublicUrlAdapterService } from '../public-url.adapter.service'; +import { RedminePublicUrlConverter } from 'src/converters/redmine-public-url.converter'; @Injectable() export class PersonalNotificationAdapterService { @@ -14,7 +14,7 @@ export class PersonalNotificationAdapterService { private telegramBotService: TelegramBotService, private configService: ConfigService, private usersService: UsersService, - private publicUrlAdapterService: PublicUrlAdapterService, + private redminePublicUrlConverter: RedminePublicUrlConverter, ) { const template = this.configService.get('personalMessageTemplate'); this.personalMessageTemplate = Handlebars.compile(template); @@ -26,7 +26,7 @@ export class PersonalNotificationAdapterService { const promises = issueAndMessages.personalParsedMessage.recipients.map( async (recipient) => { const redmineId = recipient; - const issueUrlHtml = this.publicUrlAdapterService.getHtmlHref( + const issueUrlHtml = this.redminePublicUrlConverter.getHtmlHref( issueAndMessages.issue, ); const sender = await this.usersService.getUser( diff --git a/src/notifications/adapters/public-url.adapter.service.ts b/src/notifications/adapters/public-url.adapter.service.ts deleted file mode 100644 index fe2b4de..0000000 --- a/src/notifications/adapters/public-url.adapter.service.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { RedmineTypes } from '@app/event-emitter/models/redmine-types'; -import { Injectable } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; - -@Injectable() -export class PublicUrlAdapterService { - private publicUrl: string; - - constructor(private configService: ConfigService) { - this.publicUrl = this.configService.get('redmineUrlPublic'); - } - - getUrl(issueId: number): string { - return `${this.publicUrl}/issues/${issueId}`; - } - - getHtmlHref(issue: RedmineTypes.Issue): string { - const url = this.getUrl(issue.id); - return `${issue.tracker.name} #${issue.id}`; - } -}