import 'package:comunic/lists/friends_list.dart'; import 'package:comunic/models/api_request.dart'; import 'package:comunic/models/friend.dart'; /// Friends helper /// /// @author Pierre HUBERT class FriendsHelper { /// Get the list of friends of the user /// /// Returns the list of friends in case of success, or null if an error /// occurred Future downloadList() async { final response = await APIRequest( uri: "friends/getList", needLogin: true, args: { "complete": "true", }, ).exec(); if (response.code != 200) return null; // Parse and return the list of friends FriendsList list = FriendsList(); response.getArray().forEach( (f) => list.add( Friend( id: f["ID_friend"], accepted: f["accepted"] == 1, lastActive: f["time_last_activity"], following: f["following"] == 1, canPostTexts: f["canPostTexts"], ), ), ); return list; } /// Respond to friendship request Future respondRequest(int friendID, bool accept) async { final response = await APIRequest( uri: "friends/respondRequest", needLogin: true, args: { "friendID": friendID.toString(), "accept": accept.toString() }).exec(); return response.code == 200; } /// Update following status for a friend Future setFollowing(int friendID, bool follow) async { final response = await APIRequest( uri: "friends/setFollowing", needLogin: true, args: { "friendID" : friendID.toString(), "follow": follow.toString() } ).exec(); return response.code == 200; } /// Remove a friend from the list Future removeFriend(int friendID) async { final response = await APIRequest( uri: "friends/remove", needLogin: true, args: {"friendID" : friendID.toString()} ).exec(); return response.code == 200; } }