getModel<T> method

  1. @override
Future<RestResponse<T>> getModel<T>(
  1. String path,
  2. T parse(
    1. Map<String, dynamic>? json
    ), {
  3. Map<String, dynamic>? query,
  4. Map<String, dynamic>? headers,
})
override

Get a model from webService

Implementation

@override
Future<RestResponse<T>> getModel<T>(
  String path,
  T Function(Map<String, dynamic>? json) parse, {
  Map<String, dynamic>? query,
  Map<String, dynamic>? headers,
}) async {
  try {
    final result = await _dio.get(
      _composeUrl(path),
      queryParameters: query,
      options: Options(headers: headers),
    );

    return RestResponse<T>(
      RestStatusCode.fromInt(result.statusCode),
    )..data = parse(result.data);
  } on DioException catch (err) {
    return RestResponse<T>(
      RestStatusCode.fromInt(err.response?.statusCode),
    )..exception = _getRestExceptionFromDioException(err);
  } catch (e) {
    return RestResponse<T>(
      RestStatusCode.unknow,
    )..exception = RestException(message: e.toString());
  }
}