processResponse function

ProcessedResponse processResponse(
  1. Response response,
  2. BuildContext context
)

Processes all non-authenticated HTTP api calls made in the app

Implementation

ProcessedResponse processResponse(
    http.Response response, BuildContext context) {
  if (<int>[200, 201, 202].contains(response.statusCode)) {
    return ProcessedResponse(ok: true, response: response, message: '');
  }

  final Map<String, dynamic> body =
      json.decode(response.body) as Map<String, dynamic>;

  final int code = unMarshallErrorResponse(body);

  if (response.statusCode == 400) {
    if (code == 4) {
      toggleUserExists(value: true, context: context);
    }
    if (code == 7 || code == 10) {
      StoreProvider.dispatch<CoreState>(
          context, BatchUpdateMiscStateAction(unKnownPhoneNo: true));

      ScaffoldMessenger.of(context).showSnackBar(snackbar(content: noAccount));
    }
    if (code == 8) {
      StoreProvider.dispatch<CoreState>(
          context, BatchUpdateMiscStateAction(invalidCredentials: true));
    }
    return ProcessedResponse(
        ok: false, response: response, message: getUserFriendlyMsg(code));
  }

  if (response.statusCode == 500) {
    return ProcessedResponse(
        ok: false, response: response, message: getUserFriendlyMsg(code));
  }
  if (response.statusCode == 408) {
    return ProcessedResponse(
        ok: false, response: response, message: getUserFriendlyMsg(0));
  }

  return ProcessedResponse(
    ok: false,
    response: response,
    message: UserFeedBackTexts.getErrorMessage(),
  );
}