mirror of
https://github.com/jwetzell/showbridge-go.git
synced 2026-04-29 06:15:31 +00:00
move context keys to common package
This commit is contained in:
7
internal/common/common.go
Normal file
7
internal/common/common.go
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package common
|
||||||
|
|
||||||
|
type contextKey string
|
||||||
|
|
||||||
|
const RouterContextKey contextKey = contextKey("router")
|
||||||
|
const SourceContextKey contextKey = contextKey("source")
|
||||||
|
const ModulesContextKey contextKey = contextKey("modules")
|
||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -41,7 +42,7 @@ func (hc *HTTPClient) Type() string {
|
|||||||
|
|
||||||
func (hc *HTTPClient) Start(ctx context.Context) error {
|
func (hc *HTTPClient) Start(ctx context.Context) error {
|
||||||
hc.logger.Debug("running")
|
hc.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("http.client unable to get router from context")
|
return errors.New("http.client unable to get router from context")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -142,7 +143,7 @@ func (hs *HTTPServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func (hs *HTTPServer) Start(ctx context.Context) error {
|
func (hs *HTTPServer) Start(ctx context.Context) error {
|
||||||
hs.logger.Debug("running")
|
hs.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("http.server unable to get router from context")
|
return errors.New("http.server unable to get router from context")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
"gitlab.com/gomidi/midi/v2"
|
"gitlab.com/gomidi/midi/v2"
|
||||||
@@ -50,7 +51,7 @@ func (mi *MIDIInput) Type() string {
|
|||||||
func (mi *MIDIInput) Start(ctx context.Context) error {
|
func (mi *MIDIInput) Start(ctx context.Context) error {
|
||||||
mi.logger.Debug("running")
|
mi.logger.Debug("running")
|
||||||
defer midi.CloseDriver()
|
defer midi.CloseDriver()
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("midi.input unable to get router from context")
|
return errors.New("midi.input unable to get router from context")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -52,7 +53,7 @@ func (mo *MIDIOutput) Type() string {
|
|||||||
func (mo *MIDIOutput) Start(ctx context.Context) error {
|
func (mo *MIDIOutput) Start(ctx context.Context) error {
|
||||||
mo.logger.Debug("running")
|
mo.logger.Debug("running")
|
||||||
defer midi.CloseDriver()
|
defer midi.CloseDriver()
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("midi.output unable to get router from context")
|
return errors.New("midi.output unable to get router from context")
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
mqtt "github.com/eclipse/paho.mqtt.golang"
|
mqtt "github.com/eclipse/paho.mqtt.golang"
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -62,7 +63,7 @@ func (mc *MQTTClient) Type() string {
|
|||||||
|
|
||||||
func (mc *MQTTClient) Start(ctx context.Context) error {
|
func (mc *MQTTClient) Start(ctx context.Context) error {
|
||||||
mc.logger.Debug("running")
|
mc.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("mqtt.client unable to get router from context")
|
return errors.New("mqtt.client unable to get router from context")
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -53,7 +54,7 @@ func (nc *NATSClient) Type() string {
|
|||||||
|
|
||||||
func (nc *NATSClient) Start(ctx context.Context) error {
|
func (nc *NATSClient) Start(ctx context.Context) error {
|
||||||
nc.logger.Debug("running")
|
nc.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("nats.client unable to get router from context")
|
return errors.New("nats.client unable to get router from context")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
"github.com/nats-io/nats-server/v2/server"
|
"github.com/nats-io/nats-server/v2/server"
|
||||||
@@ -66,7 +67,7 @@ func (ns *NATSServer) Type() string {
|
|||||||
|
|
||||||
func (ns *NATSServer) Start(ctx context.Context) error {
|
func (ns *NATSServer) Start(ctx context.Context) error {
|
||||||
ns.logger.Debug("running")
|
ns.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("nats.server unable to get router from context")
|
return errors.New("nats.server unable to get router from context")
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/jwetzell/psn-go"
|
"github.com/jwetzell/psn-go"
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
)
|
)
|
||||||
@@ -43,7 +44,7 @@ func (pc *PSNClient) Type() string {
|
|||||||
|
|
||||||
func (pc *PSNClient) Start(ctx context.Context) error {
|
func (pc *PSNClient) Start(ctx context.Context) error {
|
||||||
pc.logger.Debug("running")
|
pc.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("psn.client unable to get router from context")
|
return errors.New("psn.client unable to get router from context")
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/framer"
|
"github.com/jwetzell/showbridge-go/internal/framer"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
@@ -85,7 +86,7 @@ func (sc *SerialClient) SetupPort() error {
|
|||||||
|
|
||||||
func (sc *SerialClient) Start(ctx context.Context) error {
|
func (sc *SerialClient) Start(ctx context.Context) error {
|
||||||
sc.logger.Debug("running")
|
sc.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("serial.client unable to get router from context")
|
return errors.New("serial.client unable to get router from context")
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import (
|
|||||||
"github.com/emiago/diago/media"
|
"github.com/emiago/diago/media"
|
||||||
"github.com/emiago/sipgo"
|
"github.com/emiago/sipgo"
|
||||||
"github.com/emiago/sipgo/sip"
|
"github.com/emiago/sipgo/sip"
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -100,7 +101,7 @@ func (scs *SIPCallServer) Type() string {
|
|||||||
|
|
||||||
func (scs *SIPCallServer) Start(ctx context.Context) error {
|
func (scs *SIPCallServer) Start(ctx context.Context) error {
|
||||||
scs.logger.Debug("running")
|
scs.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("sip.call.server unable to get router from context")
|
return errors.New("sip.call.server unable to get router from context")
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/emiago/diago/media"
|
"github.com/emiago/diago/media"
|
||||||
"github.com/emiago/sipgo"
|
"github.com/emiago/sipgo"
|
||||||
"github.com/emiago/sipgo/sip"
|
"github.com/emiago/sipgo/sip"
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -113,7 +114,7 @@ func (sds *SIPDTMFServer) Type() string {
|
|||||||
|
|
||||||
func (sds *SIPDTMFServer) Start(ctx context.Context) error {
|
func (sds *SIPDTMFServer) Start(ctx context.Context) error {
|
||||||
sds.logger.Debug("running")
|
sds.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("sip.dtmf.server unable to get router from context")
|
return errors.New("sip.dtmf.server unable to get router from context")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/framer"
|
"github.com/jwetzell/showbridge-go/internal/framer"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
@@ -70,7 +71,7 @@ func (tc *TCPClient) Type() string {
|
|||||||
|
|
||||||
func (tc *TCPClient) Start(ctx context.Context) error {
|
func (tc *TCPClient) Start(ctx context.Context) error {
|
||||||
tc.logger.Debug("running")
|
tc.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("net.tcp.client unable to get router from context")
|
return errors.New("net.tcp.client unable to get router from context")
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import (
|
|||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/framer"
|
"github.com/jwetzell/showbridge-go/internal/framer"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
@@ -154,7 +155,7 @@ ClientRead:
|
|||||||
|
|
||||||
func (ts *TCPServer) Start(ctx context.Context) error {
|
func (ts *TCPServer) Start(ctx context.Context) error {
|
||||||
ts.logger.Debug("running")
|
ts.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("net.tcp.server unable to get router from context")
|
return errors.New("net.tcp.server unable to get router from context")
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
)
|
)
|
||||||
@@ -46,7 +47,7 @@ func (i *TimeInterval) Type() string {
|
|||||||
|
|
||||||
func (i *TimeInterval) Start(ctx context.Context) error {
|
func (i *TimeInterval) Start(ctx context.Context) error {
|
||||||
i.logger.Debug("running")
|
i.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("time.interval unable to get router from context")
|
return errors.New("time.interval unable to get router from context")
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
)
|
)
|
||||||
@@ -47,7 +48,7 @@ func (t *TimeTimer) Type() string {
|
|||||||
|
|
||||||
func (t *TimeTimer) Start(ctx context.Context) error {
|
func (t *TimeTimer) Start(ctx context.Context) error {
|
||||||
t.logger.Debug("running")
|
t.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("net.tcp.client unable to get router from context")
|
return errors.New("net.tcp.client unable to get router from context")
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -63,7 +64,7 @@ func (uc *UDPClient) SetupConn() error {
|
|||||||
|
|
||||||
func (uc *UDPClient) Start(ctx context.Context) error {
|
func (uc *UDPClient) Start(ctx context.Context) error {
|
||||||
uc.logger.Debug("running")
|
uc.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("net.udp.client unable to get router from context")
|
return errors.New("net.udp.client unable to get router from context")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -57,7 +58,7 @@ func (um *UDPMulticast) Type() string {
|
|||||||
|
|
||||||
func (um *UDPMulticast) Start(ctx context.Context) error {
|
func (um *UDPMulticast) Start(ctx context.Context) error {
|
||||||
um.logger.Debug("running")
|
um.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("net.udp.multicast unable to get router from context")
|
return errors.New("net.udp.multicast unable to get router from context")
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
)
|
)
|
||||||
@@ -69,7 +70,7 @@ func (us *UDPServer) Type() string {
|
|||||||
|
|
||||||
func (us *UDPServer) Start(ctx context.Context) error {
|
func (us *UDPServer) Start(ctx context.Context) error {
|
||||||
us.logger.Debug("running")
|
us.logger.Debug("running")
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("net.udp.server unable to get router from context")
|
return errors.New("net.udp.server unable to get router from context")
|
||||||
|
|||||||
@@ -12,11 +12,6 @@ import (
|
|||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
)
|
)
|
||||||
|
|
||||||
type routeContextKey string
|
|
||||||
|
|
||||||
var RouterContextKey routeContextKey = routeContextKey("router")
|
|
||||||
var SourceContextKey routeContextKey = routeContextKey("source")
|
|
||||||
|
|
||||||
type RouteError struct {
|
type RouteError struct {
|
||||||
Index int
|
Index int
|
||||||
Config config.RouteConfig
|
Config config.RouteConfig
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"slices"
|
"slices"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/processor"
|
"github.com/jwetzell/showbridge-go/internal/processor"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -54,7 +55,7 @@ func TestGoodRouteHandleInput(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inputData := "test input data"
|
inputData := "test input data"
|
||||||
payload, err := testRoute.ProcessPayload(context.WithValue(t.Context(), route.RouterContextKey, &MockRouter{}), inputData)
|
payload, err := testRoute.ProcessPayload(context.WithValue(t.Context(), common.RouterContextKey, &MockRouter{}), inputData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("route ProcessPayload returned error: %v", err)
|
t.Fatalf("route ProcessPayload returned error: %v", err)
|
||||||
}
|
}
|
||||||
@@ -84,7 +85,7 @@ func TestRouteHandleInputWithProcessorError(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inputData := "test input data"
|
inputData := "test input data"
|
||||||
_, err = testRoute.ProcessPayload(context.WithValue(t.Context(), route.RouterContextKey, &MockRouter{}), inputData)
|
_, err = testRoute.ProcessPayload(context.WithValue(t.Context(), common.RouterContextKey, &MockRouter{}), inputData)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatalf("route HandleOutput did not return error for bad processor")
|
t.Fatalf("route HandleOutput did not return error for bad processor")
|
||||||
}
|
}
|
||||||
@@ -103,7 +104,7 @@ func TestRouteHandleNilPayload(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
payload, err := testRoute.ProcessPayload(context.WithValue(t.Context(), route.RouterContextKey, &MockRouter{}), nil)
|
payload, err := testRoute.ProcessPayload(context.WithValue(t.Context(), common.RouterContextKey, &MockRouter{}), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("route ProcessPayload returned error: %v", err)
|
t.Fatalf("route ProcessPayload returned error: %v", err)
|
||||||
}
|
}
|
||||||
@@ -126,7 +127,7 @@ func TestRouteHandleNilPayloadFromProcessor(t *testing.T) {
|
|||||||
t.Fatalf("route failed to create: %v", err)
|
t.Fatalf("route failed to create: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
payload, err := testRoute.ProcessPayload(context.WithValue(t.Context(), route.RouterContextKey, &MockRouter{}), "test")
|
payload, err := testRoute.ProcessPayload(context.WithValue(t.Context(), common.RouterContextKey, &MockRouter{}), "test")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("route HandleOutput returned error for nil payload: %v", err)
|
t.Fatalf("route HandleOutput returned error for nil payload: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/module"
|
"github.com/jwetzell/showbridge-go/internal/module"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -154,7 +155,7 @@ func (r *Router) Start(ctx context.Context) {
|
|||||||
routerContext, cancel := context.WithCancel(ctx)
|
routerContext, cancel := context.WithCancel(ctx)
|
||||||
r.Context = routerContext
|
r.Context = routerContext
|
||||||
r.contextCancel = cancel
|
r.contextCancel = cancel
|
||||||
contextWithRouter := context.WithValue(routerContext, route.RouterContextKey, r)
|
contextWithRouter := context.WithValue(routerContext, common.RouterContextKey, r)
|
||||||
|
|
||||||
for moduleId := range r.ModuleInstances {
|
for moduleId := range r.ModuleInstances {
|
||||||
// TODO(jwetzell): handle module run errors
|
// TODO(jwetzell): handle module run errors
|
||||||
@@ -188,7 +189,8 @@ func (r *Router) HandleInput(ctx context.Context, sourceId string, payload any)
|
|||||||
routeWaitGroup.Go(func() {
|
routeWaitGroup.Go(func() {
|
||||||
|
|
||||||
routeFound = true
|
routeFound = true
|
||||||
routeContext := context.WithValue(spanCtx, route.SourceContextKey, sourceId)
|
routeContext := context.WithValue(spanCtx, common.SourceContextKey, sourceId)
|
||||||
|
routeContext = context.WithValue(routeContext, common.ModulesContextKey, r.ModuleInstances)
|
||||||
|
|
||||||
routeCtx, routeSpan := otel.Tracer("router").Start(routeContext, "route", trace.WithAttributes(attribute.Int("route.index", routeIndex), attribute.String("route.input", routeInstance.Input()), attribute.String("route.output", routeInstance.Output())))
|
routeCtx, routeSpan := otel.Tracer("router").Start(routeContext, "route", trace.WithAttributes(attribute.Int("route.index", routeIndex), attribute.String("route.input", routeInstance.Input()), attribute.String("route.output", routeInstance.Output())))
|
||||||
payload, err := routeInstance.ProcessPayload(routeCtx, payload)
|
payload, err := routeInstance.ProcessPayload(routeCtx, payload)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/jwetzell/showbridge-go"
|
"github.com/jwetzell/showbridge-go"
|
||||||
|
"github.com/jwetzell/showbridge-go/internal/common"
|
||||||
"github.com/jwetzell/showbridge-go/internal/config"
|
"github.com/jwetzell/showbridge-go/internal/config"
|
||||||
"github.com/jwetzell/showbridge-go/internal/module"
|
"github.com/jwetzell/showbridge-go/internal/module"
|
||||||
"github.com/jwetzell/showbridge-go/internal/route"
|
"github.com/jwetzell/showbridge-go/internal/route"
|
||||||
@@ -33,7 +34,7 @@ func (mcm *MockCounterModule) Output(context.Context, any) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (mcm *MockCounterModule) Start(ctx context.Context) error {
|
func (mcm *MockCounterModule) Start(ctx context.Context) error {
|
||||||
router, ok := ctx.Value(route.RouterContextKey).(route.RouteIO)
|
router, ok := ctx.Value(common.RouterContextKey).(route.RouteIO)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("mock.counter could not get router from context")
|
return fmt.Errorf("mock.counter could not get router from context")
|
||||||
|
|||||||
Reference in New Issue
Block a user