MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / deactivate

Method deactivate

chirpstack/src/api/device.rs:583–618  ·  view source on GitHub ↗
(
        &self,
        request: Request<api::DeactivateDeviceRequest>,
    )

Source from the content-addressed store, hash-verified

581 }
582
583 async fn deactivate(
584 &self,
585 request: Request<api::DeactivateDeviceRequest>,
586 ) -> Result<Response<()>, Status> {
587 let req = request.get_ref();
588 let dev_eui = EUI64::from_str(&req.dev_eui).map_err(|e| e.status())?;
589
590 self.validator
591 .validate(
592 request.extensions(),
593 validator::ValidateDeviceAccess::new(validator::Flag::Update, dev_eui),
594 )
595 .await?;
596
597 device_queue::flush_for_dev_eui(&dev_eui)
598 .await
599 .map_err(|e| e.status())?;
600
601 device::partial_update(
602 dev_eui,
603 &device::DeviceChangeset {
604 dev_addr: Some(None),
605 secondary_dev_addr: Some(None),
606 device_session: Some(None),
607 ..Default::default()
608 },
609 )
610 .await
611 .map_err(|e| e.status())?;
612
613 let mut resp = Response::new(());
614 resp.metadata_mut()
615 .insert("x-log-dev_eui", req.dev_eui.parse().unwrap());
616
617 Ok(resp)
618 }
619
620 async fn get_activation(
621 &self,

Callers 1

test_deviceFunction · 0.80

Calls 6

flush_for_dev_euiFunction · 0.85
statusMethod · 0.80
insertMethod · 0.80
unwrapMethod · 0.80
partial_updateFunction · 0.50
validateMethod · 0.45

Tested by 1

test_deviceFunction · 0.64