func (s *networkServerRPC) Activate(ctx context.Context, activation *handler.DeviceActivationResponse) (*handler.DeviceActivationResponse, error) { if err := s.ValidateContext(ctx); err != nil { return nil, err } if err := activation.Validate(); err != nil { return nil, errors.Wrap(err, "Invalid Activation Request") } res, err := s.networkServer.HandleActivate(activation) if err != nil { return nil, err } return res, nil }
func (n *networkServer) HandleActivate(activation *pb_handler.DeviceActivationResponse) (*pb_handler.DeviceActivationResponse, error) { meta := activation.GetActivationMetadata() if meta == nil { return nil, errors.NewErrInvalidArgument("Activation", "missing ActivationMetadata") } lorawan := meta.GetLorawan() if lorawan == nil { return nil, errors.NewErrInvalidArgument("Activation", "missing LoRaWAN ActivationMetadata") } n.status.activations.Mark(1) err := n.devices.Activate(*lorawan.AppEui, *lorawan.DevEui, *lorawan.DevAddr, *lorawan.NwkSKey) if err != nil { return nil, err } return activation, nil }