handle method

Future<void> handle({
  1. void onSuccess(
    1. T? data,
    2. String message
    )?,
  2. void onFailure(
    1. String message,
    2. int statusCode
    )?,
})

Handle success/failure without if/else.

await api.get(endpoint: '/me', parser: UserModel.fromJson)
  .handle(
    onSuccess: (data, msg) => setState(() => user = data),
    onFailure: (msg, code) => showSnackbar(msg),
  );

Implementation

Future<void> handle({
  void Function(T? data, String message)? onSuccess,
  void Function(String message, int statusCode)? onFailure,
}) async {
  final res = await this;
  if (res.isSuccess) {
    onSuccess?.call(res.data, res.message);
  } else {
    onFailure?.call(res.message, res.statusCode);
  }
}