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 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> getExercisesByCustomer(int customerId) async { final body = await _client.get("exercises/customer/", customerId.toString()); final Iterable json = jsonDecode(body); final List exercises = json.map((exercise) { Exercise item = Exercise.fromJson(exercise); return item; }).toList(); //exercises.sort( (a, b) => b.dateAdd.compareTo(a.dateAdd) ); return exercises; } Future 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 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; } }