Minor flow bugfixes

pull/90/head
NaiJi ✨ 2022-06-09 09:51:29 +03:00
parent 43411adf2c
commit 3fbdc05469
3 changed files with 50 additions and 27 deletions

View File

@ -76,7 +76,7 @@ class HetznerApi extends ApiMap {
); );
} }
Future<ServerHostingDetails> createServer({ Future<ServerHostingDetails?> createServer({
required final String cloudFlareKey, required final String cloudFlareKey,
required final User rootUser, required final User rootUser,
required final String domainName, required final String domainName,
@ -117,14 +117,15 @@ class HetznerApi extends ApiMap {
}; };
print('Decoded data: $data'); print('Decoded data: $data');
ServerHostingDetails? serverDetails;
try {
final Response serverCreateResponse = await client.post( final Response serverCreateResponse = await client.post(
'/servers', '/servers',
data: data, data: data,
); );
print(serverCreateResponse.data); print(serverCreateResponse.data);
client.close(); serverDetails = ServerHostingDetails(
return ServerHostingDetails(
id: serverCreateResponse.data['server']['id'], id: serverCreateResponse.data['server']['id'],
ip4: serverCreateResponse.data['server']['public_net']['ipv4']['ip'], ip4: serverCreateResponse.data['server']['public_net']['ipv4']['ip'],
createTime: DateTime.now(), createTime: DateTime.now(),
@ -132,6 +133,16 @@ class HetznerApi extends ApiMap {
apiToken: apiToken, apiToken: apiToken,
provider: ServerProvider.hetzner, provider: ServerProvider.hetzner,
); );
} on DioError catch (e) {
print(e);
rethrow;
} catch (e) {
print(e);
} finally {
client.close();
}
return serverDetails;
} }
static String getHostnameFromDomain(final String domain) { static String getHostnameFromDomain(final String domain) {
@ -247,7 +258,9 @@ class HetznerApi extends ApiMap {
}) async { }) async {
final ServerHostingDetails? hetznerServer = final ServerHostingDetails? hetznerServer =
getIt<ApiConfigModel>().serverDetails; getIt<ApiConfigModel>().serverDetails;
final Dio client = await getClient(); final Dio client = await getClient();
try {
await client.post( await client.post(
'/servers/${hetznerServer!.id}/actions/change_dns_ptr', '/servers/${hetznerServer!.id}/actions/change_dns_ptr',
data: { data: {
@ -255,6 +268,10 @@ class HetznerApi extends ApiMap {
'dns_ptr': domainName, 'dns_ptr': domainName,
}, },
); );
} catch (e) {
print(e);
} finally {
close(client); close(client);
} }
} }
}

View File

@ -214,12 +214,16 @@ class ServerInstallationRepository {
try { try {
dataBase = await hetznerApi.createVolume(); dataBase = await hetznerApi.createVolume();
final ServerHostingDetails serverDetails = await hetznerApi.createServer( final ServerHostingDetails? serverDetails = await hetznerApi.createServer(
cloudFlareKey: cloudFlareKey, cloudFlareKey: cloudFlareKey,
rootUser: rootUser, rootUser: rootUser,
domainName: domainName, domainName: domainName,
dataBase: dataBase, dataBase: dataBase,
); );
if (serverDetails == null) {
print('Server is not initialized!');
return;
}
saveServerDetails(serverDetails); saveServerDetails(serverDetails);
onSuccess(serverDetails); onSuccess(serverDetails);
} on DioError catch (e) { } on DioError catch (e) {
@ -238,14 +242,17 @@ class ServerInstallationRepository {
domainName: domainName, domainName: domainName,
); );
final ServerHostingDetails serverDetails = final ServerHostingDetails? serverDetails =
await hetznerApi.createServer( await hetznerApi.createServer(
cloudFlareKey: cloudFlareKey, cloudFlareKey: cloudFlareKey,
rootUser: rootUser, rootUser: rootUser,
domainName: domainName, domainName: domainName,
dataBase: dataBase, dataBase: dataBase,
); );
if (serverDetails == null) {
print('Server is not initialized!');
return;
}
await saveServerDetails(serverDetails); await saveServerDetails(serverDetails);
onSuccess(serverDetails); onSuccess(serverDetails);
}, },

View File

@ -1,5 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:selfprivacy/config/brand_theme.dart'; import 'package:selfprivacy/config/brand_theme.dart';
import 'package:selfprivacy/ui/components/brand_divider/brand_divider.dart'; import 'package:selfprivacy/ui/components/brand_divider/brand_divider.dart';
import 'package:selfprivacy/ui/components/brand_header/brand_header.dart'; import 'package:selfprivacy/ui/components/brand_header/brand_header.dart';