(refactor) locationActions: preventing multiple proof of payment uploads

This commit is contained in:
Knee Cola
2025-11-23 21:56:18 +01:00
parent 54a9de77d3
commit 3389bce755

View File

@@ -630,6 +630,17 @@ export const uploadUtilBillsProofOfPayment = async (locationID: string, formData
noStore(); noStore();
try { try {
// check if attachment already exists for the location
const dbClient = await getDbClient();
const existingLocation = await dbClient.collection<BillingLocation>("lokacije")
.findOne({ _id: locationID }, { projection: { utilBillsProofOfPaymentAttachment: 1 } });
if (existingLocation?.utilBillsProofOfPaymentAttachment) {
return { success: false, error: 'An attachment already exists for this location' };
}
const file = formData.get('utilBillsProofOfPaymentAttachment') as File; const file = formData.get('utilBillsProofOfPaymentAttachment') as File;
// Validate file type // Validate file type
@@ -643,8 +654,6 @@ export const uploadUtilBillsProofOfPayment = async (locationID: string, formData
return { success: false, error: 'Invalid file' }; return { success: false, error: 'Invalid file' };
} }
const dbClient = await getDbClient();
// Update the location with the attachment // Update the location with the attachment
await dbClient.collection<BillingLocation>("lokacije") await dbClient.collection<BillingLocation>("lokacije")
.updateOne( .updateOne(