fitness: fix template edit validation and allow empty sets
All checks were successful
CI / update (push) Successful in 2m6s

- Validate exerciseId instead of name (templates use exerciseId, not name)
- Remove mandatory reps minimum from template sets
- Allow exercises with empty sets in schema and API validation
This commit is contained in:
2026-03-21 09:38:01 +01:00
parent 81711f1f09
commit 529d004516
3 changed files with 5 additions and 23 deletions

View File

@@ -66,13 +66,7 @@ const ExerciseSchema = new mongoose.Schema({
},
sets: {
type: [SetSchema],
required: true,
validate: {
validator: function(sets: ISet[]) {
return sets.length > 0;
},
message: 'An exercise must have at least one set'
}
default: []
},
restTime: {
type: Number,

View File

@@ -53,14 +53,8 @@ export const POST: RequestHandler = async ({ request, locals }) => {
// Validate exercises structure
for (const exercise of exercises) {
if (!exercise.exerciseId || !exercise.sets || !Array.isArray(exercise.sets) || exercise.sets.length === 0) {
return json({ error: 'Each exercise must have an exerciseId and at least one set' }, { status: 400 });
}
for (const set of exercise.sets) {
if (!set.reps || typeof set.reps !== 'number' || set.reps < 1) {
return json({ error: 'Each set must have valid reps (minimum 1)' }, { status: 400 });
}
if (!exercise.exerciseId) {
return json({ error: 'Each exercise must have an exerciseId' }, { status: 400 });
}
}

View File

@@ -60,14 +60,8 @@ export const PUT: RequestHandler = async ({ params, request, locals }) => {
// Validate exercises structure
for (const exercise of exercises) {
if (!exercise.name || !exercise.sets || !Array.isArray(exercise.sets) || exercise.sets.length === 0) {
return json({ error: 'Each exercise must have a name and at least one set' }, { status: 400 });
}
for (const set of exercise.sets) {
if (!set.reps || typeof set.reps !== 'number' || set.reps < 1) {
return json({ error: 'Each set must have valid reps (minimum 1)' }, { status: 400 });
}
if (!exercise.exerciseId) {
return json({ error: 'Each exercise must have an exerciseId' }, { status: 400 });
}
}