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,21 +117,32 @@ class HetznerApi extends ApiMap {
}; };
print('Decoded data: $data'); print('Decoded data: $data');
final Response serverCreateResponse = await client.post( ServerHostingDetails? serverDetails;
'/servers',
data: data,
);
print(serverCreateResponse.data); try {
client.close(); final Response serverCreateResponse = await client.post(
return ServerHostingDetails( '/servers',
id: serverCreateResponse.data['server']['id'], data: data,
ip4: serverCreateResponse.data['server']['public_net']['ipv4']['ip'], );
createTime: DateTime.now(), print(serverCreateResponse.data);
volume: dataBase, serverDetails = ServerHostingDetails(
apiToken: apiToken, id: serverCreateResponse.data['server']['id'],
provider: ServerProvider.hetzner, ip4: serverCreateResponse.data['server']['public_net']['ipv4']['ip'],
); createTime: DateTime.now(),
volume: dataBase,
apiToken: apiToken,
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,14 +258,20 @@ 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();
await client.post( try {
'/servers/${hetznerServer!.id}/actions/change_dns_ptr', await client.post(
data: { '/servers/${hetznerServer!.id}/actions/change_dns_ptr',
'ip': ip4, data: {
'dns_ptr': domainName, 'ip': ip4,
}, 'dns_ptr': domainName,
); },
close(client); );
} catch (e) {
print(e);
} finally {
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';