extract method

  1. @override
Future<Result<Option<T>, Rejection>> extract(
  1. Request request
)
override

Produces the value, or the rejection that stops the handler.

Implementation

@override
Future<Result<Option<T>, Rejection>> extract(Request request) async {
  final outcome = await inner.extract(request);
  return switch (outcome) {
    Ok(:final value) => Ok(Some(value)),
    Err(:final error) when error.status >= 500 => Err(error),
    Err() => Ok(None<T>()),
  };
}