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

Method Publish

pkg/events/cloud/cloud.go:181–212  ·  view source on GitHub ↗

Publish an event to Go Cloud.

(evs ...events.Event)

Source from the content-addressed store, hash-verified

179
180// Publish an event to Go Cloud.
181func (ps *PubSub) Publish(evs ...events.Event) {
182 logger := log.FromContext(ps.ctx)
183 for _, evt := range evs {
184 var body []byte
185 switch ps.contentType {
186 case "application/protobuf":
187 evtpb, err := events.Proto(evt)
188 if err != nil {
189 logger.WithError(err).Warn("Failed to marshal event to protobuf")
190 continue
191 }
192 body, err = proto.Marshal(evtpb)
193 if err != nil {
194 logger.WithError(err).Warn("Failed to marshal event to binary")
195 continue
196 }
197 case "application/json":
198 var err error
199 body, err = json.Marshal(evt)
200 if err != nil {
201 logger.WithError(err).Warn("Failed to marshal event to JSON")
202 continue
203 }
204 }
205 if err := ps.topic.Send(evt.Context(), &pubsub.Message{
206 Metadata: ps.getMetadata(evt),
207 Body: body,
208 }); err != nil {
209 logger.WithError(err).Warn("Failed to send event")
210 }
211 }
212}

Callers 1

TestMultiplexingFunction · 0.95

Implementers 15

mockPubSubStorepkg/console/internal/events/subscripti
routerForwarderServerpkg/packetbrokeragent/mock/pbdataplane
routerHomeNetworkServerpkg/packetbrokeragent/mock/pbdataplane
noopPubSubpkg/events/default.go
PubSubpkg/events/cloud/cloud.go
multiplexerpkg/events/mux/mux.go
ephemeralPubSubpkg/events/mux/mux_test.go
PubSubpkg/events/basic/pubsub.go
PubSubpkg/events/redis/redis.go
ApplicationServerpkg/applicationserver/applicationserve
pubSubDistributorpkg/applicationserver/distribution/pub
subscriptionSetpkg/applicationserver/distribution/sub

Calls 8

getMetadataMethod · 0.95
FromContextFunction · 0.92
ProtoFunction · 0.92
WarnMethod · 0.65
WithErrorMethod · 0.65
MarshalMethod · 0.65
SendMethod · 0.65
ContextMethod · 0.65

Tested by 1

TestMultiplexingFunction · 0.76