request static method
Future<MguHttpResponse>
request({
- required MguHttpRequestMethod method,
- required String baseUrl,
- required MguHttpRequestInfo requestInfo,
- Duration sendTimeout = const Duration(seconds: 10),
- Duration connectTimeout = const Duration(seconds: 5),
- Duration receiveTimeout = const Duration(seconds: 15),
Implementation
static Future<MguHttpResponse> request({
required final MguHttpRequestMethod method,
required final String baseUrl,
required final MguHttpRequestInfo requestInfo,
final Duration sendTimeout = const Duration(seconds: 10),
final Duration connectTimeout = const Duration(seconds: 5),
final Duration receiveTimeout = const Duration(seconds: 15),
}) async {
_MguHttpRequestLogger.logRequest(method: method, requestInfo: requestInfo);
late final dio.Response? response;
String? message;
try {
response = await method._call(
baseOptions: dio.BaseOptions(
baseUrl: baseUrl,
sendTimeout: sendTimeout,
connectTimeout: connectTimeout,
receiveTimeout: receiveTimeout,
),
requestInfo: requestInfo,
);
} catch (e) {
if (e is! dio.DioException) {
rethrow;
}
response = e.response;
message =
_MguHttpRequestLogger.generateErrorString(method, requestInfo, e);
if (response == null) {
throw NoResponse(
_MguHttpRequestLogger.generateErrorString(method, requestInfo, e),
);
}
}
_MguHttpRequestLogger.logResponse(
method: method,
requestInfo: requestInfo,
response: response,
);
final data = response.data as Map;
final resultCode = data['resultCode'] as String;
final realData = data['data'] as Map;
return MguHttpResponse(
data: realData,
resultCode: resultCode,
message: message,
);
}