@@ -130,7 +130,7 @@ func identifyViaCloudAPI(ctx context.Context, props *properties.Map, settings *c
130
130
}
131
131
132
132
var (
133
- vidPidURL = "https://builder .arduino.cc/v3/ boards/byVidPid "
133
+ vidPidURL = "https://api2 .arduino.cc/boards/v1/boards "
134
134
validVidPid = regexp .MustCompile (`0[xX][a-fA-F\d]{4}` )
135
135
)
136
136
@@ -169,7 +169,7 @@ func apiByVidPid(ctx context.Context, vid, pid string, settings *configuration.S
169
169
return nil , errors .New (i18n .Tr ("Invalid pid value: '%s'" , pid ))
170
170
}
171
171
172
- url := fmt .Sprintf ("%s/%s/ %s" , vidPidURL , vid , pid )
172
+ url := fmt .Sprintf ("%s?vid-pid=%s- %s" , vidPidURL , vid , pid )
173
173
req , _ := http .NewRequest ("GET" , url , nil )
174
174
req .Header .Set ("Content-Type" , "application/json" )
175
175
@@ -198,20 +198,23 @@ func apiByVidPid(ctx context.Context, vid, pid string, settings *configuration.S
198
198
return nil , err
199
199
}
200
200
201
- var dat map [string ]interface {}
201
+ type boardsResponse struct {
202
+ Items []struct {
203
+ Name string `json:"name"`
204
+ FQBN string `json:"fqbn"`
205
+ } `json:"items"`
206
+ }
207
+ var dat boardsResponse
202
208
if err := json .Unmarshal (resp , & dat ); err != nil {
203
209
return nil , fmt .Errorf ("%s: %w" , i18n .Tr ("error processing response from server" ), err )
204
210
}
205
- name , nameFound := dat ["name" ].(string )
206
- fqbn , fbqnFound := dat ["fqbn" ].(string )
207
- if ! nameFound || ! fbqnFound {
208
- return nil , errors .New (i18n .Tr ("wrong format in server response" ))
209
- }
210
211
211
- return []* rpc.BoardListItem {
212
- {
213
- Name : name ,
214
- Fqbn : fqbn ,
215
- },
216
- }, nil
212
+ response := make ([]* rpc.BoardListItem , len (dat .Items ))
213
+ for i , v := range dat .Items {
214
+ if v .Name == "" || v .FQBN == "" {
215
+ return nil , errors .New (i18n .Tr ("wrong format in server response" ))
216
+ }
217
+ response [i ] = & rpc.BoardListItem {Name : v .Name , Fqbn : v .FQBN }
218
+ }
219
+ return response , nil
217
220
}
0 commit comments