diff --git a/lib/data/repositories/phoenix_sensor_repository.dart b/lib/data/repositories/phoenix_sensor_repository.dart index 407d88d..6195e7d 100644 --- a/lib/data/repositories/phoenix_sensor_repository.dart +++ b/lib/data/repositories/phoenix_sensor_repository.dart @@ -1,5 +1,4 @@ import '../../domain/models/sensor.dart'; -import '../../domain/models/position.dart'; import '../sources/localiser/sensor_client.dart'; import 'sensor_repository.dart'; @@ -9,19 +8,39 @@ class PhoenixSensorRepository implements SensorRepository { final SensorClient client; @override - Future> getSensors() => throw UnimplementedError(); + Future> getSensors() async { + final list = await client.getSensors(); + return list.map((j) => Sensor.fromJson(j as Map)).toList(); + } @override - Future getSensor(String id) => throw UnimplementedError(); + Future> getUnplacedSensors() async { + final list = await client.getUnplacedSensors(); + return list.map((j) => Sensor.fromJson(j as Map)).toList(); + } @override - Future createSensor({required String name, required Position position}) => - throw UnimplementedError(); + Future getSensor(int id) async => + Sensor.fromJson(await client.getSensor(id)); @override - Future updateSensor(String id, {String? name, Position? position}) => - throw UnimplementedError(); + 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(String id) => throw UnimplementedError(); + 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)); } diff --git a/lib/data/repositories/sensor_repository.dart b/lib/data/repositories/sensor_repository.dart index cf4ce0b..028078f 100644 --- a/lib/data/repositories/sensor_repository.dart +++ b/lib/data/repositories/sensor_repository.dart @@ -1,10 +1,12 @@ import '../../domain/models/sensor.dart'; -import '../../domain/models/position.dart'; abstract class SensorRepository { Future> getSensors(); - Future getSensor(String id); - Future createSensor({required String name, required Position position}); - Future updateSensor(String id, {String? name, Position? position}); - Future deleteSensor(String id); + Future> getUnplacedSensors(); + Future getSensor(int id); + Future updateSensor(int id, {String? name, double? rssiRef}); + Future deleteSensor(int id); + Future placeSensor(int id, + {required int roomId, required double x, required double y}); + Future unplaceSensor(int id); }