import '../../domain/models/sensor.dart'; import '../sources/localiser/sensor_client.dart'; import 'sensor_repository.dart'; class PhoenixSensorRepository implements SensorRepository { const PhoenixSensorRepository({required this.client}); final SensorClient client; @override Future> getSensors() async { final list = await client.getSensors(); return list.map((j) => Sensor.fromJson(j as Map)).toList(); } @override Future> getUnplacedSensors() async { final list = await client.getUnplacedSensors(); return list.map((j) => Sensor.fromJson(j as Map)).toList(); } @override Future getSensor(int id) async => Sensor.fromJson(await client.getSensor(id)); @override Future updateSensor(int id, {String? name, double? rssiRef}) async { final params = {}; if (name != null) params['name'] = name; if (rssiRef != null) params['rssi_ref'] = rssiRef; return Sensor.fromJson(await client.updateSensor(id, params)); } @override Future deleteSensor(int id) => client.deleteSensor(id); @override Future placeSensor(int id, {required int roomId, required double x, required double y}) async => Sensor.fromJson( await client.placeSensor(id, {'room_id': roomId, 'x': x, 'y': y})); @override Future unplaceSensor(int id) async => Sensor.fromJson(await client.unplaceSensor(id)); }