followUser function

Future<Map<String, dynamic>> followUser(
  1. String userName,
  2. String server,
  3. String apiToken,
  4. String baseUrl,
  5. String apiBase,
  6. bool withReplies,
)

Attempts to follow a user. If the operation succeeds, a success map is returned. If this fails, an error map is returned.

Implementation

Future<Map<String,dynamic>> followUser(
  String userName,
  String server,
  String apiToken,
  String baseUrl,
  String apiBase,
  bool withReplies
) async {
  String reqUrl = '$baseUrl$apiBase/following/create';
  Map<String,dynamic> targetUserResponse = await getUserInfo(
    userName,
    server,
    baseUrl,
    apiBase
  );
  String userId = '';
  if (targetUserResponse.containsKey('result')){
    Map<String,dynamic> targetUserInfo = targetUserResponse["result"];
    if (targetUserInfo.containsKey('id')){
      userId = targetUserInfo['id'];
    }
    else {
      Map<String,dynamic> errMap = new Map();
      errMap["error"] = "Could not retrieve user ID!";
      return errMap;
    }
  }
  else {
    Map<String,dynamic> errMap = new Map();
    errMap["error"] = "Error response received for retrieving user ID!";
    return errMap;
  }
  Map<String,dynamic> headers = new Map();
  headers['Content-Type'] = 'application/json';
  Map<String,dynamic> payload = new Map();
  payload['i'] = apiToken;
  payload['withReplies'] = withReplies;
  payload['userId'] = userId;
  Map<String,dynamic> followUserResp = await fetchJSON(
    'POST',
    headers,
    payload,
    reqUrl
  );
  return followUserResp;
}