fix(volume): Change raw int to DiskSize object in volume endpoints

We already have an abstraction for size, there is no need to pass size value as raw numeric variables
This commit is contained in:
NaiJi 2022-11-04 16:18:35 +04:00
parent aa1c04fdb8
commit 59d186a8af
5 changed files with 16 additions and 8 deletions

View File

@ -252,7 +252,10 @@ class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
}
@override
Future<bool> resizeVolume(final ServerVolume volume, final int sizeGb) async {
Future<bool> resizeVolume(
final ServerVolume volume,
final DiskSize size,
) async {
bool success = false;
final Response dbPostResponse;
@ -263,7 +266,7 @@ class DigitalOceanApi extends ServerProviderApi with VolumeProviderApi {
data: {
'type': 'resize',
'volume_name': volume.name,
'size_gigabytes': sizeGb,
'size_gigabytes': size.gibibyte,
'region': region,
},
);

View File

@ -281,7 +281,10 @@ class HetznerApi extends ServerProviderApi with VolumeProviderApi {
}
@override
Future<bool> resizeVolume(final ServerVolume volume, final int sizeGb) async {
Future<bool> resizeVolume(
final ServerVolume volume,
final DiskSize size,
) async {
bool success = false;
final Response dbPostResponse;
@ -290,7 +293,7 @@ class HetznerApi extends ServerProviderApi with VolumeProviderApi {
dbPostResponse = await client.post(
'/volumes/$volume.id/actions/resize',
data: {
'size': sizeGb,
'size': size.gibibyte,
},
);
success = dbPostResponse.data['action']['status'].toString() != 'error';

View File

@ -1,4 +1,5 @@
import 'package:selfprivacy/logic/api_maps/rest_maps/api_map.dart';
import 'package:selfprivacy/logic/models/disk_size.dart';
import 'package:selfprivacy/logic/models/hive/server_details.dart';
import 'package:selfprivacy/logic/models/price.dart';
@ -7,7 +8,7 @@ mixin VolumeProviderApi on ApiMap {
Future<List<ServerVolume>> getVolumes({final String? status});
Future<bool> attachVolume(final ServerVolume volume, final int serverId);
Future<bool> detachVolume(final ServerVolume volume);
Future<bool> resizeVolume(final ServerVolume volume, final int sizeGb);
Future<bool> resizeVolume(final ServerVolume volume, final DiskSize size);
Future<void> deleteVolume(final ServerVolume volume);
Future<Price?> getPricePerGb();
}

View File

@ -6,6 +6,7 @@ import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.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/cubit/app_config_dependent/authentication_dependend_cubit.dart';
import 'package:selfprivacy/logic/models/disk_size.dart';
import 'package:selfprivacy/logic/models/hive/server_details.dart';
import 'package:selfprivacy/logic/models/disk_status.dart';
import 'package:selfprivacy/logic/models/price.dart';
@ -76,7 +77,7 @@ class ApiProviderVolumeCubit
Future<bool> resizeVolume(
final DiskVolume volume,
final int newSizeGb,
final DiskSize newSize,
final Function() callback,
) async {
getIt<NavigationService>().showSnackBar(
@ -85,7 +86,7 @@ class ApiProviderVolumeCubit
emit(state.copyWith(isResizing: true));
final bool resized = await providerApi!.getVolumeProvider().resizeVolume(
volume.providerVolume!,
newSizeGb,
newSize,
);
if (!resized) {

View File

@ -153,7 +153,7 @@ class _ExtendingVolumePageState extends State<ExtendingVolumePage> {
: () {
context.read<ApiProviderVolumeCubit>().resizeVolume(
widget.diskVolumeToResize,
_currentSliderGbValue.round(),
DiskSize.fromGibibyte(_currentSliderGbValue),
context.read<ApiServerVolumeCubit>().reload,
);
Navigator.of(context).pushAndRemoveUntil(