diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-11-02 20:12:18 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-11-02 20:12:18 +0200 |
| commit | a637ea9c335c385985a23510a4174d837fb51faf (patch) | |
| tree | 211dac907d4cfcf67d4d994fd6dae7928d90e240 /internal/client/api/api.go | |
| parent | 996840205417820e3928b724b20bfed152048fda (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.go | 32 |
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()) +} |
