trimmed weight edit

This commit is contained in:
Corey Blais
2026-06-16 10:00:50 -04:00
parent f65a4bed24
commit 53b7d34520
3 changed files with 56 additions and 20 deletions
+15 -1
View File
@@ -306,6 +306,15 @@ const weightSchema = z.object({
recordedOn: dateStringSchema,
notes: z.string().trim().max(280).optional().or(z.literal('')),
});
const weightEditWindowDays = 3;
const getWeightEditEarliestDate = () => {
const earliestDate = new Date();
earliestDate.setDate(earliestDate.getDate() - (weightEditWindowDays - 1));
return earliestDate.toISOString().slice(0, 10);
};
const isWeightDateEditable = (recordedOn: string) => recordedOn >= getWeightEditEarliestDate();
const vetVisitSchema = z.object({
visitedOn: dateStringSchema,
@@ -4094,6 +4103,11 @@ app.put(
return;
}
if (!isWeightDateEditable(parsed.data.recordedOn)) {
res.status(409).json({ error: 'Weight entries can only be edited for the last 3 days.' });
return;
}
const weight = await updateWeightForBird(
req.params.weightId,
req.params.birdId,
@@ -4103,7 +4117,7 @@ app.put(
);
if (!weight) {
res.status(404).json({ error: 'Weight entry not found.' });
res.status(404).json({ error: 'Weight entry not found or no longer editable.' });
return;
}