fitness: fix template edit validation and allow empty sets
All checks were successful
CI / update (push) Successful in 2m6s
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:
@@ -66,13 +66,7 @@ const ExerciseSchema = new mongoose.Schema({
|
|||||||
},
|
},
|
||||||
sets: {
|
sets: {
|
||||||
type: [SetSchema],
|
type: [SetSchema],
|
||||||
required: true,
|
default: []
|
||||||
validate: {
|
|
||||||
validator: function(sets: ISet[]) {
|
|
||||||
return sets.length > 0;
|
|
||||||
},
|
|
||||||
message: 'An exercise must have at least one set'
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
restTime: {
|
restTime: {
|
||||||
type: Number,
|
type: Number,
|
||||||
|
|||||||
@@ -53,14 +53,8 @@ export const POST: RequestHandler = async ({ request, locals }) => {
|
|||||||
|
|
||||||
// Validate exercises structure
|
// Validate exercises structure
|
||||||
for (const exercise of exercises) {
|
for (const exercise of exercises) {
|
||||||
if (!exercise.exerciseId || !exercise.sets || !Array.isArray(exercise.sets) || exercise.sets.length === 0) {
|
if (!exercise.exerciseId) {
|
||||||
return json({ error: 'Each exercise must have an exerciseId and at least one set' }, { status: 400 });
|
return json({ error: 'Each exercise must have an exerciseId' }, { 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 });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,14 +60,8 @@ export const PUT: RequestHandler = async ({ params, request, locals }) => {
|
|||||||
|
|
||||||
// Validate exercises structure
|
// Validate exercises structure
|
||||||
for (const exercise of exercises) {
|
for (const exercise of exercises) {
|
||||||
if (!exercise.name || !exercise.sets || !Array.isArray(exercise.sets) || exercise.sets.length === 0) {
|
if (!exercise.exerciseId) {
|
||||||
return json({ error: 'Each exercise must have a name and at least one set' }, { status: 400 });
|
return json({ error: 'Each exercise must have an exerciseId' }, { 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 });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user