get static method

Future<HttpResponse> get(
  1. String resourceUrl, {
  2. String? baseUrl,
  3. String? username,
  4. String? password,
  5. Database? database,
  6. Dio? dioTestClient,
})

Implementation

static Future<HttpResponse> get(String resourceUrl,
    {String? baseUrl,
    String? username,
    String? password,
    Database? database,
    Dio? dioTestClient}) async {
  HttpDetails httpDetails = await HttpDetails(
          baseUrl: baseUrl,
          username: username,
          password: password,
          database: database)
      .get();

  final dioClient = dioTestClient ??
      Dio(BaseOptions(
          connectTimeout: Duration(milliseconds: 100000),
          receiveTimeout: Duration(milliseconds: 100000),
          headers: {
            HttpHeaders.authorizationHeader:
                '${httpDetails.authTokenType} ${httpDetails.authToken}',
          }));

  try {
    final Response<dynamic> response =
        await dioClient.get('${httpDetails.baseUrl}/api/$resourceUrl');
    return HttpResponse(
        statusCode: response.statusCode ?? 500, body: response.data);
  } on DioException catch (error) {
    if (error.response != null) {
      dynamic errorBody = error.response?.data;
      if (error.response?.data is String) {
        try {
          final xmlToJsonConverter = Xml2Json();
          xmlToJsonConverter.parse(error.response?.data);

          errorBody = jsonDecode(xmlToJsonConverter.toParker());
        } catch (e) {}
      }

      return HttpResponse(
          statusCode: error.response?.statusCode ?? 500, body: errorBody);
    } else {
      dynamic errorBody = error.message;

      try {
        final xmlToJsonConverter = Xml2Json();
        xmlToJsonConverter.parse(error.message!);

        errorBody = jsonDecode(xmlToJsonConverter.toParker());
      } catch (e) {}

      return HttpResponse(
          statusCode: error.response?.statusCode ?? 500, body: errorBody);
    }
  }
}