selfprivacy.org.app/lib/logic/cubit/services/services_state.dart

63 lines
1.8 KiB
Dart
Raw Normal View History

2021-08-29 12:50:24 +03:00
part of 'services_cubit.dart';
class ServicesState extends ServerInstallationDependendState {
2021-08-29 16:54:28 +03:00
const ServicesState({
required this.services,
2021-08-29 16:54:28 +03:00
});
const ServicesState.empty() : this(services: const []);
2021-08-29 16:54:28 +03:00
final List<Service> services;
2022-09-05 07:34:47 +03:00
bool get isPasswordManagerEnable => services
.firstWhere((final service) => service.id == 'bitwarden',
orElse: () => Service.empty)
.isEnabled;
bool get isCloudEnable => services
.firstWhere((final service) => service.id == 'nextcloud',
orElse: () => Service.empty)
.isEnabled;
bool get isGitEnable => services
.firstWhere((final service) => service.id == 'gitea',
orElse: () => Service.empty)
.isEnabled;
bool get isSocialNetworkEnable => services
.firstWhere((final service) => service.id == 'pleroma',
orElse: () => Service.empty)
.isEnabled;
bool get isVpnEnable => services
.firstWhere((final service) => service.id == 'ocserv',
orElse: () => Service.empty)
.isEnabled;
2021-08-29 16:54:28 +03:00
Service? getServiceById(final String id) {
2022-09-05 07:34:47 +03:00
final service = services.firstWhere((final service) => service.id == id,
orElse: () => Service.empty);
if (service.id == 'empty') {
return null;
}
return service;
}
2021-08-29 12:50:24 +03:00
@override
2021-08-29 16:54:28 +03:00
List<Object> get props => [
services,
2021-08-29 16:54:28 +03:00
];
2021-08-29 18:02:51 +03:00
2022-06-05 22:36:32 +03:00
bool isEnableByType(final ServiceTypes type) {
2021-08-29 18:02:51 +03:00
switch (type) {
case ServiceTypes.bitwarden:
2021-08-29 18:02:51 +03:00
return isPasswordManagerEnable;
case ServiceTypes.nextcloud:
2021-08-29 18:02:51 +03:00
return isCloudEnable;
case ServiceTypes.pleroma:
2021-08-29 18:02:51 +03:00
return isSocialNetworkEnable;
case ServiceTypes.gitea:
2021-08-29 18:02:51 +03:00
return isGitEnable;
case ServiceTypes.ocserv:
2021-08-29 18:02:51 +03:00
return isVpnEnable;
default:
throw Exception('wrong state');
}
}
2021-08-29 12:50:24 +03:00
}