43 lines
939 B
Go
43 lines
939 B
Go
package main
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"github.com/nats-io/go-nats"
|
|
)
|
|
|
|
type Handler struct {
|
|
db *sql.DB
|
|
nc *nats.Conn
|
|
|
|
contactConnections map[string]chan []byte
|
|
conversationConnections map[string]chan []byte
|
|
userConnections map[string]chan []byte
|
|
memberConnections map[string]map[string]chan []byte
|
|
}
|
|
|
|
func NewHandler(db *sql.DB, nc *nats.Conn) *Handler {
|
|
contactConnections := make(map[string]chan []byte)
|
|
conversationConnections := make(map[string]chan []byte)
|
|
userConnections := make(map[string]chan []byte)
|
|
memberConnections := make(map[string]map[string]chan []byte)
|
|
|
|
h := &Handler{
|
|
db,
|
|
nc,
|
|
contactConnections,
|
|
conversationConnections,
|
|
userConnections,
|
|
memberConnections,
|
|
}
|
|
|
|
if nc != nil {
|
|
nc.Subscribe("contacts", h.ContactHandler)
|
|
nc.Subscribe("conversations", h.ConversationHandler)
|
|
nc.Subscribe("users", h.UserHandler)
|
|
nc.Subscribe("members", h.MemberHandler)
|
|
}
|
|
|
|
return h
|
|
}
|