feat/architecture/make_usecases_more_modular_and_adaptable #39

Merged
malo merged 7 commits from feat/architecture/make_usecases_more_modular_and_adaptable into master 2022-11-23 23:11:04 +00:00
Showing only changes of commit 8bb0dbb6b7 - Show all commits

View File

@ -43,23 +43,20 @@ abstract class UseCase<Parameters, ReturnType>
/// Supports the result of the main scenario and integrates
/// some alternative scenarios if necessary.
@override
FutureOrResult<ReturnType> execute(Parameters? parameters) =>
Result.tryCatchAsync(
() async {
await onStart(parameters);
final response = await call(parameters);
if (response.isErr) {
await onError(response.err);
} else if (response.isOk && response.ok != null) {
await _onSuccess(response.ok as ReturnType);
}
return response.ok!;
},
(error) => ClientException(
error.toString(),
),
);
FutureOrResult<ReturnType> execute(Parameters? parameters) async {
try {
await onStart(parameters);
final response = await call(parameters);
if (response.isErr) {
await onError(response.err);
} else if (response.isOk && response.ok != null) {
await _onSuccess(response.ok as ReturnType);
}
return response;
} catch (e) {
return Err(ClientException(e.toString()));
}
}
}
/// Abtstract classic usecase.