Use firebase push IDs for messages

This commit is contained in:
Ken-Håvard Lieng 2017-04-20 05:32:22 +02:00
parent 0413960b85
commit 2525b06c28
16 changed files with 288 additions and 91 deletions

View file

@ -4,6 +4,8 @@ import (
"log"
"strings"
"github.com/kjk/betterguid"
"github.com/khlieng/dispatch/irc"
"github.com/khlieng/dispatch/storage"
)
@ -122,6 +124,7 @@ func (i *ircHandler) mode(msg *irc.Message) {
func (i *ircHandler) message(msg *irc.Message) {
message := Message{
ID: betterguid.New(),
Server: i.client.Host,
From: msg.Nick,
Content: msg.LastParam(),
@ -135,7 +138,8 @@ func (i *ircHandler) message(msg *irc.Message) {
}
if msg.Params[0] != "*" {
go i.session.user.LogMessage(i.client.Host, msg.Nick, msg.Params[0], msg.LastParam())
go i.session.user.LogMessage(message.ID,
i.client.Host, msg.Nick, msg.Params[0], msg.LastParam())
}
}

View file

@ -130,12 +130,12 @@ func TestHandleIRCMessage(t *testing.T) {
Params: []string{"#chan", "the message"},
})
checkResponse(t, "message", Message{
Server: "host.com",
From: "nick",
To: "#chan",
Content: "the message",
}, res)
assert.Equal(t, "message", res.Type)
msg, ok := res.Data.(Message)
assert.True(t, ok)
assert.Equal(t, "nick", msg.From)
assert.Equal(t, "#chan", msg.To)
assert.Equal(t, "the message", msg.Content)
res = dispatchMessage(&irc.Message{
Command: irc.Privmsg,
@ -143,11 +143,12 @@ func TestHandleIRCMessage(t *testing.T) {
Params: []string{"nick", "the message"},
})
checkResponse(t, "pm", Message{
Server: "host.com",
From: "someone",
Content: "the message",
}, res)
assert.Equal(t, "pm", res.Type)
msg, ok = res.Data.(Message)
assert.True(t, ok)
assert.Equal(t, "someone", msg.From)
assert.Empty(t, msg.To)
assert.Equal(t, "the message", msg.Content)
}
func TestHandleIRCQuit(t *testing.T) {

View file

@ -61,6 +61,7 @@ type Quit struct {
}
type Message struct {
ID string `json:"id"`
Server string `json:"server"`
From string `json:"from,omitempty"`
To string `json:"to,omitempty"`

View file

@ -9,6 +9,7 @@ import (
"strings"
"github.com/gorilla/websocket"
"github.com/kjk/betterguid"
"github.com/spf13/viper"
"github.com/khlieng/dispatch/irc"
@ -178,7 +179,9 @@ func (h *wsHandler) message(b []byte) {
if i, ok := h.session.getIRC(data.Server); ok {
i.Privmsg(data.To, data.Content)
go h.session.user.LogMessage(data.Server, i.GetNick(), data.To, data.Content)
go h.session.user.LogMessage(betterguid.New(),
data.Server, i.GetNick(), data.To, data.Content)
}
}