import 'dart:convert'; import 'package:fcs/config.dart'; import 'package:fcs/domain/constants.dart'; import 'package:fcs/domain/entities/package.dart'; import 'package:fcs/helpers/api_helper.dart'; import 'package:fcs/helpers/firebase_helper.dart'; import 'package:logging/logging.dart'; class PackageDataProvider { final log = Logger('PackageDataProvider'); Future createPackages(List packages, String fcsID) async { List> json = packages.map((e) => e.toJson()).toList(); return await requestAPI("/packages", "POST", payload: {"packages": json, "fcs_id": fcsID}, token: await getToken()); } Future createPackage(Package package) async { return await requestAPI("/package", "POST", payload: package.toJson(), token: await getToken()); } Future deletePackage(Package package) async { return await requestAPI("/package", "DELETE", payload: {"id": package.id}, token: await getToken()); } Future> searchPackage(String term) async { if (term == null || term == '') return List(); var bytes = utf8.encode(term); var base64Str = base64.encode(bytes); HtmlEscape htmlEscape = const HtmlEscape(); String escapePackage = htmlEscape.convert(base64Str); int limit = 20; List packages = []; try { var data = await requestAPI( "/api/fts/$packages_collection/$escapePackage/$limit", "GET", url: Config.instance.reportURL, token: await getToken()); if (data == null) return List(); data.forEach((p) { var package = Package.fromJson(p); packages.add(package); }); } catch (e) { log.warning("buyer error:" + e.toString()); return null; } return packages; } }