Usulan Commit Message

fix: Implementasi retry mechanism dan error handling untuk database connections

Deskripsi:

Menambahkan withRetry wrapper pada berbagai API routes untuk menangani transient database errors dan meningkatkan reliabilitas koneksi

Memperbaiki error handling pada notification, authentication, dan user validation endpoints dengan response 503 untuk database connection errors

Update prisma.ts dengan konfigurasi logging yang lebih baik dan datasources configuration

Menambahkan validasi input parameters pada beberapa endpoints

Update dokumentasi QWEN.md dengan commit message format dan comment standards

Update .env.example dengan connection pool settings yang lebih lengkap

File yang diubah:

src/lib/prisma.ts — Konfigurasi Prisma client & logging

src/app/api/admin/notifikasi/count/route.tsx

src/app/api/auth/mobile-login/route.ts

src/app/api/mobile/notification/[id]/route.ts

src/app/api/user-validate/route.ts

Dan 27 file API routes lainnya (penerapan withRetry secara konsisten)

QWEN.md — Dokumentasi commit & comment standards

.env.example — Database connection pool configuration

### No Issue
This commit is contained in:
2026-03-05 14:28:45 +08:00
parent a6c9182a01
commit 3e6c94d77f
33 changed files with 312 additions and 128 deletions

View File

@@ -669,10 +669,8 @@ const limit = pLimit(1);
export async function generate_seeder() {
try {
await Promise.all(listSeederQueue.map((fn) => limit(fn)));
await prisma.$disconnect();
} catch (error) {
console.error("error generate seeder", error);
await prisma.$disconnect();
}
return { status: 200, success: true };

View File

@@ -37,6 +37,5 @@ export async function AdminDonasi_getOneById(id: string) {
},
});
await prisma.$disconnect();
return res;
}

View File

@@ -33,12 +33,10 @@ export async function AdminDonasi_funUpdateStatusPublish(
});
if (!data) {
await prisma.$disconnect();
return { status: 400, message: "Data tidak ditemukan" };
}
revalidatePath(RouterAdminDonasi.table_review);
await prisma.$disconnect();
return {
data: data,

View File

@@ -36,12 +36,10 @@ export default async function adminNotifikasi_funCreateToAllUser({
},
});
if (!create) {
await prisma.$disconnect();
return { status: 400, message: "Gagal mengirim notifikasi" };
}
}
await prisma.$disconnect();
return {
status: 201,
message: "Berhasil mengirim notifikasi",

View File

@@ -25,10 +25,8 @@ export default async function adminNotifikasi_funCreateToUser({
});
if (!create) {
await prisma.$disconnect();
return { status: 400, message: "Gagal mengirim notifikasi" };
}
await prisma.$disconnect();
return { status: 201, message: "Berhasil mengirim notifikasi" };
}

View File

@@ -9,9 +9,6 @@ export async function donasi_checkStatus({ id }: { id: string }) {
},
});
await prisma.$disconnect();
if (checkStatus?.donasiMaster_StatusDonasiId == "2") return true;
return false;