Skip to content

Commit 7b09a7b

Browse files
committed
src: device: Integrations required for restAPI and websocket
1 parent e4591ce commit 7b09a7b

2 files changed

Lines changed: 13 additions & 14 deletions

File tree

src/device/manager.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use paperclip::actix::Apiv2Schema;
12
use serde::{Deserialize, Serialize};
23
use std::{
34
collections::{hash_map::DefaultHasher, HashMap},
@@ -59,13 +60,13 @@ enum SourceType {
5960
Serial(SerialStream),
6061
}
6162

62-
#[derive(Clone, Debug, Deserialize, Serialize, Hash)]
63+
#[derive(Clone, Debug, Deserialize, Serialize, Hash, Apiv2Schema)]
6364
pub struct SourceUdpStruct {
6465
pub ip: Ipv4Addr,
6566
pub port: u16,
6667
}
6768

68-
#[derive(Clone, Debug, Deserialize, Serialize, Hash)]
69+
#[derive(Clone, Debug, Deserialize, Serialize, Hash, Apiv2Schema)]
6970
pub struct SourceSerialStruct {
7071
pub path: String,
7172
pub baudrate: u32,
@@ -92,9 +93,9 @@ pub struct ManagerActorHandler {
9293
pub sender: mpsc::Sender<ManagerActorRequest>,
9394
}
9495

95-
#[derive(Debug, Serialize, Deserialize, Clone)]
96+
#[derive(Debug, Serialize, Deserialize, Clone, Apiv2Schema)]
9697
pub enum Answer {
97-
Ping(PingAnswer),
98+
DeviceMessage(DeviceAnswer),
9899
#[serde(skip)]
99100
InnerDeviceHandler(DeviceActorHandler),
100101
DeviceInfo(Vec<DeviceInfo>),
@@ -112,12 +113,13 @@ pub enum ManagerError {
112113
}
113114

114115
#[derive(Debug, Serialize, Deserialize, Clone)]
115-
pub struct PingAnswer {
116-
pub answer: Result<crate::device::devices::PingAnswer, crate::device::devices::DeviceError>,
116+
pub struct DeviceAnswer {
117+
#[serde(flatten)]
118+
pub answer: crate::device::devices::PingAnswer,
117119
pub device_id: Uuid,
118120
}
119121

120-
#[derive(Debug, Clone, Serialize, Deserialize)]
122+
#[derive(Debug, Clone, Serialize, Deserialize, Apiv2Schema)]
121123
pub enum Request {
122124
Create(CreateStruct),
123125
Delete(Uuid),
@@ -422,8 +424,8 @@ impl ManagerActorHandler {
422424
match result {
423425
Ok(result) => {
424426
info!("Handling Ping request: {:?}: Success", request);
425-
Ok(Answer::Ping(PingAnswer {
426-
answer: Ok(result),
427+
Ok(Answer::DeviceMessage(DeviceAnswer {
428+
answer: result,
427429
device_id: request.target,
428430
}))
429431
}

src/main.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,10 @@ async fn main() {
2121
//Todo: Load previous devices
2222
info!(
2323
"DeviceManager initialized with following devices: {:?}",
24-
handler
25-
.send(crate::device::manager::Request::List {})
26-
.await
27-
.unwrap()
24+
handler.send(crate::device::manager::Request::List).await
2825
);
2926

30-
server::manager::run(&cli::manager::server_address())
27+
server::manager::run(&cli::manager::server_address(), handler)
3128
.await
3229
.unwrap();
3330
}

0 commit comments

Comments
 (0)