mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2025-03-11 17:24:09 +00:00
feat(region): Remove hardcode for region of server installation
This commit is contained in:
parent
f40ed08b02
commit
2f59954641
15 changed files with 78 additions and 49 deletions
lib/logic
api_maps/rest_maps
cubit
hetzner_metrics
provider_volumes
server_detailed_info
server_installation
|
@ -1,5 +1,6 @@
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/cloudflare/cloudflare.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/cloudflare/cloudflare.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart';
|
||||||
|
|
||||||
class CloudflareApiFactory extends DnsProviderApiFactory {
|
class CloudflareApiFactory extends DnsProviderApiFactory {
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
||||||
|
|
||||||
|
class DnsProviderApiSettings extends ProviderApiSettings {
|
||||||
|
const DnsProviderApiSettings({
|
||||||
|
super.hasLogger = false,
|
||||||
|
super.isWithToken = true,
|
||||||
|
this.customToken,
|
||||||
|
});
|
||||||
|
final String? customToken;
|
||||||
|
}
|
|
@ -1,17 +1,8 @@
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_api_settings.dart';
|
||||||
|
|
||||||
class DnsProviderApiSettings extends ProviderApiSettings {
|
|
||||||
const DnsProviderApiSettings({
|
|
||||||
final super.hasLogger = false,
|
|
||||||
final super.isWithToken = true,
|
|
||||||
final this.customToken,
|
|
||||||
});
|
|
||||||
final String? customToken;
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class DnsProviderApiFactory {
|
abstract class DnsProviderApiFactory {
|
||||||
DnsProviderApi getDnsProvider({
|
DnsProviderApi getDnsProvider({
|
||||||
final DnsProviderApiSettings settings = const DnsProviderApiSettings(),
|
final DnsProviderApiSettings settings,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
class ProviderApiSettings {
|
class ProviderApiSettings {
|
||||||
const ProviderApiSettings({this.hasLogger = false, this.isWithToken = true});
|
const ProviderApiSettings({
|
||||||
|
this.hasLogger = false,
|
||||||
|
this.isWithToken = true,
|
||||||
|
});
|
||||||
final bool hasLogger;
|
final bool hasLogger;
|
||||||
final bool isWithToken;
|
final bool isWithToken;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import 'package:selfprivacy/utils/password_generator.dart';
|
||||||
|
|
||||||
class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
|
class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
DigitalOceanApi({
|
DigitalOceanApi({
|
||||||
|
required this.region,
|
||||||
this.hasLogger = false,
|
this.hasLogger = false,
|
||||||
this.isWithToken = true,
|
this.isWithToken = true,
|
||||||
});
|
});
|
||||||
|
@ -23,7 +24,7 @@ class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
@override
|
@override
|
||||||
bool isWithToken;
|
bool isWithToken;
|
||||||
|
|
||||||
final String region = 'fra1';
|
final String region;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
BaseOptions get options {
|
BaseOptions get options {
|
||||||
|
@ -318,6 +319,7 @@ class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
|
|
||||||
final String dbPassword = StringGenerators.dbPassword();
|
final String dbPassword = StringGenerators.dbPassword();
|
||||||
final int dbId = dataBase.id;
|
final int dbId = dataBase.id;
|
||||||
|
final String? dbUuid = dataBase.uuid;
|
||||||
|
|
||||||
final String apiToken = StringGenerators.apiToken();
|
final String apiToken = StringGenerators.apiToken();
|
||||||
final String hostname = getHostnameFromDomain(domainName);
|
final String hostname = getHostnameFromDomain(domainName);
|
||||||
|
@ -334,7 +336,7 @@ class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
'server_type': 'cx11',
|
'server_type': 'cx11',
|
||||||
'start_after_create': false,
|
'start_after_create': false,
|
||||||
'image': 'ubuntu-20.04',
|
'image': 'ubuntu-20.04',
|
||||||
'volumes': [dbId],
|
'volumes': dbUuid == null ? [dbId] : [dbUuid],
|
||||||
'networks': [],
|
'networks': [],
|
||||||
'user_data': userdataString,
|
'user_data': userdataString,
|
||||||
'labels': {},
|
'labels': {},
|
||||||
|
@ -373,7 +375,7 @@ class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
await Future.delayed(const Duration(seconds: 10));
|
await Future.delayed(const Duration(seconds: 10));
|
||||||
await deleteVolume(dbId);
|
await deleteVolume(dbUuid ?? dbId.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hetznerError != null) {
|
if (hetznerError != null) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/volume_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/volume_provider.dart';
|
||||||
|
|
||||||
|
@ -8,18 +8,20 @@ class DigitalOceanApiFactory extends ServerProviderApiFactory
|
||||||
with VolumeProviderApiFactory {
|
with VolumeProviderApiFactory {
|
||||||
@override
|
@override
|
||||||
ServerProviderApi getServerProvider({
|
ServerProviderApi getServerProvider({
|
||||||
final ProviderApiSettings settings = const ProviderApiSettings(),
|
required final ServerProviderApiSettings settings,
|
||||||
}) =>
|
}) =>
|
||||||
DigitalOceanApi(
|
DigitalOceanApi(
|
||||||
|
region: settings.region,
|
||||||
hasLogger: settings.hasLogger,
|
hasLogger: settings.hasLogger,
|
||||||
isWithToken: settings.isWithToken,
|
isWithToken: settings.isWithToken,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
VolumeProviderApi getVolumeProvider({
|
VolumeProviderApi getVolumeProvider({
|
||||||
final ProviderApiSettings settings = const ProviderApiSettings(),
|
required final ServerProviderApiSettings settings,
|
||||||
}) =>
|
}) =>
|
||||||
DigitalOceanApi(
|
DigitalOceanApi(
|
||||||
|
region: settings.region,
|
||||||
hasLogger: settings.hasLogger,
|
hasLogger: settings.hasLogger,
|
||||||
isWithToken: settings.isWithToken,
|
isWithToken: settings.isWithToken,
|
||||||
);
|
);
|
||||||
|
|
|
@ -14,12 +14,14 @@ import 'package:selfprivacy/logic/models/server_basic_info.dart';
|
||||||
import 'package:selfprivacy/utils/password_generator.dart';
|
import 'package:selfprivacy/utils/password_generator.dart';
|
||||||
|
|
||||||
class HetznerApi extends ServerProviderApi with VolumeProviderApi {
|
class HetznerApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
HetznerApi({final this.hasLogger = false, final this.isWithToken = true});
|
HetznerApi({required this.region, this.hasLogger = false, this.isWithToken = true,});
|
||||||
@override
|
@override
|
||||||
bool hasLogger;
|
bool hasLogger;
|
||||||
@override
|
@override
|
||||||
bool isWithToken;
|
bool isWithToken;
|
||||||
|
|
||||||
|
final String region;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
BaseOptions get options {
|
BaseOptions get options {
|
||||||
final BaseOptions options = BaseOptions(baseUrl: rootAddress);
|
final BaseOptions options = BaseOptions(baseUrl: rootAddress);
|
||||||
|
@ -114,7 +116,7 @@ class HetznerApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
'size': 10,
|
'size': 10,
|
||||||
'name': StringGenerators.dbStorageName(),
|
'name': StringGenerators.dbStorageName(),
|
||||||
'labels': {'labelkey': 'value'},
|
'labels': {'labelkey': 'value'},
|
||||||
'location': 'fsn1',
|
'location': region,
|
||||||
'automount': false,
|
'automount': false,
|
||||||
'format': 'ext4'
|
'format': 'ext4'
|
||||||
},
|
},
|
||||||
|
@ -337,7 +339,7 @@ class HetznerApi extends ServerProviderApi with VolumeProviderApi {
|
||||||
'user_data': userdataString,
|
'user_data': userdataString,
|
||||||
'labels': {},
|
'labels': {},
|
||||||
'automount': true,
|
'automount': true,
|
||||||
'location': 'fsn1'
|
'location': region,
|
||||||
};
|
};
|
||||||
print('Decoded data: $data');
|
print('Decoded data: $data');
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/hetzner/hetzner.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/hetzner/hetzner.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/volume_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/volume_provider.dart';
|
||||||
|
|
||||||
|
@ -8,18 +8,20 @@ class HetznerApiFactory extends ServerProviderApiFactory
|
||||||
with VolumeProviderApiFactory {
|
with VolumeProviderApiFactory {
|
||||||
@override
|
@override
|
||||||
ServerProviderApi getServerProvider({
|
ServerProviderApi getServerProvider({
|
||||||
final ProviderApiSettings settings = const ProviderApiSettings(),
|
required final ServerProviderApiSettings settings,
|
||||||
}) =>
|
}) =>
|
||||||
HetznerApi(
|
HetznerApi(
|
||||||
|
region: settings.region,
|
||||||
hasLogger: settings.hasLogger,
|
hasLogger: settings.hasLogger,
|
||||||
isWithToken: settings.isWithToken,
|
isWithToken: settings.isWithToken,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
VolumeProviderApi getVolumeProvider({
|
VolumeProviderApi getVolumeProvider({
|
||||||
final ProviderApiSettings settings = const ProviderApiSettings(),
|
required final ServerProviderApiSettings settings,
|
||||||
}) =>
|
}) =>
|
||||||
HetznerApi(
|
HetznerApi(
|
||||||
|
region: settings.region,
|
||||||
hasLogger: settings.hasLogger,
|
hasLogger: settings.hasLogger,
|
||||||
isWithToken: settings.isWithToken,
|
isWithToken: settings.isWithToken,
|
||||||
);
|
);
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
||||||
|
|
||||||
|
class ServerProviderApiSettings extends ProviderApiSettings {
|
||||||
|
const ServerProviderApiSettings({
|
||||||
|
required this.region,
|
||||||
|
super.hasLogger = false,
|
||||||
|
super.isWithToken = true,
|
||||||
|
});
|
||||||
|
|
||||||
|
final String region;
|
||||||
|
}
|
|
@ -1,15 +1,15 @@
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/volume_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/volume_provider.dart';
|
||||||
|
|
||||||
abstract class ServerProviderApiFactory {
|
abstract class ServerProviderApiFactory {
|
||||||
ServerProviderApi getServerProvider({
|
ServerProviderApi getServerProvider({
|
||||||
final ProviderApiSettings settings = const ProviderApiSettings(),
|
required final ServerProviderApiSettings settings,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin VolumeProviderApiFactory {
|
mixin VolumeProviderApiFactory {
|
||||||
VolumeProviderApi getVolumeProvider({
|
VolumeProviderApi getVolumeProvider({
|
||||||
final ProviderApiSettings settings = const ProviderApiSettings(),
|
required final ServerProviderApiSettings settings,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ class HetznerMetricsRepository {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
final HetznerApi api = HetznerApi(hasLogger: false);
|
final HetznerApi api = HetznerApi(hasLogger: false, region: 'fra1',);
|
||||||
|
|
||||||
final List<Map<String, dynamic>> results = await Future.wait([
|
final List<Map<String, dynamic>> results = await Future.wait([
|
||||||
api.getMetrics(start, end, 'cpu'),
|
api.getMetrics(start, end, 'cpu'),
|
||||||
|
|
|
@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:selfprivacy/config/get_it_config.dart';
|
import 'package:selfprivacy/config/get_it_config.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server.dart';
|
import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
||||||
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
|
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
|
||||||
import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart';
|
import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart';
|
||||||
|
@ -34,7 +35,7 @@ class ApiProviderVolumeCubit
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Price?> getPricePerGb() async =>
|
Future<Price?> getPricePerGb() async =>
|
||||||
providerApi!.getVolumeProvider().getPricePerGb();
|
providerApi!.getVolumeProvider(settings: const ServerProviderApiSettings(region: 'fra1',),).getPricePerGb();
|
||||||
|
|
||||||
Future<void> refresh() async {
|
Future<void> refresh() async {
|
||||||
emit(const ApiProviderVolumeState([], LoadingStatus.refreshing, false));
|
emit(const ApiProviderVolumeState([], LoadingStatus.refreshing, false));
|
||||||
|
@ -47,7 +48,7 @@ class ApiProviderVolumeCubit
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<ServerVolume> volumes =
|
final List<ServerVolume> volumes =
|
||||||
await providerApi!.getVolumeProvider().getVolumes();
|
await providerApi!.getVolumeProvider(settings: const ServerProviderApiSettings(region: 'fra1',),).getVolumes();
|
||||||
|
|
||||||
if (volumes.isEmpty) {
|
if (volumes.isEmpty) {
|
||||||
return emit(const ApiProviderVolumeState([], LoadingStatus.error, false));
|
return emit(const ApiProviderVolumeState([], LoadingStatus.error, false));
|
||||||
|
@ -59,15 +60,15 @@ class ApiProviderVolumeCubit
|
||||||
Future<void> attachVolume(final DiskVolume volume) async {
|
Future<void> attachVolume(final DiskVolume volume) async {
|
||||||
final ServerHostingDetails server = getIt<ApiConfigModel>().serverDetails!;
|
final ServerHostingDetails server = getIt<ApiConfigModel>().serverDetails!;
|
||||||
await providerApi!
|
await providerApi!
|
||||||
.getVolumeProvider()
|
.getVolumeProvider(settings: const ServerProviderApiSettings(region: 'fra1',),)
|
||||||
.attachVolume(volume.providerVolume!.id, server.id);
|
.attachVolume(volume.providerVolume!.id.toString(), server.id);
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> detachVolume(final DiskVolume volume) async {
|
Future<void> detachVolume(final DiskVolume volume) async {
|
||||||
await providerApi!
|
await providerApi!
|
||||||
.getVolumeProvider()
|
.getVolumeProvider(settings: const ServerProviderApiSettings(region: 'fra1',),)
|
||||||
.detachVolume(volume.providerVolume!.id);
|
.detachVolume(volume.providerVolume!.id.toString());
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,8 +81,8 @@ class ApiProviderVolumeCubit
|
||||||
'Starting resize',
|
'Starting resize',
|
||||||
);
|
);
|
||||||
emit(state.copyWith(isResizing: true));
|
emit(state.copyWith(isResizing: true));
|
||||||
final bool resized = await providerApi!.getVolumeProvider().resizeVolume(
|
final bool resized = await providerApi!.getVolumeProvider(settings: const ServerProviderApiSettings(region: 'fra1',),).resizeVolume(
|
||||||
volume.providerVolume!.id,
|
volume.providerVolume!.id.toString(),
|
||||||
newSizeGb,
|
newSizeGb,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -117,7 +118,7 @@ class ApiProviderVolumeCubit
|
||||||
|
|
||||||
Future<void> createVolume() async {
|
Future<void> createVolume() async {
|
||||||
final ServerVolume? volume =
|
final ServerVolume? volume =
|
||||||
await providerApi!.getVolumeProvider().createVolume();
|
await providerApi!.getVolumeProvider(settings: const ServerProviderApiSettings(region: 'fra1',),).createVolume();
|
||||||
|
|
||||||
final diskVolume = DiskVolume(providerVolume: volume);
|
final diskVolume = DiskVolume(providerVolume: volume);
|
||||||
await attachVolume(diskVolume);
|
await attachVolume(diskVolume);
|
||||||
|
@ -130,8 +131,8 @@ class ApiProviderVolumeCubit
|
||||||
|
|
||||||
Future<void> deleteVolume(final DiskVolume volume) async {
|
Future<void> deleteVolume(final DiskVolume volume) async {
|
||||||
await providerApi!
|
await providerApi!
|
||||||
.getVolumeProvider()
|
.getVolumeProvider(settings: const ServerProviderApiSettings(region: 'fra1',),)
|
||||||
.deleteVolume(volume.providerVolume!.id);
|
.deleteVolume(volume.providerVolume!.id.toString());
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import 'package:selfprivacy/logic/models/json/hetzner_server_info.dart';
|
||||||
import 'package:selfprivacy/logic/models/timezone_settings.dart';
|
import 'package:selfprivacy/logic/models/timezone_settings.dart';
|
||||||
|
|
||||||
class ServerDetailsRepository {
|
class ServerDetailsRepository {
|
||||||
HetznerApi hetzner = HetznerApi();
|
HetznerApi hetzner = HetznerApi(region: 'fra1');
|
||||||
ServerApi server = ServerApi();
|
ServerApi server = ServerApi();
|
||||||
|
|
||||||
Future<ServerDetailsRepositoryDto> load() async {
|
Future<ServerDetailsRepositoryDto> load() async {
|
||||||
|
|
|
@ -5,8 +5,10 @@ import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:selfprivacy/config/get_it_config.dart';
|
import 'package:selfprivacy/config/get_it_config.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/provider_api_settings.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart';
|
import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart';
|
||||||
import 'package:selfprivacy/logic/models/hive/server_details.dart';
|
import 'package:selfprivacy/logic/models/hive/server_details.dart';
|
||||||
import 'package:selfprivacy/logic/models/hive/server_domain.dart';
|
import 'package:selfprivacy/logic/models/hive/server_domain.dart';
|
||||||
|
@ -61,7 +63,7 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
|
||||||
|
|
||||||
RegExp getServerProviderApiTokenValidation() =>
|
RegExp getServerProviderApiTokenValidation() =>
|
||||||
repository.serverProviderApiFactory!
|
repository.serverProviderApiFactory!
|
||||||
.getServerProvider()
|
.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),)
|
||||||
.getApiTokenValidation();
|
.getApiTokenValidation();
|
||||||
|
|
||||||
RegExp getDnsProviderApiTokenValidation() => repository.dnsProviderApiFactory!
|
RegExp getDnsProviderApiTokenValidation() => repository.dnsProviderApiFactory!
|
||||||
|
@ -73,7 +75,7 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
|
||||||
) async =>
|
) async =>
|
||||||
repository.serverProviderApiFactory!
|
repository.serverProviderApiFactory!
|
||||||
.getServerProvider(
|
.getServerProvider(
|
||||||
settings: const ProviderApiSettings(isWithToken: false),
|
settings: const ServerProviderApiSettings(region: 'fra1', isWithToken: false),
|
||||||
)
|
)
|
||||||
.isApiTokenValid(providerToken);
|
.isApiTokenValid(providerToken);
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,11 @@ import 'package:selfprivacy/config/get_it_config.dart';
|
||||||
import 'package:selfprivacy/config/hive_config.dart';
|
import 'package:selfprivacy/config/hive_config.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart';
|
||||||
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_api_settings.dart';
|
||||||
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart';
|
||||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||||
import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart';
|
import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart';
|
||||||
|
@ -151,7 +153,7 @@ class ServerInstallationRepository {
|
||||||
) async {
|
) async {
|
||||||
ServerHostingDetails serverDetails;
|
ServerHostingDetails serverDetails;
|
||||||
|
|
||||||
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider();
|
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),);
|
||||||
serverDetails = await api.powerOn();
|
serverDetails = await api.powerOn();
|
||||||
|
|
||||||
return serverDetails;
|
return serverDetails;
|
||||||
|
@ -227,7 +229,7 @@ class ServerInstallationRepository {
|
||||||
required final Future<void> Function(ServerHostingDetails serverDetails)
|
required final Future<void> Function(ServerHostingDetails serverDetails)
|
||||||
onSuccess,
|
onSuccess,
|
||||||
}) async {
|
}) async {
|
||||||
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider();
|
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),);
|
||||||
try {
|
try {
|
||||||
final ServerHostingDetails? serverDetails = await api.createServer(
|
final ServerHostingDetails? serverDetails = await api.createServer(
|
||||||
dnsApiToken: cloudFlareKey,
|
dnsApiToken: cloudFlareKey,
|
||||||
|
@ -332,7 +334,7 @@ class ServerInstallationRepository {
|
||||||
final DnsProviderApi dnsProviderApi =
|
final DnsProviderApi dnsProviderApi =
|
||||||
dnsProviderApiFactory!.getDnsProvider();
|
dnsProviderApiFactory!.getDnsProvider();
|
||||||
final ServerProviderApi serverApi =
|
final ServerProviderApi serverApi =
|
||||||
serverProviderApiFactory!.getServerProvider();
|
serverProviderApiFactory!.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),);
|
||||||
|
|
||||||
await dnsProviderApi.removeSimilarRecords(
|
await dnsProviderApi.removeSimilarRecords(
|
||||||
ip4: serverDetails.ip4,
|
ip4: serverDetails.ip4,
|
||||||
|
@ -404,12 +406,12 @@ class ServerInstallationRepository {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<ServerHostingDetails> restart() async {
|
Future<ServerHostingDetails> restart() async {
|
||||||
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider();
|
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),);
|
||||||
return api.restart();
|
return api.restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<ServerHostingDetails> powerOn() async {
|
Future<ServerHostingDetails> powerOn() async {
|
||||||
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider();
|
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),);
|
||||||
return api.powerOn();
|
return api.powerOn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -652,7 +654,7 @@ class ServerInstallationRepository {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<ServerBasicInfo>> getServersOnProviderAccount() async {
|
Future<List<ServerBasicInfo>> getServersOnProviderAccount() async {
|
||||||
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider();
|
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),);
|
||||||
return api.getServers();
|
return api.getServers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -730,7 +732,7 @@ class ServerInstallationRepository {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> deleteServer(final ServerDomain serverDomain) async {
|
Future<void> deleteServer(final ServerDomain serverDomain) async {
|
||||||
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider();
|
final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(settings: const ServerProviderApiSettings(region: 'fra1',),);
|
||||||
final DnsProviderApi dnsProviderApi =
|
final DnsProviderApi dnsProviderApi =
|
||||||
dnsProviderApiFactory!.getDnsProvider();
|
dnsProviderApiFactory!.getDnsProvider();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue