workouttest_util/lib/service/exercise_service.dart
2023-01-28 12:53:16 +01:00

45 lines
1.6 KiB
Dart

import 'dart:convert';
import 'package:workouttest_util/model/exercise.dart';
import 'package:workouttest_util/service/api.dart';
import 'package:workouttest_util/util/logging.dart';
class ExerciseApi with Logging {
final APIClient _client = APIClient();
Future<void> saveExercise(Exercise exercise) async {
String body = JsonEncoder().convert(exercise.toJson());
log(" ===== saving exercise id: " + exercise.exerciseId.toString() + ":" + body);
await _client.post("exercises/" + exercise.exerciseId.toString(), body);
}
Future<List<Exercise>> getExercisesByCustomer(int customerId) async {
final body = await _client.get("exercises/customer/", customerId.toString());
final Iterable json = jsonDecode(body);
final List<Exercise> exercises = json.map((exercise) {
Exercise item = Exercise.fromJson(exercise);
return item;
}).toList();
//exercises.sort( (a, b) => b.dateAdd.compareTo(a.dateAdd) );
return exercises;
}
Future<Exercise> addExercise(Exercise exercise) async {
String body = JsonEncoder().convert(exercise.toJson());
log(" ===== add new exercise: " + body);
final String response = await _client.post("exercises", body);
final Exercise savedExercise = Exercise.fromJson(jsonDecode(response));
return savedExercise;
}
Future<void> deleteExercise(Exercise exercise) async {
if (exercise.exerciseId == null) {
return;
}
int exerciseId = exercise.exerciseId!;
log(" ===== delete exercise: " + exerciseId.toString());
await _client.post("exercises/" + exerciseId.toString(), "");
return;
}
}