| 585 | } |
| 586 | |
| 587 | pub async fn update(d: Device) -> Result<Device, Error> { |
| 588 | d.validate()?; |
| 589 | |
| 590 | let d: Device = diesel::update(device::dsl::device.find(&d.dev_eui)) |
| 591 | .set(( |
| 592 | device::updated_at.eq(Utc::now()), |
| 593 | device::application_id.eq(&d.application_id), |
| 594 | device::device_profile_id.eq(&d.device_profile_id), |
| 595 | device::name.eq(&d.name), |
| 596 | device::description.eq(&d.description), |
| 597 | device::skip_fcnt_check.eq(&d.skip_fcnt_check), |
| 598 | device::is_disabled.eq(&d.is_disabled), |
| 599 | device::tags.eq(&d.tags), |
| 600 | device::variables.eq(&d.variables), |
| 601 | device::join_eui.eq(&d.join_eui), |
| 602 | device::app_layer_params.eq(&d.app_layer_params), |
| 603 | )) |
| 604 | .get_result(&mut get_async_db_conn().await?) |
| 605 | .await |
| 606 | .map_err(|e| Error::from_diesel(e, d.dev_eui.to_string()))?; |
| 607 | info!(dev_eui = %d.dev_eui, "Device updated"); |
| 608 | Ok(d) |
| 609 | } |
| 610 | |
| 611 | pub async fn partial_update(dev_eui: EUI64, d: &DeviceChangeset) -> Result<Device, Error> { |
| 612 | let d = diesel::update(device::dsl::device.find(&dev_eui)) |