Files
companion/lib/data/repositories/phoenix_onboarding_repository.dart
T
2026-05-07 18:35:58 +02:00

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;
}
}