fix email sender all flow
This commit is contained in:
@@ -5,7 +5,9 @@ import { revalidatePath } from "next/cache";
|
||||
import { authOptions } from "@/lib/auth";
|
||||
import { isAdminEmail } from "@/lib/admin";
|
||||
import { payoutService } from "@/server/services/payout.service";
|
||||
import { payoutRepo } from "@/server/repositories/payout.repo";
|
||||
import { auditLog } from "@/server/services/audit-log.service";
|
||||
import { emailService } from "@/lib/email/send";
|
||||
import { payoutMarkPaidSchema } from "./schemas";
|
||||
|
||||
async function requireAdmin() {
|
||||
@@ -34,6 +36,7 @@ export async function markPayoutPaidAction(formData: FormData) {
|
||||
adminId: admin.id,
|
||||
adminNote: parsed.data.adminNote,
|
||||
});
|
||||
void notifyPayoutPaid(parsed.data.payoutId, parsed.data.adminNote);
|
||||
await auditLog.record({
|
||||
admin: { id: admin.id, email: admin.email },
|
||||
action: "PAYOUT_MARK_PAID",
|
||||
@@ -49,3 +52,22 @@ export async function markPayoutPaidAction(formData: FormData) {
|
||||
return { error: (err as Error).message };
|
||||
}
|
||||
}
|
||||
|
||||
/** E3.7 — kabari organizer kalau payout-nya sudah ditransfer admin. */
|
||||
async function notifyPayoutPaid(payoutId: string, adminNote: string) {
|
||||
const payout = await payoutRepo.findById(payoutId);
|
||||
if (!payout) return;
|
||||
await emailService.send({
|
||||
to: payout.organizer.email,
|
||||
idempotencyKey: `payout_paid-${payout.id}`,
|
||||
template: {
|
||||
template: "payout_paid",
|
||||
data: {
|
||||
organizerName: payout.organizer.name,
|
||||
tripTitle: payout.trip.title,
|
||||
amount: payout.amount,
|
||||
adminNote,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user