init: rough companion app stub
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user