fix : test email : new controller
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
import { Controller, Get, Query } from "@nestjs/common";
|
||||||
|
import { ApiOperation, ApiResponse } from "@nestjs/swagger";
|
||||||
|
|
||||||
|
import { EmailSpamService } from "./services/email-spam.service";
|
||||||
|
import { AdminRoute } from "../../common/decorators/admin.decorator";
|
||||||
|
|
||||||
|
@Controller("email-blocking")
|
||||||
|
export class EmailBlockingController {
|
||||||
|
constructor(private readonly emailSpamService: EmailSpamService) {}
|
||||||
|
|
||||||
|
@Get("diagnose")
|
||||||
|
@AdminRoute()
|
||||||
|
@ApiOperation({
|
||||||
|
summary: "Diagnose email blocking issues (Admin only)",
|
||||||
|
description: "Check if a sender domain is blocked for a recipient and optionally unblock it",
|
||||||
|
})
|
||||||
|
@ApiResponse({ status: 200, description: "Diagnostic information" })
|
||||||
|
@ApiResponse({ status: 400, description: "Invalid parameters" })
|
||||||
|
@ApiResponse({ status: 403, description: "Not authorized (Admin only)" })
|
||||||
|
async diagnoseEmailBlocking(
|
||||||
|
@Query("recipient") recipientEmail: string,
|
||||||
|
@Query("senderDomain") senderDomain: string,
|
||||||
|
@Query("unblock") unblock?: string,
|
||||||
|
) {
|
||||||
|
if (!recipientEmail || !senderDomain) {
|
||||||
|
throw new Error("Both recipient and senderDomain query parameters are required");
|
||||||
|
}
|
||||||
|
const shouldUnblock = unblock === "true" || unblock === "1";
|
||||||
|
return this.emailSpamService.diagnoseEmailBlocking(recipientEmail, senderDomain, shouldUnblock);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,7 +7,6 @@ import { AttachmentIdQueryDto, MailboxIdQueryDto, MessageParamDto, QueueIdParamD
|
|||||||
import { MessageListQueryDto } from "./DTO/email-query.dto";
|
import { MessageListQueryDto } from "./DTO/email-query.dto";
|
||||||
import { EmailSuggestionsQueryDto, SearchMessagesQueryDto } from "./DTO/email-query.dto";
|
import { EmailSuggestionsQueryDto, SearchMessagesQueryDto } from "./DTO/email-query.dto";
|
||||||
import { SendEmailDto, UpdateDraftDto } from "./DTO/send-email.dto";
|
import { SendEmailDto, UpdateDraftDto } from "./DTO/send-email.dto";
|
||||||
import { EmailSpamService } from "./services/email-spam.service";
|
|
||||||
import { EmailService } from "./services/email.service";
|
import { EmailService } from "./services/email.service";
|
||||||
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
||||||
import { UserDec } from "../../common/decorators/user.decorator";
|
import { UserDec } from "../../common/decorators/user.decorator";
|
||||||
@@ -18,7 +17,6 @@ import { User } from "../users/entities/user.entity";
|
|||||||
export class EmailController {
|
export class EmailController {
|
||||||
constructor(
|
constructor(
|
||||||
private readonly emailService: EmailService,
|
private readonly emailService: EmailService,
|
||||||
private readonly emailSpamService: EmailSpamService,
|
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@Post("send")
|
@Post("send")
|
||||||
@@ -318,24 +316,4 @@ export class EmailController {
|
|||||||
return this.emailService.performBulkAction(user.wildduckUserId, user.id, bulkActionDto, query.mailbox);
|
return this.emailService.performBulkAction(user.wildduckUserId, user.id, bulkActionDto, query.mailbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get("diagnose-blocking")
|
|
||||||
// @AdminRoute()
|
|
||||||
@ApiOperation({
|
|
||||||
summary: "Diagnose email blocking issues (Admin only)",
|
|
||||||
description: "Check if a sender domain is blocked for a recipient and optionally unblock it",
|
|
||||||
})
|
|
||||||
@ApiResponse({ status: 200, description: "Diagnostic information" })
|
|
||||||
@ApiResponse({ status: 400, description: "Invalid parameters" })
|
|
||||||
@ApiResponse({ status: 403, description: "Not authorized (Admin only)" })
|
|
||||||
async diagnoseEmailBlocking(
|
|
||||||
@Query("recipient") recipientEmail: string,
|
|
||||||
@Query("senderDomain") senderDomain: string,
|
|
||||||
@Query("unblock") unblock?: string,
|
|
||||||
) {
|
|
||||||
if (!recipientEmail || !senderDomain) {
|
|
||||||
throw new Error("Both recipient and senderDomain query parameters are required");
|
|
||||||
}
|
|
||||||
const shouldUnblock = unblock === "true" || unblock === "1";
|
|
||||||
return this.emailSpamService.diagnoseEmailBlocking(recipientEmail, senderDomain, shouldUnblock);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { MikroOrmModule } from "@mikro-orm/nestjs";
|
|||||||
import { BullModule } from "@nestjs/bullmq";
|
import { BullModule } from "@nestjs/bullmq";
|
||||||
import { Module } from "@nestjs/common";
|
import { Module } from "@nestjs/common";
|
||||||
|
|
||||||
|
import { EmailBlockingController } from "./email-blocking.controller";
|
||||||
import { EmailController } from "./email.controller";
|
import { EmailController } from "./email.controller";
|
||||||
import { EmailHeadersService } from "./services/email-headers.service";
|
import { EmailHeadersService } from "./services/email-headers.service";
|
||||||
import { EmailSpamService } from "./services/email-spam.service";
|
import { EmailSpamService } from "./services/email-spam.service";
|
||||||
@@ -27,7 +28,7 @@ import { User } from "../users/entities/user.entity";
|
|||||||
EmailUtilsModule,
|
EmailUtilsModule,
|
||||||
MikroOrmModule.forFeature([User]),
|
MikroOrmModule.forFeature([User]),
|
||||||
],
|
],
|
||||||
controllers: [EmailController],
|
controllers: [EmailController, EmailBlockingController],
|
||||||
providers: [EmailService, EmailSpamService, EmailHeadersService, EmailBulkActionProcessor],
|
providers: [EmailService, EmailSpamService, EmailHeadersService, EmailBulkActionProcessor],
|
||||||
exports: [EmailService, EmailSpamService, EmailHeadersService, EmailBulkActionProcessor],
|
exports: [EmailService, EmailSpamService, EmailHeadersService, EmailBulkActionProcessor],
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user