mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-09-11 22:37:18 +00:00
Now it's 'false' when api token is invalid and null response if couldn't connect at all, to show different kinds of errors to the user
53 lines
1.3 KiB
Dart
53 lines
1.3 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:cubit_form/cubit_form.dart';
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
|
|
|
class ProviderFormCubit extends FormCubit {
|
|
ProviderFormCubit(this.serverInstallationCubit) {
|
|
//final int tokenLength =
|
|
// serverInstallationCubit.serverProviderApiTokenValidation().length;
|
|
apiKey = FieldCubit(
|
|
initalValue: '',
|
|
validations: [
|
|
RequiredStringValidation('validations.required'.tr()),
|
|
//LengthStringNotEqualValidation(tokenLength),
|
|
],
|
|
);
|
|
|
|
super.addFields([apiKey]);
|
|
}
|
|
|
|
@override
|
|
FutureOr<void> onSubmit() async {
|
|
serverInstallationCubit.setServerProviderKey(apiKey.state.value);
|
|
}
|
|
|
|
final ServerInstallationCubit serverInstallationCubit;
|
|
late final FieldCubit<String> apiKey;
|
|
|
|
@override
|
|
FutureOr<bool> asyncValidation() async {
|
|
bool? isKeyValid;
|
|
|
|
try {
|
|
isKeyValid = await serverInstallationCubit
|
|
.isServerProviderApiTokenValid(apiKey.state.value);
|
|
} catch (e) {
|
|
addError(e);
|
|
}
|
|
|
|
if (isKeyValid == null) {
|
|
apiKey.setError('');
|
|
return false;
|
|
}
|
|
|
|
if (!isKeyValid) {
|
|
apiKey.setError('initializing.provider_bad_key_error'.tr());
|
|
}
|
|
|
|
return isKeyValid;
|
|
}
|
|
}
|