import 'dart:convert'; import 'package:smartfit_app_mobile/modele/activity.dart'; import 'package:smartfit_app_mobile/modele/activity_info/activity_info.dart'; import 'package:smartfit_app_mobile/modele/activity_saver.dart'; import 'package:smartfit_app_mobile/modele/api/i_data_strategy.dart'; import 'package:tuple/tuple.dart'; import 'package:smartfit_app_mobile/modele/user.dart'; import 'dart:io'; import 'dart:typed_data'; import 'package:smartfit_app_mobile/main.dart'; class RequestLocal implements IDataStrategy { @override Future getInfoUser(String token) async { final User user = localDB.getUser(); Map json = {"email": user.email, "username": user.username}; return Tuple2(true, jsonEncode(json)); } // need to save file on request_api.upload() beforehand. @override Future getFile(String token, String fileUuid) async { ActivitySaver actSaver = await ActivitySaver.create(); Uint8List fileBytes = actSaver.getActivity(fileUuid); return Tuple2(true, fileBytes); } @override Future getFiles(String token) async { final List activities = localDB.getAllActivities(); List> jsonList = List.empty(growable: true); for (ActivityOfUser act in activities) { Map json = { "uuid": act.fileUuid, "filename": act.nameFile, "category": act.category, "info": act.activityInfo }; jsonList.add(json); } return Tuple2(true, jsonList); } @override Future> modifAttribut( String token, String nameAttribut, String newValue) async { return const Tuple2(false, "not implemented"); } @override Future> postUser( String email, String hash, String username) async { return const Tuple2(false, "not implemented"); } @override Future> deleteUser(String token) async { return const Tuple2(false, "not implemented"); } @override Future> connexion(String email, String hash) async { return const Tuple2(false, "not implemented"); } @override Future> uploadFile(String token, File file) async { return const Tuple2(false, "not implemented"); } @override Future> uploadFileByte( String token, Uint8List contentFile, String nameFile, String category, DateTime date, ActivityInfo activityInfo) async { return const Tuple2(false, "not implemented"); } @override Future deleteFile(String token, String fileUuid) async { throw Exception("Not Implemented"); } }