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

Method get_relay_gateway

chirpstack/src/api/gateway.rs:786–829  ·  view source on GitHub ↗
(
        &self,
        request: Request<api::GetRelayGatewayRequest>,
    )

Source from the content-addressed store, hash-verified

784 }
785
786 async fn get_relay_gateway(
787 &self,
788 request: Request<api::GetRelayGatewayRequest>,
789 ) -> Result<Response<api::GetRelayGatewayResponse>, Status> {
790 let req = request.get_ref();
791 let tenant_id = Uuid::from_str(&req.tenant_id).map_err(|e| e.status())?;
792 let relay_id = RelayId::from_str(&req.relay_id).map_err(|e| e.status())?;
793
794 // The tenant_id is part of the relay PK.
795 self.validator
796 .validate(
797 request.extensions(),
798 validator::ValidateGatewaysAccess::new(validator::Flag::List, tenant_id),
799 )
800 .await?;
801
802 let relay = gateway::get_relay_gateway(tenant_id, relay_id)
803 .await
804 .map_err(|e| e.status())?;
805
806 let mut resp = Response::new(api::GetRelayGatewayResponse {
807 relay_gateway: Some(api::RelayGateway {
808 tenant_id: relay.tenant_id.to_string(),
809 relay_id: relay.relay_id.to_string(),
810 name: relay.name,
811 description: relay.description,
812 stats_interval: relay.stats_interval_secs as u32,
813 region_config_id: relay.region_config_id.to_string(),
814 }),
815 created_at: Some(helpers::datetime_to_prost_timestamp(&relay.created_at)),
816 updated_at: Some(helpers::datetime_to_prost_timestamp(&relay.updated_at)),
817 last_seen_at: relay
818 .last_seen_at
819 .as_ref()
820 .map(helpers::datetime_to_prost_timestamp),
821 });
822
823 resp.metadata_mut()
824 .insert("x-log-tenant_id", req.tenant_id.parse().unwrap());
825 resp.metadata_mut()
826 .insert("x-log-relay_id", req.relay_id.parse().unwrap());
827
828 Ok(resp)
829 }
830
831 async fn update_relay_gateway(
832 &self,

Callers 1

Calls 8

get_relay_gatewayFunction · 0.85
statusMethod · 0.80
to_stringMethod · 0.80
as_refMethod · 0.80
insertMethod · 0.80
unwrapMethod · 0.80
validateMethod · 0.45

Tested by 1