httpGet<T> method

Future<ApiResponse<T>> httpGet<T>({
  1. required Function converter,
  2. bool isAuth = true,
  3. Map<String, dynamic>? queryParams,
  4. bool isContentTypeHeader = false,
})

Implementation

Future<ApiResponse<T>> httpGet<T>(
    {required Function converter, bool isAuth = true, Map<String, dynamic>? queryParams, bool isContentTypeHeader = false}) async {
  var url = createUri("${HttpX.instance.baseUrl}$this",queryParams);
  try {
    http.Response response = await http.get(url, headers: {
      if (isAuth) HttpX.instance.headerName: await HttpX.instance.token(),
      if(isContentTypeHeader)'Content-Type': 'application/json;charset=UTF-8',
      if(isContentTypeHeader) 'Charset': 'utf-8'
    });
    print("response: " + response.body);
    final prefix = '';
    var body = response.body;
    if (body.startsWith(prefix)) {
      body = body.substring(prefix.length);
    }
    return ApiResponse<T>(
        code: response.statusCode,
        data: converter(jsonDecode(body)),
        error: null);
  } catch (error) {
    print("error" + error.toString());
    return ApiResponse<T>(
        code: HttpStatus.internalServerError,
        data: null,
        error: error.toString());
  }
}