Use firebase push IDs for messages
This commit is contained in:
parent
0413960b85
commit
2525b06c28
16 changed files with 288 additions and 91 deletions
|
@ -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())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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"`
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue