summaryrefslogtreecommitdiffstats
path: root/model/websocket_message.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/websocket_message.go')
-rw-r--r--model/websocket_message.go44
1 files changed, 37 insertions, 7 deletions
diff --git a/model/websocket_message.go b/model/websocket_message.go
index 9bce1e825..c7ab04857 100644
--- a/model/websocket_message.go
+++ b/model/websocket_message.go
@@ -31,6 +31,8 @@ const (
type WebSocketMessage interface {
ToJson() string
IsValid() bool
+ DoPreComputeJson()
+ GetPreComputeJson() []byte
}
type WebsocketBroadcast struct {
@@ -41,9 +43,10 @@ type WebsocketBroadcast struct {
}
type WebSocketEvent struct {
- Event string `json:"event"`
- Data map[string]interface{} `json:"data"`
- Broadcast *WebsocketBroadcast `json:"broadcast"`
+ Event string `json:"event"`
+ Data map[string]interface{} `json:"data"`
+ Broadcast *WebsocketBroadcast `json:"broadcast"`
+ PreComputeJson []byte `json:"-"`
}
func (m *WebSocketEvent) Add(key string, value interface{}) {
@@ -59,6 +62,19 @@ func (o *WebSocketEvent) IsValid() bool {
return o.Event != ""
}
+func (o *WebSocketEvent) DoPreComputeJson() {
+ b, err := json.Marshal(o)
+ if err != nil {
+ o.PreComputeJson = []byte("")
+ } else {
+ o.PreComputeJson = b
+ }
+}
+
+func (o *WebSocketEvent) GetPreComputeJson() []byte {
+ return o.PreComputeJson
+}
+
func (o *WebSocketEvent) ToJson() string {
b, err := json.Marshal(o)
if err != nil {
@@ -80,10 +96,11 @@ func WebSocketEventFromJson(data io.Reader) *WebSocketEvent {
}
type WebSocketResponse struct {
- Status string `json:"status"`
- SeqReply int64 `json:"seq_reply,omitempty"`
- Data map[string]interface{} `json:"data,omitempty"`
- Error *AppError `json:"error,omitempty"`
+ Status string `json:"status"`
+ SeqReply int64 `json:"seq_reply,omitempty"`
+ Data map[string]interface{} `json:"data,omitempty"`
+ Error *AppError `json:"error,omitempty"`
+ PreComputeJson []byte `json:"-"`
}
func (m *WebSocketResponse) Add(key string, value interface{}) {
@@ -111,6 +128,19 @@ func (o *WebSocketResponse) ToJson() string {
}
}
+func (o *WebSocketResponse) DoPreComputeJson() {
+ b, err := json.Marshal(o)
+ if err != nil {
+ o.PreComputeJson = []byte("")
+ } else {
+ o.PreComputeJson = b
+ }
+}
+
+func (o *WebSocketResponse) GetPreComputeJson() []byte {
+ return o.PreComputeJson
+}
+
func WebSocketResponseFromJson(data io.Reader) *WebSocketResponse {
decoder := json.NewDecoder(data)
var o WebSocketResponse