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

Method GetHomeNetwork

pkg/joinserver/joinserver.go:819–858  ·  view source on GitHub ↗

GetHomeNetwork returns the home network of an end device.

(ctx context.Context, joinEUI, devEUI types.EUI64, authorizer Authorizer)

Source from the content-addressed store, hash-verified

817
818// GetHomeNetwork returns the home network of an end device.
819func (js *JoinServer) GetHomeNetwork(ctx context.Context, joinEUI, devEUI types.EUI64, authorizer Authorizer) (*EndDeviceHomeNetwork, error) {
820 if err := authorizer.RequireAuthorized(ctx); err != nil {
821 return nil, err
822 }
823
824 dev, err := js.devices.GetByEUI(ctx, joinEUI, devEUI,
825 []string{
826 "net_id",
827 "network_server_address",
828 },
829 )
830 if err != nil {
831 return nil, errRegistryOperation.WithCause(err)
832 }
833 ctx = dev.Context
834 if entityAuth, ok := authorizer.(EntityAuthorizer); ok {
835 if err := entityAuth.RequireEntityContext(ctx); err != nil {
836 return nil, err
837 }
838 }
839 netID := dev.NetId
840
841 if netID == nil {
842 sets, err := js.applicationActivationSettings.GetByID(ctx, dev.Ids.ApplicationIds, []string{
843 "home_net_id",
844 })
845 if err != nil {
846 if !errors.IsNotFound(err) {
847 return nil, errGetApplicationActivationSettings.WithCause(err)
848 }
849 return nil, nil
850 }
851 netID = sets.HomeNetId
852 }
853 // TODO: Return NSID (https://github.com/TheThingsNetwork/lorawan-stack/issues/4741).
854 return &EndDeviceHomeNetwork{
855 NetID: types.MustNetID(netID),
856 NetworkServerAddress: dev.NetworkServerAddress,
857 }, nil
858}

Callers

nothing calls this directly

Calls 7

IsNotFoundFunction · 0.92
MustNetIDFunction · 0.92
RequireAuthorizedMethod · 0.65
GetByEUIMethod · 0.65
RequireEntityContextMethod · 0.65
GetByIDMethod · 0.65
WithCauseMethod · 0.45

Tested by

no test coverage detected