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

Method get_by_profile_id

chirpstack/src/api/device_profile.rs:302–428  ·  view source on GitHub ↗
(
        &self,
        request: Request<api::GetDeviceProfileByProfileIdRequest>,
    )

Source from the content-addressed store, hash-verified

300 }
301
302 async fn get_by_profile_id(
303 &self,
304 request: Request<api::GetDeviceProfileByProfileIdRequest>,
305 ) -> Result<Response<api::GetDeviceProfileByProfileIdResponse>, Status> {
306 let req = request.get_ref();
307
308 self.validator
309 .validate(
310 request.extensions(),
311 validator::ValidateDeviceProfilesAccess::new(validator::Flag::List, None, true),
312 )
313 .await?;
314
315 let dp =
316 device_profile::get_by_profile_id(req.vendor_id as i32, req.vendor_profile_id as i32)
317 .await
318 .map_err(|e| e.status())?;
319 let abp_params = dp.abp_params.clone().unwrap_or_default();
320 let class_b_params = dp.class_b_params.clone().unwrap_or_default();
321 let class_c_params = dp.class_c_params.clone().unwrap_or_default();
322 let relay_params = dp.relay_params.clone().unwrap_or_default();
323
324 let mut resp = Response::new(api::GetDeviceProfileByProfileIdResponse {
325 device_profile: Some(api::DeviceProfile {
326 id: dp.id.to_string(),
327 tenant_id: dp.tenant_id.map(|v| v.to_string()).unwrap_or_default(),
328 name: dp.name,
329 description: dp.description,
330 region: dp.region.to_proto().into(),
331 mac_version: dp.mac_version.to_proto().into(),
332 reg_params_revision: dp.reg_params_revision.to_proto().into(),
333 adr_algorithm_id: dp.adr_algorithm_id,
334 payload_codec_runtime: dp.payload_codec_runtime.to_proto().into(),
335 payload_codec_script: dp.payload_codec_script,
336 flush_queue_on_activate: dp.flush_queue_on_activate,
337 uplink_interval: dp.uplink_interval as u32,
338 device_status_req_interval: dp.device_status_req_interval as u32,
339 supports_otaa: dp.supports_otaa,
340 supports_class_b: dp.supports_class_b,
341 supports_class_c: dp.supports_class_c,
342 class_b_timeout: class_b_params.timeout as u32,
343 class_b_ping_slot_periodicity: class_b_params.ping_slot_periodicity as u32,
344 class_b_ping_slot_dr: class_b_params.ping_slot_dr as u32,
345 class_b_ping_slot_freq: class_b_params.ping_slot_freq as u32,
346 class_b_downlink_only: class_b_params.class_b_downlink_only,
347 class_c_timeout: class_c_params.timeout as u32,
348 abp_rx1_delay: abp_params.rx1_delay as u32,
349 abp_rx1_dr_offset: abp_params.rx1_dr_offset as u32,
350 abp_rx2_dr: abp_params.rx2_dr as u32,
351 abp_rx2_freq: abp_params.rx2_freq as u32,
352 tags: dp.tags.into_hashmap(),
353 measurements: dp
354 .measurements
355 .into_hashmap()
356 .iter()
357 .map(|(k, v)| {
358 (
359 k.to_string(),

Callers 1

test_device_profileFunction · 0.80

Calls 10

get_by_profile_idFunction · 0.85
statusMethod · 0.80
to_stringMethod · 0.80
to_protoMethod · 0.80
iterMethod · 0.80
insertMethod · 0.80
validateMethod · 0.45
intoMethod · 0.45
into_hashmapMethod · 0.45

Tested by 1

test_device_profileFunction · 0.64