| 273 | } |
| 274 | |
| 275 | pub async fn remove_device(relay_dev_eui: EUI64, device_dev_eui: EUI64) -> Result<(), Error> { |
| 276 | let ra = diesel::delete( |
| 277 | relay_device::dsl::relay_device |
| 278 | .filter(relay_device::relay_dev_eui.eq(&relay_dev_eui)) |
| 279 | .filter(relay_device::dev_eui.eq(&device_dev_eui)), |
| 280 | ) |
| 281 | .execute(&mut get_async_db_conn().await?) |
| 282 | .await?; |
| 283 | if ra == 0 { |
| 284 | return Err(Error::NotFound(format!( |
| 285 | "relay_dev_eui: {}, device_dev_eui: {}", |
| 286 | relay_dev_eui, device_dev_eui |
| 287 | ))); |
| 288 | } |
| 289 | |
| 290 | info!(relay_dev_eui = %relay_dev_eui, device_dev_eui = %device_dev_eui, "Device removed from relay"); |
| 291 | |
| 292 | Ok(()) |
| 293 | } |
| 294 | |
| 295 | #[cfg(test)] |
| 296 | pub mod test { |