get method

Future get({
  1. String? baseUrl,
  2. String? authorization,
  3. required String path,
  4. bool skipJsonDecode = false,
  5. Map<String, String>? headers,
})

make skipJsonDecode = true if expected result is not in json format

Implementation

Future<dynamic> get({
  String? baseUrl,
  String? authorization,
  required String path,
  bool skipJsonDecode = false,
  Map<String, String>? headers,
}) async {
  http_package.Response? response;
  try {
    baseUrl ??= Api.getAPIBaseUrls();
    final url = Uri.parse((baseUrl + path));
    log('GET---$url');

    response = await http_package.get(
      url,
      headers: headers ?? header(authorization),
    );
    log('Status Code:${response.statusCode}');
    log('Response : ${response.body}');
    log('isFailure : ${isFailure(response.statusCode)}');

    if (skipJsonDecode || isFailure(response.statusCode)) {
      return response.body;
    }

    if (response.body.isEmpty) {
      return <String, dynamic>{};
    }
    return json.decode(response.body);
  } catch (exception) {
    log(exception);
    return null;
  }
}