mirror of
https://github.com/hanzo-fi/stack.git
synced 2026-10-30 20:34:43 +00:00
70 lines
1.7 KiB
Go
70 lines
1.7 KiB
Go
package internal
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/formancehq/stack/libs/go-libs/publish"
|
|
"github.com/nats-io/nats.go"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
func NatsClient() *nats.Conn {
|
|
natsConn, err := nats.Connect(GetNatsAddress())
|
|
Expect(err).ToNot(HaveOccurred())
|
|
return natsConn
|
|
}
|
|
|
|
func SubscribeLedger() (func(), chan *nats.Msg) {
|
|
msgs := make(chan *nats.Msg)
|
|
subscription, err := NatsClient().Subscribe(fmt.Sprintf("%s-ledger", currentTest.id), func(msg *nats.Msg) {
|
|
msgs <- msg
|
|
})
|
|
Expect(err).ToNot(HaveOccurred())
|
|
return func() {
|
|
Expect(subscription.Unsubscribe()).To(Succeed())
|
|
}, msgs
|
|
}
|
|
|
|
func SubscribePayments() (func(), chan *nats.Msg) {
|
|
msgs := make(chan *nats.Msg)
|
|
subscription, err := NatsClient().Subscribe(fmt.Sprintf("%s-payments", currentTest.id), func(msg *nats.Msg) {
|
|
msgs <- msg
|
|
})
|
|
Expect(err).ToNot(HaveOccurred())
|
|
return func() {
|
|
Expect(subscription.Unsubscribe()).To(Succeed())
|
|
}, msgs
|
|
}
|
|
|
|
func PublishPayments(message publish.EventMessage) {
|
|
data, err := json.Marshal(message)
|
|
Expect(err).WithOffset(1).To(BeNil())
|
|
|
|
err = NatsClient().Publish(fmt.Sprintf("%s-payments", currentTest.id), data)
|
|
Expect(err).To(BeNil())
|
|
}
|
|
|
|
func Topic(service string) string {
|
|
return fmt.Sprintf("%s-%s", currentTest.id, service)
|
|
}
|
|
|
|
func CreateTopic(service string) {
|
|
js, err := NatsClient().JetStream()
|
|
Expect(err).To(Succeed())
|
|
|
|
_, err = js.AddStream(&nats.StreamConfig{
|
|
Name: Topic(service),
|
|
Subjects: []string{Topic(service)},
|
|
Retention: nats.LimitsPolicy,
|
|
})
|
|
Expect(err).To(Succeed())
|
|
}
|
|
|
|
func PublishLedger(message publish.EventMessage) {
|
|
data, err := json.Marshal(message)
|
|
Expect(err).WithOffset(1).To(BeNil())
|
|
|
|
err = NatsClient().Publish(Topic("ledger"), data)
|
|
Expect(err).To(BeNil())
|
|
}
|