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: {
|
||||
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,
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user