github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/model/websocket_request.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package model 5 6 import ( 7 "encoding/json" 8 "io" 9 10 goi18n "github.com/mattermost/go-i18n/i18n" 11 ) 12 13 // WebSocketRequest represents a request made to the server through a websocket. 14 type WebSocketRequest struct { 15 // Client-provided fields 16 Seq int64 `json:"seq"` // A counter which is incremented for every request made. 17 Action string `json:"action"` // The action to perform for a request. For example: get_statuses, user_typing. 18 Data map[string]interface{} `json:"data"` // The metadata for an action. 19 20 // Server-provided fields 21 Session Session `json:"-"` 22 T goi18n.TranslateFunc `json:"-"` 23 Locale string `json:"-"` 24 } 25 26 func (o *WebSocketRequest) ToJson() string { 27 b, _ := json.Marshal(o) 28 return string(b) 29 } 30 31 func WebSocketRequestFromJson(data io.Reader) *WebSocketRequest { 32 var o *WebSocketRequest 33 json.NewDecoder(data).Decode(&o) 34 return o 35 }