fix(auth/swagger): make WA failure non-fatal and include /api prefix in docs

This commit is contained in:
2026-04-01 17:04:25 +08:00
parent a3940321a7
commit b751f031cd
5 changed files with 182 additions and 172 deletions

View File

@@ -33,6 +33,8 @@ export async function POST(req: Request) {
const codeOtp = randomOTP();
const otpNumber = Number(codeOtp);
console.log(`🔑 DEBUG OTP [${nomor}]: ${codeOtp}`);
const waMessage = `Website Desa Darmasaba - Kode ini bersifat RAHASIA dan JANGAN DI BAGIKAN KEPADA SIAPAPUN, termasuk anggota ataupun Admin lainnya.\n\n>> Kode OTP anda: ${codeOtp}.`;
const waUrl = `https://wa.wibudev.com/code?nom=${encodeURIComponent(nomor)}&text=${encodeURIComponent(waMessage)}`;
@@ -40,26 +42,19 @@ export async function POST(req: Request) {
try {
const res = await fetch(waUrl);
const sendWa = await res.json();
console.log("📱 WA Response:", sendWa);
if (sendWa.status !== "success") {
console.error("❌ WA Service Error:", sendWa);
return NextResponse.json(
{
success: false,
message: "Gagal mengirim OTP via WhatsApp",
debug: sendWa
},
{ status: 400 }
);
if (!res.ok) {
const errorText = await res.text();
console.error(`⚠️ WA Service HTTP Error: ${res.status} ${res.statusText}. Continuing since OTP is logged.`);
console.log(`💡 Use this OTP to login: ${codeOtp}`);
} else {
const sendWa = await res.json();
console.log("📱 WA Response:", sendWa);
if (sendWa.status !== "success") {
console.error("⚠️ WA Service Logic Error:", sendWa);
}
}
} catch (waError) {
console.error("❌ Fetch WA Error:", waError);
return NextResponse.json(
{ success: false, message: "Terjadi kesalahan saat mengirim WA" },
{ status: 500 }
);
} catch (waError: any) {
console.error("⚠️ WA Connection Exception. Continuing since OTP is logged.", waError.message);
}
const createOtpId = await prisma.kodeOtp.create({