execute method
Implementation
Future<Either<ActionRequestError?, T?>?> execute() async {
Response? response;
ActionRequestError? apiRequestError;
Either<ActionRequestError?, T?>? either;
log('${authRequired} -- ${await ApiRequestOptions.instance?.getTokenString()}');
if (authRequired == false ||
(await ApiRequestOptions.instance?.getTokenString()) != null) {
try {
response = await _execute();
try {
either = right(responseBuilder(response?.data));
this.onSuccess(responseBuilder(response?.data));
} catch (e) {
apiRequestError = ActionRequestError(e, res: response);
either = left(apiRequestError);
}
} catch (e) {
apiRequestError = ActionRequestError(e);
either = left(apiRequestError);
}
if (either.isLeft() && apiRequestError != null) {
this.onError(apiRequestError);
if (ApiRequestOptions.instance!.onError != null &&
!disableGlobalOnError) {
ApiRequestOptions.instance!.onError!(apiRequestError);
}
}
this.onDone();
return either;
} else {
log('You Need To Login to Request This action: ${this.runtimeType}');
}
return null;
}