execute<T> static method
Implementation
static Future<ApiResult<T>> execute<T>({
required Future<T> Function() apiCall,
bool Function(T response)? isTokenExpired,
}) async {
try {
final response = await apiCall();
if (isTokenExpired?.call(response) ?? false) {
return ApiFailure(sessionExpired);
}
return ApiSuccess(response);
} catch (e, stackTrace) {
if (e is BusinessException) {
return ApiFailure(e.message);
}
return ApiFailure(unexpectedError, e, stackTrace);
}
}