import 'dart:convert'; import 'package:aitrainer_app/model/exercise.dart'; import 'package:aitrainer_app/service/api.dart'; class ExerciseApi { final APIClient _client = new APIClient(); Future> getExerciseTypes(String param) async { final body = await _client.get("exercises", param); final Iterable json = jsonDecode(body); final List exerciseTypes = json.map((exerciseType) => Exercise.fromJson(exerciseType)).toList(); return exerciseTypes; } Future saveExercise(Exercise exercise) async { String body = JsonEncoder().convert(exercise.toJson()); print(" ===== 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()); print(" ===== 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 { int exerciseId = exercise.exerciseId; print(" ===== delete exercise: " + exerciseId.toString()); await _client.post("exercises/" + exerciseId.toString(), ""); return; } }