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

Method remove_device

chirpstack/src/api/multicast.rs:310–338  ·  view source on GitHub ↗
(
        &self,
        request: Request<api::RemoveDeviceFromMulticastGroupRequest>,
    )

Source from the content-addressed store, hash-verified

308 }
309
310 async fn remove_device(
311 &self,
312 request: Request<api::RemoveDeviceFromMulticastGroupRequest>,
313 ) -> Result<Response<()>, Status> {
314 let req = request.get_ref();
315 let mg_id = Uuid::from_str(&req.multicast_group_id).map_err(|e| e.status())?;
316 let dev_eui = EUI64::from_str(&req.dev_eui).map_err(|e| e.status())?;
317
318 self.validator
319 .validate(
320 request.extensions(),
321 validator::ValidateMulticastGroupAccess::new(validator::Flag::Update, mg_id),
322 )
323 .await?;
324
325 multicast::remove_device(&mg_id, &dev_eui)
326 .await
327 .map_err(|e| e.status())?;
328
329 let mut resp = Response::new(());
330 resp.metadata_mut().insert(
331 "x-log-multicast_group_id",
332 req.multicast_group_id.parse().unwrap(),
333 );
334 resp.metadata_mut()
335 .insert("x-log-dev_eui", req.dev_eui.parse().unwrap());
336
337 Ok(resp)
338 }
339
340 async fn add_gateway(
341 &self,

Callers 1

test_multicast_groupFunction · 0.45

Calls 5

statusMethod · 0.80
insertMethod · 0.80
unwrapMethod · 0.80
remove_deviceFunction · 0.50
validateMethod · 0.45

Tested by 1

test_multicast_groupFunction · 0.36