fix : test email : new controller

This commit is contained in:
morteza-mortezai
2025-12-07 21:05:00 +03:30
parent 1e7732ace9
commit 68c1606320
3 changed files with 33 additions and 23 deletions
@@ -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);
}
}