summaryrefslogtreecommitdiff
path: root/src/routes/device.rs
diff options
context:
space:
mode:
authorFxQnLr <[email protected]>2024-04-15 21:12:04 +0200
committerGitHub <[email protected]>2024-04-15 21:12:04 +0200
commitea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145 (patch)
treed89f0da1841b984c10a6a24997a8733524b75f75 /src/routes/device.rs
parentb615f6e34e084d520dcc301058b5926074188500 (diff)
parent7876dd605a8e4b595436035a87a5151be187c01d (diff)
downloadwebol-ea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145.tar
webol-ea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145.tar.gz
webol-ea4f36ea34a4e425ef23e2ae0d4ea210d4a8a145.zip
Merge pull request #36 from FxQnLr/optional_ip
Optional ip and better docs
Diffstat (limited to 'src/routes/device.rs')
-rw-r--r--src/routes/device.rs27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/routes/device.rs b/src/routes/device.rs
index 49361f2..f767eab 100644
--- a/src/routes/device.rs
+++ b/src/routes/device.rs
@@ -36,7 +36,7 @@ pub struct DPayload {
36 id: String, 36 id: String,
37 mac: String, 37 mac: String,
38 broadcast_addr: String, 38 broadcast_addr: String,
39 ip: String, 39 ip: Option<String>,
40} 40}
41 41
42#[utoipa::path( 42#[utoipa::path(
@@ -48,15 +48,17 @@ pub struct DPayload {
48 ), 48 ),
49 security((), ("api_key" = [])) 49 security((), ("api_key" = []))
50)] 50)]
51pub async fn put( 51pub async fn put(Json(payload): Json<DPayload>) -> Result<Json<Value>, Error> {
52 Json(payload): Json<DPayload>,
53) -> Result<Json<Value>, Error> {
54 info!( 52 info!(
55 "add device {} ({}, {}, {})", 53 "add device {} ({}, {}, {:?})",
56 payload.id, payload.mac, payload.broadcast_addr, payload.ip 54 payload.id, payload.mac, payload.broadcast_addr, payload.ip
57 ); 55 );
58 56
59 let ip = IpNetwork::from_str(&payload.ip)?; 57 let ip = if let Some(ip_s) = payload.ip {
58 Some(IpNetwork::from_str(&ip_s)?)
59 } else {
60 None
61 };
60 let mac = MacAddress::from_str(&payload.mac)?; 62 let mac = MacAddress::from_str(&payload.mac)?;
61 let device = Device { 63 let device = Device {
62 id: payload.id, 64 id: payload.id,
@@ -79,14 +81,17 @@ pub async fn put(
79 ), 81 ),
80 security((), ("api_key" = [])) 82 security((), ("api_key" = []))
81)] 83)]
82pub async fn post( 84pub async fn post(Json(payload): Json<DPayload>) -> Result<Json<Value>, Error> {
83 Json(payload): Json<DPayload>,
84) -> Result<Json<Value>, Error> {
85 info!( 85 info!(
86 "edit device {} ({}, {}, {})", 86 "edit device {} ({}, {}, {:?})",
87 payload.id, payload.mac, payload.broadcast_addr, payload.ip 87 payload.id, payload.mac, payload.broadcast_addr, payload.ip
88 ); 88 );
89 let ip = IpNetwork::from_str(&payload.ip)?; 89
90 let ip = if let Some(ip_s) = payload.ip {
91 Some(IpNetwork::from_str(&ip_s)?)
92 } else {
93 None
94 };
90 let mac = MacAddress::from_str(&payload.mac)?; 95 let mac = MacAddress::from_str(&payload.mac)?;
91 let times = Device::read(&payload.id)?.times; 96 let times = Device::read(&payload.id)?.times;
92 97