MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / listNetworks

Method listNetworks

pkg/packetbrokeragent/grpc_pba.go:495–539  ·  view source on GitHub ↗
(ctx context.Context, req func() ([]*packetbroker.NetworkOrTenant, uint32, error))

Source from the content-addressed store, hash-verified

493}
494
495func (s *pbaServer) listNetworks(ctx context.Context, req func() ([]*packetbroker.NetworkOrTenant, uint32, error)) (*ttnpb.PacketBrokerNetworks, error) {
496 if err := rights.RequireIsAdmin(ctx); err != nil {
497 return nil, err
498 }
499
500 networks, total, err := req()
501 if err != nil {
502 return nil, err
503 }
504 res := &ttnpb.PacketBrokerNetworks{
505 Networks: make([]*ttnpb.PacketBrokerNetwork, 0, len(networks)),
506 }
507 for _, n := range networks {
508 var (
509 id *ttnpb.PacketBrokerNetworkIdentifier
510 network interface {
511 GetName() string
512 GetDevAddrBlocks() []*packetbroker.DevAddrBlock
513 GetAdministrativeContact() *packetbroker.ContactInfo
514 GetTechnicalContact() *packetbroker.ContactInfo
515 }
516 )
517 switch member := n.GetValue().(type) {
518 case *packetbroker.NetworkOrTenant_Network:
519 id = &ttnpb.PacketBrokerNetworkIdentifier{
520 NetId: member.Network.GetNetId(),
521 }
522 network = member.Network
523 case *packetbroker.NetworkOrTenant_Tenant:
524 id = &ttnpb.PacketBrokerNetworkIdentifier{
525 NetId: member.Tenant.GetNetId(),
526 TenantId: member.Tenant.GetTenantId(),
527 }
528 network = member.Tenant
529 }
530 res.Networks = append(res.Networks, &ttnpb.PacketBrokerNetwork{
531 Id: id,
532 Name: network.GetName(),
533 DevAddrBlocks: fromPBDevAddrBlocks(network.GetDevAddrBlocks()),
534 ContactInfo: fromPBContactInfo(network.GetAdministrativeContact(), network.GetTechnicalContact()),
535 })
536 }
537 grpc.SetHeader(ctx, metadata.Pairs("x-total-count", strconv.FormatInt(int64(total), 10)))
538 return res, nil
539}
540
541func (s *pbaServer) ListNetworks(ctx context.Context, req *ttnpb.ListPacketBrokerNetworksRequest) (*ttnpb.PacketBrokerNetworks, error) {
542 page := req.Page

Callers 3

ListNetworksMethod · 0.95
ListHomeNetworksMethod · 0.95
packet-broker.jsFile · 0.45

Calls 11

RequireIsAdminFunction · 0.92
fromPBDevAddrBlocksFunction · 0.85
fromPBContactInfoFunction · 0.85
GetDevAddrBlocksMethod · 0.80
GetValueMethod · 0.45
GetNetIdMethod · 0.45
GetTenantIdMethod · 0.45
GetNameMethod · 0.45
GetTechnicalContactMethod · 0.45
SetHeaderMethod · 0.45

Tested by

no test coverage detected