summaryrefslogtreecommitdiff
path: root/internal/client/api/api.go
blob: 56cf05428893970c18247773114ee93264b464c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package api

import (
	"log"

	tea "github.com/charmbracelet/bubbletea"

	"github.com/kyren223/eko/internal/client/gateway"
	"github.com/kyren223/eko/internal/packet"
	"github.com/kyren223/eko/pkg/assert"
)

func SendMessage(message string) tea.Cmd {
	return func() tea.Msg {
		log.Println("request SendMessage sent")
		request := packet.SendMessage{Content: message}
		responsePayload, ok := <-gateway.Send(&request)
		if !ok {
			log.Println("request timeout")
			return ""
		}
		log.Println("request SendMessage received response")

		response := responsePayload.(*packet.ErrorMessage)
		assert.Assert(ok, "server should return an ErrorMessage response for a SendMessage request")
		assert.Assert(response.IsOk(), "server should always return an OK if we didn't mess up")
		return ""
	}
}