summaryrefslogtreecommitdiff
path: root/internal/client/api/api.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-02 20:12:18 +0200
committerKyren223 <Kyren223@proton.me>2024-11-02 20:12:18 +0200
commita637ea9c335c385985a23510a4174d837fb51faf (patch)
tree211dac907d4cfcf67d4d994fd6dae7928d90e240 /internal/client/api/api.go
parent996840205417820e3928b724b20bfed152048fda (diff)
feat: client can now send messages and the server saves thme in DB
Diffstat (limited to 'internal/client/api/api.go')
-rw-r--r--internal/client/api/api.go32
1 files changed, 31 insertions, 1 deletions
diff --git a/internal/client/api/api.go b/internal/client/api/api.go
index 9cfa1d4..d52b727 100644
--- a/internal/client/api/api.go
+++ b/internal/client/api/api.go
@@ -11,6 +11,7 @@ import (
"github.com/kyren223/eko/internal/data"
"github.com/kyren223/eko/internal/packet"
"github.com/kyren223/eko/pkg/assert"
+ "github.com/kyren223/eko/pkg/snowflake"
)
type AppendMessage data.Message
@@ -18,7 +19,11 @@ type AppendMessage data.Message
func SendMessage(message string) tea.Cmd {
return func() tea.Msg {
log.Println("request SendMessage sent")
- request := packet.SendMessage{Content: message}
+ frequencyId := snowflake.ID(1852771536100921344)
+ request := packet.SendMessage{
+ Content: message,
+ FrequencyID: &frequencyId,
+ }
response, ok := <-gateway.Send(&request)
if !ok {
log.Println()
@@ -36,3 +41,28 @@ func SendMessage(message string) tea.Cmd {
return fmt.Errorf("received invalid response from server: %v", response.Type())
}
}
+
+func GetMessages() tea.Msg {
+ log.Println("request GetMessages sent")
+ frequencyId := snowflake.ID(1852771536100921344)
+ request := packet.GetMessagesRange{
+ FrequencyID: &frequencyId,
+ ReceiverID: nil,
+ From: nil,
+ To: nil,
+ }
+ response, ok := <-gateway.Send(&request)
+ if !ok {
+ log.Println()
+ return errors.New("request timeout")
+ }
+ log.Println("request GetMessages received response")
+
+ switch response := response.(type) {
+ case *packet.ErrorMessage:
+ return errors.New(response.Error)
+ case *packet.Messages:
+ return response
+ }
+ return fmt.Errorf("received invalid response from server: %v", response.Type())
+}