From 607c0cbf6f31bceae98f2ae99b4014a62e169675 Mon Sep 17 00:00:00 2001 From: whitesoil Date: Wed, 18 Aug 2021 17:28:40 +0900 Subject: [PATCH 1/2] feat: post action to sessions --- pagecall/client.go | 25 +++++++++++++++++++++++++ pagecall/pagecall_test.go | 4 ++++ 2 files changed, 29 insertions(+) diff --git a/pagecall/client.go b/pagecall/client.go index d236294..2e5d78e 100644 --- a/pagecall/client.go +++ b/pagecall/client.go @@ -1,6 +1,8 @@ package pagecall import ( + "bytes" + "encoding/json" "errors" "fmt" "io" @@ -73,6 +75,11 @@ type PageCallClient interface { Terminate the room. */ TerminateRoom(roomID string) (*room, error) + + /* + Using the post action to sessions feature, the according script can be executed within the connected session client. + */ + PostActionToSessions(sessionIDs []string, script string) error } type pageCallClient struct { @@ -121,3 +128,21 @@ func (p pageCallClient) request(method string, path string, payload io.Reader) ( func (p pageCallClient) BuildURLToJoinRoom(roomID string, accessToken string) string { return fmt.Sprintf("%s/%s?access_token=%s", AppDomain, roomID, accessToken) } + +func (p pageCallClient) PostActionToSessions(sessionIDs []string, script string) error { + reqBody := make(map[string]interface{}) + reqBody["type"] = "meet" + reqBody["session_ids"] = sessionIDs + reqBody["script"] = script + + ubytes, _ := json.Marshal(reqBody) + payload := bytes.NewBuffer(ubytes) + + _, err := p.request("POST", "/post_action_to_sessions", payload) + + if err != nil { + return err + } + + return nil +} diff --git a/pagecall/pagecall_test.go b/pagecall/pagecall_test.go index ae86282..416d4a9 100644 --- a/pagecall/pagecall_test.go +++ b/pagecall/pagecall_test.go @@ -69,6 +69,10 @@ func TestPageCallSDK(t *testing.T) { assert.NoError(t, err) + err = client.PostActionToSessions([]string{}, "console.log(\"Hello, World!\")") + + assert.NoError(t, err) + terminatedRoom, err := client.TerminateRoom(room.ID) assert.NoError(t, err) From 2ab1b7b66e04d58da48d1b07a83ebd44c95b8299 Mon Sep 17 00:00:00 2001 From: whitesoil Date: Wed, 18 Aug 2021 17:37:33 +0900 Subject: [PATCH 2/2] fix: request type of api's body --- pagecall/client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pagecall/client.go b/pagecall/client.go index 2e5d78e..cbca162 100644 --- a/pagecall/client.go +++ b/pagecall/client.go @@ -131,7 +131,7 @@ func (p pageCallClient) BuildURLToJoinRoom(roomID string, accessToken string) st func (p pageCallClient) PostActionToSessions(sessionIDs []string, script string) error { reqBody := make(map[string]interface{}) - reqBody["type"] = "meet" + reqBody["type"] = "run_script" reqBody["session_ids"] = sessionIDs reqBody["script"] = script