Files

70 lines
2.2 KiB
Dart

import 'localiser_client.dart';
class SensorClient extends LocaliserdClient {
SensorClient({required super.config, required String super.token});
Future<List<dynamic>> getSensors() async =>
await get('/api/sensors') as List<dynamic>;
Future<List<dynamic>> getUnplacedSensors() async =>
await get('/api/sensors/unplaced') as List<dynamic>;
Future<Map<String, dynamic>> getSensor(int id) async =>
await get('/api/sensors/$id') as Map<String, dynamic>;
Future<Map<String, dynamic>> updateSensor(
int id,
Map<String, dynamic> params,
) async => await put('/api/sensors/$id', params) as Map<String, dynamic>;
Future<void> deleteSensor(int id) => delete('/api/sensors/$id');
Future<Map<String, dynamic>> placeSensor(
int id,
Map<String, dynamic> params,
) async =>
await put('/api/sensors/$id/place', params) as Map<String, dynamic>;
Future<Map<String, dynamic>> unplaceSensor(int id) async =>
await deleteBody('/api/sensors/$id/place') as Map<String, dynamic>;
Future<Map<String, dynamic>> createSensor(
String sensorId, {
String? name,
}) async =>
await post('/api/sensors', {
'sensor_id': sensorId,
if (name != null) 'name': name,
})
as Map<String, dynamic>;
Future<Map<String, dynamic>> beginCalibration(int id) async =>
await post('/api/sensors/$id/calibration/begin') as Map<String, dynamic>;
Future<Map<String, dynamic>> startStage(int id, double distance) async =>
await post('/api/sensors/$id/calibration/stage', {
'distance': distance,
})
as Map<String, dynamic>;
Future<Map<String, dynamic>> finishCalibration(int id) async =>
await post(
'/api/sensors/$id/calibration/finish',
) as Map<String, dynamic>;
Future<Map<String, dynamic>> setCalibrationTag(int id, String tagId) async =>
await post('/api/sensors/$id/calibration/tag', {
'tag_id': tagId,
})
as Map<String, dynamic>;
Future<void> cancelCalibration(int id) =>
delete('/api/sensors/$id/calibration');
Future<String> getVersion(int id) async {
final response =
(await get('/api/sensors/$id/version') as Map<String, dynamic>);
return response['version']!;
}
}