28 lines
896 B
Dart
28 lines
896 B
Dart
import '../../domain/models/onboarding_status.dart';
|
|
import '../sources/localiser/onboarding_client.dart';
|
|
import 'onboarding_repository.dart';
|
|
|
|
class PhoenixOnboardingRepository implements OnboardingRepository {
|
|
const PhoenixOnboardingRepository({required this.client});
|
|
|
|
final OnboardingClient client;
|
|
|
|
@override
|
|
Future<OnboardingStatus> getStatus() async {
|
|
final checklist = await client.getChecklist();
|
|
if (!checklist.hasAdmin) return OnboardingStatus.notStarted;
|
|
if (!checklist.hasFloors) return OnboardingStatus.awaitingFloorPlan;
|
|
if (!checklist.hasSensorsPlaced) return OnboardingStatus.awaitingFirstSensor;
|
|
return OnboardingStatus.complete;
|
|
}
|
|
|
|
@override
|
|
Future<String> createAdminUser({
|
|
required String username,
|
|
required String password,
|
|
}) async {
|
|
final response = await client.setup(username, password);
|
|
return response.token;
|
|
}
|
|
}
|