From c8fce4cbda7a9cbad48913d7202bcc85bd1e4657 Mon Sep 17 00:00:00 2001 From: Pavel Gnedov Date: Tue, 4 Oct 2022 03:13:57 +0700 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D0=BD=D0=B0=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D0=B2=D0=B5=D1=80=D1=82=D0=B5=D1=80=D0=B0=20url=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.module.ts | 2 -- .../redmine-public-url.converter.ts | 10 +++++++++ .../personal-notification.adapter.service.ts | 6 +++--- .../adapters/public-url.adapter.service.ts | 21 ------------------- 4 files changed, 13 insertions(+), 26 deletions(-) delete mode 100644 src/notifications/adapters/public-url.adapter.service.ts 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}`; - } -}