diff options
| author | Mistivia <i@mistivia.com> | 2025-11-02 15:27:18 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-11-02 15:27:18 +0800 |
| commit | e9c24f4af7ed56760f6db7941827d09f6db9020b (patch) | |
| tree | 62128c43b883ce5e3148113350978755779bb5de /teleirc/matterbridge/vendor/github.com/mrexodia/wray/response.go | |
| parent | 58d5e7cfda4781d8a57ec52aefd02983835c301a (diff) | |
add matterbridge
Diffstat (limited to 'teleirc/matterbridge/vendor/github.com/mrexodia/wray/response.go')
| -rw-r--r-- | teleirc/matterbridge/vendor/github.com/mrexodia/wray/response.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/teleirc/matterbridge/vendor/github.com/mrexodia/wray/response.go b/teleirc/matterbridge/vendor/github.com/mrexodia/wray/response.go new file mode 100644 index 0000000..e9815c3 --- /dev/null +++ b/teleirc/matterbridge/vendor/github.com/mrexodia/wray/response.go @@ -0,0 +1,61 @@ +package wray + +type Response struct { + id string + channel string + successful bool + clientId string + supportedConnectionTypes []string + messages []Message + error error +} + +type Message struct { + Channel string + Id string + Data map[string]interface{} +} + +func newResponse(data []interface{}) Response { + headerData := data[0].(map[string]interface{}) + messagesData := data[1.:] + messages := parseMessages(messagesData) + var id string + if headerData["id"] != nil { + id = headerData["id"].(string) + } + supportedConnectionTypes := []string{} + if headerData["supportedConnectionTypes"] != nil { + d := headerData["supportedConnectionTypes"].([]interface{}) + for _, sct := range(d) { + supportedConnectionTypes = append(supportedConnectionTypes, sct.(string)) + } + } + var clientId string + if headerData["clientId"] != nil { + clientId = headerData["clientId"].(string) + } + return Response{id: id, + clientId: clientId, + channel: headerData["channel"].(string), + successful: headerData["successful"].(bool), + messages: messages, + supportedConnectionTypes: supportedConnectionTypes} +} + +func parseMessages(data []interface{}) []Message { + messages := []Message{} + for _, messageData := range(data) { + m := messageData.(map[string]interface{}) + var id string + if m["id"] != nil { + id = m["id"].(string) + } + message := Message{Channel: m["channel"].(string), + Id: id, + Data: m["data"].(map[string]interface{})} + messages = append(messages, message) + } + return messages +} + |
