@@ -19,7 +19,7 @@ import (
19
19
"context"
20
20
"encoding/json"
21
21
"fmt"
22
- "io/ioutil "
22
+ "io"
23
23
"net/http"
24
24
"regexp"
25
25
"sort"
@@ -60,7 +60,6 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
60
60
}
61
61
62
62
url := fmt .Sprintf ("%s/%s/%s" , vidPidURL , vid , pid )
63
- retVal := []* rpc.BoardListItem {}
64
63
req , _ := http .NewRequest ("GET" , url , nil )
65
64
req .Header .Set ("Content-Type" , "application/json" )
66
65
@@ -72,39 +71,41 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
72
71
return nil , errors .Wrap (err , tr ("failed to initialize http client" ))
73
72
}
74
73
75
- if res , err := httpClient .Do (req ); err == nil {
76
- if res .StatusCode >= 400 {
77
- if res .StatusCode == 404 {
78
- return nil , ErrNotFound
79
- }
80
- return nil , errors .Errorf (tr ("the server responded with status %s" ), res .Status )
81
- }
82
-
83
- body , _ := ioutil .ReadAll (res .Body )
84
- res .Body .Close ()
85
-
86
- var dat map [string ]interface {}
87
- err = json .Unmarshal (body , & dat )
88
- if err != nil {
89
- return nil , errors .Wrap (err , tr ("error processing response from server" ))
74
+ res , err := httpClient .Do (req )
75
+ if err != nil {
76
+ return nil , errors .Wrap (err , tr ("error querying Arduino Cloud Api" ))
77
+ }
78
+ if res .StatusCode >= 400 {
79
+ if res .StatusCode == 404 {
80
+ return nil , ErrNotFound
90
81
}
82
+ return nil , errors .Errorf (tr ("the server responded with status %s" ), res .Status )
83
+ }
91
84
92
- name , nameFound := dat ["name" ].(string )
93
- fqbn , fbqnFound := dat ["fqbn" ].(string )
85
+ resp , err := io .ReadAll (res .Body )
86
+ if err != nil {
87
+ return nil , err
88
+ }
89
+ if err := res .Body .Close (); err != nil {
90
+ return nil , err
91
+ }
94
92
95
- if ! nameFound || ! fbqnFound {
96
- return nil , errors .New (tr ("wrong format in server response" ))
97
- }
93
+ var dat map [string ]interface {}
94
+ if err := json .Unmarshal (resp , & dat ); err != nil {
95
+ return nil , errors .Wrap (err , tr ("error processing response from server" ))
96
+ }
97
+ name , nameFound := dat ["name" ].(string )
98
+ fqbn , fbqnFound := dat ["fqbn" ].(string )
99
+ if ! nameFound || ! fbqnFound {
100
+ return nil , errors .New (tr ("wrong format in server response" ))
101
+ }
98
102
99
- retVal = append (retVal , & rpc.BoardListItem {
103
+ return []* rpc.BoardListItem {
104
+ {
100
105
Name : name ,
101
106
Fqbn : fqbn ,
102
- })
103
- } else {
104
- return nil , errors .Wrap (err , tr ("error querying Arduino Cloud Api" ))
105
- }
106
-
107
- return retVal , nil
107
+ },
108
+ }, nil
108
109
}
109
110
110
111
func identifyViaCloudAPI (port * discovery.Port ) ([]* rpc.BoardListItem , error ) {
0 commit comments