Prepare secure config and reliable workout sync

This commit is contained in:
Hamza-Ayed
2026-10-04 00:33:44 +03:00
parent 05f1c9ec6b
commit e7f3c777d1
17 changed files with 553 additions and 119 deletions
+5
View File
@@ -32,6 +32,11 @@ class WorkoutValidator {
// Validate data types and values
$this->validateWorkoutType($payload['workout_type']);
if (isset($payload['client_workout_id']) &&
(!is_string($payload['client_workout_id']) ||
preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i', $payload['client_workout_id']) !== 1)) {
$this->errors[] = 'client_workout_id must be a UUID';
}
$this->validateNumericField('distance_meters', $payload['distance_meters'], self::MIN_DISTANCE, self::MAX_DISTANCE);
$this->validateNumericField('duration_seconds', $payload['duration_seconds'], self::MIN_DURATION, self::MAX_DURATION);
$this->validateNumericField('elevation_gain_meters', $payload['elevation_gain_meters'], 0, 10000);