dispatch/server/json.go
2016-01-11 21:04:57 +01:00

139 lines
2.8 KiB
Go

package server
import (
"encoding/json"
"github.com/khlieng/dispatch/storage"
)
type WSRequest struct {
Type string `json:"type"`
Data json.RawMessage `json:"data"`
}
type WSResponse struct {
Type string `json:"type"`
Data interface{} `json:"data"`
}
type Connect struct {
Name string `json:"name"`
Server string `json:"server"`
TLS bool `json:"tls"`
Password string `json:"password"`
Nick string `json:"nick"`
Username string `json:"username"`
Realname string `json:"realname"`
}
type Nick struct {
Server string `json:"server"`
Old string `json:"old"`
New string `json:"new"`
Channels []string `json:"channels"`
}
type Join struct {
Server string `json:"server"`
User string `json:"user"`
Channels []string `json:"channels"`
}
type Part struct {
Join
Reason string `json:"reason,omitempty"`
}
type Mode struct {
Server string `json:"server"`
Channel string `json:"channel"`
User string `json:"user"`
Add string `json:"add"`
Remove string `json:"remove"`
}
type Quit struct {
Server string `json:"server"`
User string `json:"user"`
Reason string `json:"reason,omitempty"`
Channels []string `json:"channels"`
}
type Chat struct {
Server string `json:"server"`
From string `json:"from"`
To string `json:"to,omitempty"`
Message string `json:"message"`
}
type Topic struct {
Server string `json:"server"`
Channel string `json:"channel"`
Topic string `json:"topic"`
}
type Userlist struct {
Server string `json:"server"`
Channel string `json:"channel"`
Users []string `json:"users"`
}
type MOTD struct {
Server string `json:"server"`
Title string `json:"title"`
Content []string `json:"content"`
}
type Invite struct {
Server string `json:"server"`
Channel string `json:"channel"`
User string `json:"user"`
}
type Kick struct {
Server string `json:"server"`
Channel string `json:"channel"`
User string `json:"user"`
}
type Whois struct {
Server string `json:"server"`
User string `json:"user"`
}
type WhoisReply struct {
Nick string `json:"nick"`
Username string `json:"username"`
Host string `json:"host"`
Realname string `json:"realname"`
Server string `json:"server"`
Channels []string `json:"channels"`
}
type Away struct {
Server string `json:"server"`
Message string `json:"message"`
}
type SearchRequest struct {
Server string `json:"server"`
Channel string `json:"channel"`
Phrase string `json:"phrase"`
}
type SearchResult struct {
Server string `json:"server"`
Channel string `json:"channel"`
Results []storage.Message `json:"results"`
}
type ClientCert struct {
Cert []byte `json:"cert"`
Key []byte `json:"key"`
}
type Error struct {
Server string `json:"server"`
Message string `json:"message"`
}