From 3c1d8e21d9ce5cc5dda7fb29b4476a212748d1ce Mon Sep 17 00:00:00 2001 From: ohatakky <40336622+ohatakky@users.noreply.github.com> Date: Tue, 8 Dec 2020 15:00:46 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20cancel=20statement=E3=83=AA=E3=82=AF?= =?UTF-8?q?=E3=82=A8=E3=82=B9=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0=20(#11)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- statement.go | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/statement.go b/statement.go index b17b11c..415adad 100644 --- a/statement.go +++ b/statement.go @@ -25,10 +25,11 @@ type Statements struct { } type Statement struct { - ID int - Code string - State StatementState - Output StatementOutput + ID int + Code string + State StatementState + Output StatementOutput + Started int64 } type StatementOutput struct { @@ -189,3 +190,43 @@ func (c *StatementsInsertCall) doRequest() (*http.Response, error) { return SendRequest(c.s.client, req) } + +type StatementsCancelCall struct { + s *Service + sessionID int + statementID int +} + +func (r *StatementsService) Cancel(sessionID, statementID int) *StatementsCancelCall { + c := &StatementsCancelCall{s: r.s} + c.sessionID = sessionID + c.statementID = statementID + + return c +} + +func (c *StatementsCancelCall) Do() (*Statement, error) { + res, err := c.doRequest() + if err != nil { + return nil, err + } + + statement := &Statement{} + err = DecodeResponse(statement, res) + + if err != nil { + return nil, err + } + return statement, nil +} + +func (c *StatementsCancelCall) doRequest() (*http.Response, error) { + url := c.s.BasePath + fmt.Sprintf("/sessions/%v/statements/%v/cancel", c.sessionID, c.statementID) + var body io.Reader = nil + req, err := http.NewRequest("POST", url, body) + if err != nil { + return nil, err + } + + return SendRequest(c.s.client, req) +}