use axum::{Json, response::Response}; use serde::Deserialize; use crate::mac::MacAddress; #[derive(Deserialize)] pub struct WakeRequest { #[serde(with = "crate::utils::mac")] mac: MacAddress, } pub async fn main(Json(req): Json) -> Result, Response> { println!("Waking {}", req.mac); req.mac.wake().await.map(|_| Json(true)).map_err(|err| { Response::builder() .status(500) .body(err.to_string()) // unwrap is safe since this will always be a valid respose .unwrap() }) }