selfprivacy.org.app/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart
NaiJi 0c4da8eb9f refactor: Move all API factories into encapsulated static class
Because it's very hard to track all different provider factories created in different cubits, if users reset application config the previous factories stayed unchanged which would lead to unexpected behavior
2022-11-18 09:49:04 +04:00

54 lines
1.4 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';
import 'package:selfprivacy/logic/cubit/forms/validations/validations.dart';
class DnsProviderFormCubit extends FormCubit {
DnsProviderFormCubit(this.initializingCubit) {
//final RegExp regExp = initializingCubit.getDnsProviderApiTokenValidation();
apiKey = FieldCubit(
initalValue: '',
validations: [
RequiredStringValidation('validations.required'.tr()),
/*ValidationModel<String>(
regExp.hasMatch,
'validations.invalid_format'.tr(),
),*/
//LengthStringNotEqualValidation(40)
],
);
super.addFields([apiKey]);
}
@override
FutureOr<void> onSubmit() async {
initializingCubit.setCloudflareKey(apiKey.state.value);
}
final ServerInstallationCubit initializingCubit;
late final FieldCubit<String> apiKey;
@override
FutureOr<bool> asyncValidation() async {
late bool isKeyValid;
try {
isKeyValid = await initializingCubit
.isDnsProviderApiTokenValid(apiKey.state.value);
} catch (e) {
addError(e);
isKeyValid = false;
}
if (!isKeyValid) {
apiKey.setError('initializing.cloudflare_bad_key_error'.tr());
return false;
}
return true;
}
}