summaryrefslogtreecommitdiff
path: root/novalet/lib/internal_transporter.go
diff options
context:
space:
mode:
Diffstat (limited to 'novalet/lib/internal_transporter.go')
-rw-r--r--novalet/lib/internal_transporter.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/novalet/lib/internal_transporter.go b/novalet/lib/internal_transporter.go
new file mode 100644
index 0000000..dc8a169
--- /dev/null
+++ b/novalet/lib/internal_transporter.go
@@ -0,0 +1,37 @@
+package lib
+
+import (
+ "github.com/discordnova/nova/common/gateway"
+ "github.com/rs/zerolog/log"
+)
+
+type InternalTransporter struct {
+ pullChannel chan []byte
+ pushChannel chan gateway.PushData
+}
+
+// NewRabbitMqTransporter creates a rabbitmq transporter using a given url
+func NewInternalTransporter(url string) (gateway.Transporter, error) {
+ log.Info().Msg("using the memory transporter")
+
+ pullChannel, pushChannel := make(chan []byte), make(chan gateway.PushData)
+
+ go func() {
+ for {
+ // TODO(matthieu): Implement push channel for the internal transporter.
+ <-pushChannel
+ }
+ }()
+
+ return &InternalTransporter{
+ pullChannel: pullChannel,
+ pushChannel: pushChannel,
+ }, nil
+}
+
+func (t InternalTransporter) PushChannel() chan gateway.PushData {
+ return t.pushChannel
+}
+func (t InternalTransporter) PullChannel() chan []byte {
+ return t.pullChannel
+}