Refine Telegram thread commands
This commit is contained in:
@@ -319,6 +319,22 @@ func (c *Client) ArchiveThread(ctx context.Context, threadID string) error {
|
||||
return c.call(ctx, "thread/archive", map[string]any{"threadId": threadID}, &ignored)
|
||||
}
|
||||
|
||||
func (c *Client) UnarchiveThread(ctx context.Context, threadID string) error {
|
||||
if err := c.EnsureConnected(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
var ignored json.RawMessage
|
||||
return c.call(ctx, "thread/unarchive", map[string]any{"threadId": threadID}, &ignored)
|
||||
}
|
||||
|
||||
func (c *Client) DeleteThread(ctx context.Context, threadID string) error {
|
||||
if err := c.EnsureConnected(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
var ignored json.RawMessage
|
||||
return c.call(ctx, "thread/delete", map[string]any{"threadId": threadID}, &ignored)
|
||||
}
|
||||
|
||||
func (c *Client) SetThreadName(ctx context.Context, threadID, name string) error {
|
||||
if err := c.EnsureConnected(ctx); err != nil {
|
||||
return err
|
||||
|
||||
@@ -159,6 +159,66 @@ func TestClientWebSocketUnixJSONRPC(t *testing.T) {
|
||||
return
|
||||
}
|
||||
|
||||
var archiveThread map[string]any
|
||||
if err := conn.ReadJSON(&archiveThread); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
if archiveThread["method"] != "thread/archive" {
|
||||
serverDone <- unexpectedMessage("thread/archive", archiveThread["method"])
|
||||
return
|
||||
}
|
||||
archiveParams := archiveThread["params"].(map[string]any)
|
||||
if archiveParams["threadId"] != "thr_1" {
|
||||
payload, _ := json.Marshal(archiveParams)
|
||||
serverDone <- unexpectedMessage("thread/archive params", string(payload))
|
||||
return
|
||||
}
|
||||
if err := conn.WriteJSON(map[string]any{"id": archiveThread["id"], "result": map[string]any{}}); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
|
||||
var unarchiveThread map[string]any
|
||||
if err := conn.ReadJSON(&unarchiveThread); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
if unarchiveThread["method"] != "thread/unarchive" {
|
||||
serverDone <- unexpectedMessage("thread/unarchive", unarchiveThread["method"])
|
||||
return
|
||||
}
|
||||
unarchiveParams := unarchiveThread["params"].(map[string]any)
|
||||
if unarchiveParams["threadId"] != "thr_1" {
|
||||
payload, _ := json.Marshal(unarchiveParams)
|
||||
serverDone <- unexpectedMessage("thread/unarchive params", string(payload))
|
||||
return
|
||||
}
|
||||
if err := conn.WriteJSON(map[string]any{"id": unarchiveThread["id"], "result": map[string]any{}}); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
|
||||
var deleteThread map[string]any
|
||||
if err := conn.ReadJSON(&deleteThread); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
if deleteThread["method"] != "thread/delete" {
|
||||
serverDone <- unexpectedMessage("thread/delete", deleteThread["method"])
|
||||
return
|
||||
}
|
||||
deleteParams := deleteThread["params"].(map[string]any)
|
||||
if deleteParams["threadId"] != "thr_1" {
|
||||
payload, _ := json.Marshal(deleteParams)
|
||||
serverDone <- unexpectedMessage("thread/delete params", string(payload))
|
||||
return
|
||||
}
|
||||
if err := conn.WriteJSON(map[string]any{"id": deleteThread["id"], "result": map[string]any{}}); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
|
||||
var response map[string]any
|
||||
if err := conn.ReadJSON(&response); err != nil {
|
||||
serverDone <- err
|
||||
@@ -218,6 +278,15 @@ func TestClientWebSocketUnixJSONRPC(t *testing.T) {
|
||||
if err := client.SetThreadName(ctx, "thr_1", "Short title"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := client.ArchiveThread(ctx, "thr_1"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := client.UnarchiveThread(ctx, "thr_1"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := client.DeleteThread(ctx, "thr_1"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := client.RespondServerRequest(ctx, approvalRequestID, "accept"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user