This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
|
||||
use actix_web::{get, post, web, HttpResponse, Responder};
|
||||
use actix_web::{get, post, put, web, HttpResponse, Responder};
|
||||
use log::{error, info};
|
||||
use sqlx::types::mac_address::MacAddress;
|
||||
|
||||
use crate::{schemas::{AppState, TelemetryMessageFromDevice, ValueMessageFromDevice}, util::parse_mac_address};
|
||||
use crate::{schemas::{AppState, DeviceMetadata, TelemetryMessageFromDevice, ValueMessageFromDevice}, util::parse_mac_address};
|
||||
|
||||
#[post("/telemetry/{device_id}")]
|
||||
async fn receive_telemetry(
|
||||
@@ -110,4 +110,25 @@ async fn get_devices(data: web::Data<AppState>) -> impl Responder {
|
||||
}
|
||||
};
|
||||
HttpResponse::Ok().json(devices)
|
||||
}
|
||||
}
|
||||
|
||||
#[put("/device/{device_id}/display_name")]
|
||||
async fn set_display_name(data: web::Data<AppState>, device_id: web::Path<String>, device_data: web::Json<DeviceMetadata>) -> impl Responder {
|
||||
info!("PUT - device/{device_id} - Display Name", );
|
||||
let display_name = device_data.0.display_name;
|
||||
let db = &data.db;
|
||||
let Ok(mac_converted) = parse_mac_address(&device_id) else {
|
||||
error!("Failed to convert mac address");
|
||||
return HttpResponse::InternalServerError().finish();
|
||||
};
|
||||
let mac_converted = MacAddress::from(mac_converted);
|
||||
match db.update_display_name(&mac_converted, &display_name).await {
|
||||
Ok(_) => HttpResponse::Ok().finish(),
|
||||
Err(_) => {
|
||||
error!("Failed to update/set displayName for device");
|
||||
HttpResponse::InternalServerError().finish()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user