postModel<T> method

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

Post a data and receive a model

Implementation

@override
Future<RestResponse<T>> postModel<T>(
  String path,
  body,
  T Function(Map<String, dynamic>? json) parse, {
  Map<String, dynamic>? query,
  Map<String, dynamic>? headers,
}) async {
  try {
    final result = await _dio.post(
      _composeUrl(path),
      data: body,
      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());
  }
}