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

53 lines
1.6 KiB
Dart
Raw Normal View History

import 'package:selfprivacy/config/get_it_config.dart';
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/hetzner/hetzner.dart';
import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server.dart';
import 'package:selfprivacy/logic/models/auto_upgrade_settings.dart';
2022-07-13 14:58:23 +03:00
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
class ServerDetailsRepository {
HetznerApi hetzner = HetznerApi(
/// TODO: Hetzner hardcode (???)
region: getIt<ApiConfigModel>().serverLocation,
);
2022-09-12 20:38:22 +03:00
ServerApi server = ServerApi();
2022-02-08 23:01:08 +02:00
Future<ServerDetailsRepositoryDto> load() async {
final settings = await server.getSystemSettings();
return ServerDetailsRepositoryDto(
autoUpgradeSettings: settings.autoUpgradeSettings,
hetznerServerInfo: await hetzner.getInfo(),
serverTimezone: TimeZoneSettings.fromString(
settings.timezone,
),
);
}
Future<void> setAutoUpgradeSettings(
final AutoUpgradeSettings settings,
) async {
await server.setAutoUpgradeSettings(settings);
}
Future<void> setTimezone(
final String timezone,
) async {
if (timezone.isNotEmpty) {
await server.setTimezone(timezone);
}
}
2021-03-26 15:38:39 +02:00
}
2022-02-08 23:01:08 +02:00
2022-05-24 21:55:39 +03:00
class ServerDetailsRepositoryDto {
ServerDetailsRepositoryDto({
2022-02-08 23:01:08 +02:00
required this.hetznerServerInfo,
required this.serverTimezone,
required this.autoUpgradeSettings,
});
2022-07-13 14:58:23 +03:00
final HetznerServerInfo hetznerServerInfo;
2022-06-05 22:36:32 +03:00
final TimeZoneSettings serverTimezone;
final AutoUpgradeSettings autoUpgradeSettings;
2022-02-08 23:01:08 +02:00
}