summaryrefslogtreecommitdiff
path: root/novalet/lib/internal_transporter.go
diff options
context:
space:
mode:
authorMatthieu <matthieu@developershouse.xyz>2021-08-07 14:28:38 +0400
committerMatthieu <matthieu@developershouse.xyz>2021-08-07 14:28:38 +0400
commit47d8443d202ab40897c8d08e1658748c581d73e7 (patch)
treec1fc9bec21a35eadfd7b658bda9772d7690b43e0 /novalet/lib/internal_transporter.go
parentabc3b1ca58d93a448ee07cbab9ab01d88e39e25b (diff)
novalet base & golang cleanup
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
+}