@@ -20,25 +20,30 @@ func (c *WdaClient) GetEndpoint(endpoint string) (map[string]interface{}, error)
2020
2121 req , err := http .NewRequestWithContext (ctx , "GET" , url , nil )
2222 if err != nil {
23- return nil , fmt .Errorf ("failed to create request: %v " , err )
23+ return nil , fmt .Errorf ("failed to create request: %w " , err )
2424 }
2525
2626 resp , err := c .httpClient .Do (req )
2727 if err != nil {
28- return nil , fmt .Errorf ("failed to fetch endpoint %s: %v " , endpoint , err )
28+ return nil , fmt .Errorf ("failed to fetch endpoint %s: %w " , endpoint , err )
2929 }
3030 defer func () { _ = resp .Body .Close () }()
3131
32+ // check HTTP status code
33+ if resp .StatusCode < 200 || resp .StatusCode >= 300 {
34+ return nil , fmt .Errorf ("endpoint %s returned non-2xx status: %d" , endpoint , resp .StatusCode )
35+ }
36+
3237 // Read the response body
3338 body , err := io .ReadAll (resp .Body )
3439 if err != nil {
35- return nil , fmt .Errorf ("error reading response: %v " , err )
40+ return nil , fmt .Errorf ("error reading response: %w " , err )
3641 }
3742
3843 // Parse the JSON response
3944 var result map [string ]interface {}
4045 if err := json .Unmarshal (body , & result ); err != nil {
41- return nil , fmt .Errorf ("invalid JSON response: %v " , err )
46+ return nil , fmt .Errorf ("invalid JSON response: %w " , err )
4247 }
4348
4449 return result , nil
@@ -48,28 +53,33 @@ func (c *WdaClient) PostEndpoint(endpoint string, data interface{}) (map[string]
4853 url := fmt .Sprintf ("%s/%s" , c .baseURL , endpoint )
4954 jsonData , err := json .Marshal (data )
5055 if err != nil {
51- return nil , fmt .Errorf ("failed to marshal data: %v " , err )
56+ return nil , fmt .Errorf ("failed to marshal data: %w " , err )
5257 }
5358
5459 ctx , cancel := context .WithTimeout (context .Background (), 5 * time .Second )
5560 defer cancel ()
5661
5762 req , err := http .NewRequestWithContext (ctx , "POST" , url , bytes .NewBuffer (jsonData ))
5863 if err != nil {
59- return nil , fmt .Errorf ("failed to create request: %v " , err )
64+ return nil , fmt .Errorf ("failed to create request: %w " , err )
6065 }
6166 req .Header .Set ("Content-Type" , "application/json" )
6267
6368 resp , err := c .httpClient .Do (req )
6469 if err != nil {
65- return nil , fmt .Errorf ("failed to post to endpoint %s: %v " , endpoint , err )
70+ return nil , fmt .Errorf ("failed to post to endpoint %s: %w " , endpoint , err )
6671 }
6772
6873 defer func () { _ = resp .Body .Close () }()
6974
75+ // check HTTP status code
76+ if resp .StatusCode < 200 || resp .StatusCode >= 300 {
77+ return nil , fmt .Errorf ("endpoint %s returned non-2xx status: %d" , endpoint , resp .StatusCode )
78+ }
79+
7080 var result map [string ]interface {}
7181 if err := json .NewDecoder (resp .Body ).Decode (& result ); err != nil {
72- return nil , fmt .Errorf ("invalid JSON response: %v " , err )
82+ return nil , fmt .Errorf ("invalid JSON response: %w " , err )
7383 }
7484
7585 return result , nil
@@ -83,19 +93,24 @@ func (c *WdaClient) DeleteEndpoint(endpoint string) (map[string]interface{}, err
8393
8494 req , err := http .NewRequestWithContext (ctx , "DELETE" , url , nil )
8595 if err != nil {
86- return nil , fmt .Errorf ("failed to create request: %v " , err )
96+ return nil , fmt .Errorf ("failed to create request: %w " , err )
8797 }
8898
8999 resp , err := c .httpClient .Do (req )
90100 if err != nil {
91- return nil , fmt .Errorf ("failed to delete endpoint %s: %v " , endpoint , err )
101+ return nil , fmt .Errorf ("failed to delete endpoint %s: %w " , endpoint , err )
92102 }
93103
94104 defer func () { _ = resp .Body .Close () }()
95105
106+ // check HTTP status code
107+ if resp .StatusCode < 200 || resp .StatusCode >= 300 {
108+ return nil , fmt .Errorf ("endpoint %s returned non-2xx status: %d" , endpoint , resp .StatusCode )
109+ }
110+
96111 var result map [string ]interface {}
97112 if err := json .NewDecoder (resp .Body ).Decode (& result ); err != nil {
98- return nil , fmt .Errorf ("invalid JSON response: %v " , err )
113+ return nil , fmt .Errorf ("invalid JSON response: %w " , err )
99114 }
100115
101116 return result , nil
@@ -138,7 +153,7 @@ func (c *WdaClient) CreateSession() (string, error) {
138153 })
139154
140155 if err != nil {
141- return "" , fmt .Errorf ("failed to create session: %v " , err )
156+ return "" , fmt .Errorf ("failed to create session: %w " , err )
142157 }
143158
144159 // log.Printf("createSession response: %v", response)
@@ -178,7 +193,7 @@ func (c *WdaClient) DeleteSession(sessionId string) error {
178193 url := fmt .Sprintf ("session/%s" , sessionId )
179194 _ , err := c .DeleteEndpoint (url )
180195 if err != nil {
181- return fmt .Errorf ("failed to delete session %s: %v " , sessionId , err )
196+ return fmt .Errorf ("failed to delete session %s: %w " , sessionId , err )
182197 }
183198 return nil
184199}
0 commit comments