selfprivacy.org.app/lib/logic/cubit/server_detailed_info/server_detailed_info_cubit....

49 lines
1.6 KiB
Dart
Raw Normal View History

2021-03-26 15:38:39 +02:00
import 'package:selfprivacy/config/get_it_config.dart';
2022-09-16 11:06:27 +03:00
import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart';
2021-03-26 15:38:39 +02:00
import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_repository.dart';
import 'package:selfprivacy/logic/models/auto_upgrade_settings.dart';
import 'package:selfprivacy/logic/models/json/hetzner_server_info.dart';
2022-02-08 23:01:08 +02:00
import 'package:selfprivacy/logic/models/timezone_settings.dart';
2021-03-26 15:38:39 +02:00
part 'server_detailed_info_state.dart';
2022-09-16 11:06:27 +03:00
class ServerDetailsCubit
extends ServerInstallationDependendCubit<ServerDetailsState> {
ServerDetailsCubit(final ServerInstallationCubit serverInstallationCubit)
: super(serverInstallationCubit, ServerDetailsInitial());
2021-03-26 15:38:39 +02:00
ServerDetailsRepository repository = ServerDetailsRepository();
void check() async {
2022-06-05 22:36:32 +03:00
final bool isReadyToCheck = getIt<ApiConfigModel>().serverDetails != null;
try {
if (isReadyToCheck) {
emit(ServerDetailsLoading());
final ServerDetailsRepositoryDto data = await repository.load();
emit(
Loaded(
serverInfo: data.hetznerServerInfo,
autoUpgradeSettings: data.autoUpgradeSettings,
serverTimezone: data.serverTimezone,
checkTime: DateTime.now(),
),
);
} else {
emit(ServerDetailsNotReady());
}
} on StateError {
print('Tried to emit server info state when cubit is closed');
2021-03-26 15:38:39 +02:00
}
}
2022-09-16 11:06:27 +03:00
@override
void clear() {
emit(ServerDetailsNotReady());
}
@override
void load() async {
check();
}
2021-03-26 15:38:39 +02:00
}