Добавлен IssueUrlEnhancer

This commit is contained in:
Pavel Gnedov 2023-02-09 16:35:50 +07:00
parent 32bc8ace7e
commit a51b8dae7c
3 changed files with 29 additions and 0 deletions

View file

@ -22,6 +22,7 @@ import { ProjectDashboardService } from './project-dashboard/project-dashboard.s
import { RootIssueSubTreesWidgetService } from './project-dashboard/widgets/root-issue-subtrees.widget.service';
import { DynamicLoader } from './configs/dynamic-loader';
import { RedminePublicUrlConverter } from './converters/redmine-public-url.converter';
import { IssueUrlEnhancer } from './issue-enhancers/issue-url-enhancer';
@Module({})
export class EventEmitterModule implements OnModuleInit {
@ -48,6 +49,7 @@ export class EventEmitterModule implements OnModuleInit {
RootIssueSubTreesWidgetService,
DynamicLoader,
RedminePublicUrlConverter,
IssueUrlEnhancer,
],
exports: [
EventEmitterService,
@ -66,6 +68,7 @@ export class EventEmitterModule implements OnModuleInit {
RootIssueSubTreesWidgetService,
DynamicLoader,
RedminePublicUrlConverter,
IssueUrlEnhancer,
],
controllers: [MainController, UsersController, IssuesController],
};

View file

@ -0,0 +1,23 @@
import { Injectable } from '@nestjs/common';
import { RedminePublicUrlConverter } from '../converters/redmine-public-url.converter';
import { RedmineTypes } from '../models/redmine-types';
import { IssueEnhancerInterface } from './issue-enhancer-interface';
@Injectable()
export class IssueUrlEnhancer implements IssueEnhancerInterface {
name = 'issue-url';
constructor(private redminePublicUrlConverter: RedminePublicUrlConverter) {}
async enhance(
issue: RedmineTypes.Issue,
): Promise<RedmineTypes.Issue & Record<string, any>> {
const res: RedmineTypes.Issue & Record<string, any> = issue;
res['url'] = {
url: this.redminePublicUrlConverter.getUrl(issue.id),
fullHref: this.redminePublicUrlConverter.getHtmlHref(issue),
minHref: this.redminePublicUrlConverter.getMinHtmlHref(issue.id),
};
return res;
}
}

View file

@ -36,6 +36,7 @@ import { DailyEccmUserCommentsService } from './reports/daily-eccm-user-comments
import { SetDailyEccmUserCommentBotHandlerService } from './telegram-bot/handlers/set-daily-eccm-user-comment.bot-handler.service';
import { DailyEccmWithExtraDataService } from './reports/daily-eccm-with-extra-data.service';
import { SimpleKanbanBoardController } from './dashboards/simple-kanban-board.controller';
import { IssueUrlEnhancer } from '@app/event-emitter/issue-enhancers/issue-url-enhancer';
@Module({
imports: [
@ -90,6 +91,7 @@ export class AppModule implements OnModuleInit {
private timestampEnhancer: TimestampEnhancer,
private customFieldsEnhancer: CustomFieldsEnhancer,
private currentUserEnhancer: CurrentUserEnhancer,
private issueUrlEnhancer: IssueUrlEnhancer,
private statusChangeNotificationsService: StatusChangeNotificationsService,
private changesCacheWriterService: ChangesCacheWriterService,
private telegramBotService: TelegramBotService,
@ -111,6 +113,7 @@ export class AppModule implements OnModuleInit {
this.timestampEnhancer,
this.customFieldsEnhancer,
this.currentUserEnhancer,
this.issueUrlEnhancer,
]);
this.personalNotificationsService.$messages.subscribe((resp) => {