From 691685c0cf180a4e3929f58dc2dd8c62cf19fdc7 Mon Sep 17 00:00:00 2001 From: nshandra <34254522+nshandra@users.noreply.github.com> Date: Thu, 5 Sep 2024 13:36:55 +0200 Subject: [PATCH] feat: make MessageMSTeamsRepository common. --- .../MessageMSTeamsRepository.ts | 4 ++-- .../repositories/user-monitoring/common/MessageRepository.ts | 2 +- .../authorities-monitoring/MonitorUsersByAuthorityUseCase.ts | 5 ++++- .../user-group-monitoring/MonitorUserGroupsUseCase.ts | 5 ++++- .../user-template-monitoring/MonitorUserTemplatesUseCase.ts | 5 ++++- src/scripts/commands/usermonitoring.ts | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) rename src/data/user-monitoring/{authorities-monitoring => common}/MessageMSTeamsRepository.ts (89%) diff --git a/src/data/user-monitoring/authorities-monitoring/MessageMSTeamsRepository.ts b/src/data/user-monitoring/common/MessageMSTeamsRepository.ts similarity index 89% rename from src/data/user-monitoring/authorities-monitoring/MessageMSTeamsRepository.ts rename to src/data/user-monitoring/common/MessageMSTeamsRepository.ts index 89901d6..1538103 100644 --- a/src/data/user-monitoring/authorities-monitoring/MessageMSTeamsRepository.ts +++ b/src/data/user-monitoring/common/MessageMSTeamsRepository.ts @@ -7,7 +7,7 @@ import { MessageRepository } from "domain/repositories/user-monitoring/common/Me export class MessageMSTeamsRepository implements MessageRepository { constructor(private webhook: MSTeamsWebhookOptions) {} - async sendMessage(message: string): Async { + async sendMessage(messageType: string, message: string): Async { const httpProxy = this.webhook.proxy; const url = this.webhook.ms_url; const server_name = this.webhook.server_name; @@ -18,7 +18,7 @@ export class MessageMSTeamsRepository implements MessageRepository { } const postData = JSON.stringify({ - text: `[*AUTHORITIES-MONITORING* - ${server_name}] - ${message}`, + text: `[*${messageType}* - ${server_name}] - ${message}`, }); const requestOptions = { diff --git a/src/domain/repositories/user-monitoring/common/MessageRepository.ts b/src/domain/repositories/user-monitoring/common/MessageRepository.ts index 08ae34e..ad8bdfc 100644 --- a/src/domain/repositories/user-monitoring/common/MessageRepository.ts +++ b/src/domain/repositories/user-monitoring/common/MessageRepository.ts @@ -1,5 +1,5 @@ import { Async } from "domain/entities/Async"; export interface MessageRepository { - sendMessage(message: string): Async; + sendMessage(messageType: string, message: string): Async; } diff --git a/src/domain/usecases/user-monitoring/authorities-monitoring/MonitorUsersByAuthorityUseCase.ts b/src/domain/usecases/user-monitoring/authorities-monitoring/MonitorUsersByAuthorityUseCase.ts index 36aac29..9a7c4ab 100644 --- a/src/domain/usecases/user-monitoring/authorities-monitoring/MonitorUsersByAuthorityUseCase.ts +++ b/src/domain/usecases/user-monitoring/authorities-monitoring/MonitorUsersByAuthorityUseCase.ts @@ -74,7 +74,10 @@ export class MonitorUsersByAuthorityUseCase { log.info("Report: No changes."); } else { const messages = this.makeMessages(newUsers, usersLosingAuth); - const teamsStatus = await this.MessageRepository.sendMessage(messages); + const teamsStatus = await this.MessageRepository.sendMessage( + "AUTHORITIES-MONITORING", + messages + ); if (teamsStatus) { log.info(`Message sent to MSTeams`); } diff --git a/src/domain/usecases/user-monitoring/user-group-monitoring/MonitorUserGroupsUseCase.ts b/src/domain/usecases/user-monitoring/user-group-monitoring/MonitorUserGroupsUseCase.ts index a6269ce..2493284 100644 --- a/src/domain/usecases/user-monitoring/user-group-monitoring/MonitorUserGroupsUseCase.ts +++ b/src/domain/usecases/user-monitoring/user-group-monitoring/MonitorUserGroupsUseCase.ts @@ -106,7 +106,10 @@ export class MonitorUserGroupsUseCase { log.info("Report: No changes."); } else { const messages = this.makeMessages(userGroupsChanges); - const teamsStatus = await this.MessageRepository.sendMessage(messages); + const teamsStatus = await this.MessageRepository.sendMessage( + "USERGROUPS-MONITORING", + messages + ); if (teamsStatus) { log.info(`Message sent to MSTeams`); } diff --git a/src/domain/usecases/user-monitoring/user-template-monitoring/MonitorUserTemplatesUseCase.ts b/src/domain/usecases/user-monitoring/user-template-monitoring/MonitorUserTemplatesUseCase.ts index 1497861..039c91c 100644 --- a/src/domain/usecases/user-monitoring/user-template-monitoring/MonitorUserTemplatesUseCase.ts +++ b/src/domain/usecases/user-monitoring/user-template-monitoring/MonitorUserTemplatesUseCase.ts @@ -131,7 +131,10 @@ export class MonitorUserTemplatesUseCase { log.info("Report: No changes."); } else { const messages = this.makeMessages(userGroupsChanges); - const teamsStatus = await this.MessageRepository.sendMessage(messages); + const teamsStatus = await this.MessageRepository.sendMessage( + "USER-TEMPLATES-MONITORING", + messages + ); if (teamsStatus) { log.info(`Message sent to MSTeams`); } diff --git a/src/scripts/commands/usermonitoring.ts b/src/scripts/commands/usermonitoring.ts index f332595..c8d9176 100644 --- a/src/scripts/commands/usermonitoring.ts +++ b/src/scripts/commands/usermonitoring.ts @@ -19,7 +19,7 @@ import { PermissionFixerUserD2Repository } from "data/user-monitoring/permission import { AuthoritiesMonitoringConfigD2Repository } from "data/user-monitoring/authorities-monitoring/AuthoritiesMonitoringConfigD2Repository"; import { UserRolesD2Repository } from "data/user-monitoring/authorities-monitoring/UserRolesD2Repository"; -import { MessageMSTeamsRepository } from "data/user-monitoring/authorities-monitoring/MessageMSTeamsRepository"; +import { MessageMSTeamsRepository } from "data/user-monitoring/common/MessageMSTeamsRepository"; import { MSTeamsWebhookOptions } from "data/user-monitoring/entities/MSTeamsWebhookOptions"; import { MonitorUsersByAuthorityUseCase } from "domain/usecases/user-monitoring/authorities-monitoring/MonitorUsersByAuthorityUseCase";