@@ -71,7 +71,7 @@ func (s *Service) List() (BrickListResult, error) {
7171}
7272
7373func (s * Service ) AppBrickInstancesList (a * app.ArduinoApp ) (AppBrickInstancesResult , error ) {
74- res := AppBrickInstancesResult {BrickInstances : make ([]BrickInstanceListItem , len (a .Descriptor .Bricks ))}
74+ res := AppBrickInstancesResult {BrickInstances : make ([]BrickInstance , len (a .Descriptor .Bricks ))}
7575 for i , brickInstance := range a .Descriptor .Bricks {
7676 brick , found := s .bricksIndex .FindBrickByID (brickInstance .ID )
7777 if ! found {
@@ -80,16 +80,23 @@ func (s *Service) AppBrickInstancesList(a *app.ArduinoApp) (AppBrickInstancesRes
8080
8181 variablesMap , configVariables := getInstanceBrickConfigVariableDetails (brick , brickInstance .Variables )
8282
83- res .BrickInstances [i ] = BrickInstanceListItem {
83+ res .BrickInstances [i ] = BrickInstance {
8484 ID : brick .ID ,
8585 Name : brick .Name ,
8686 Author : "Arduino" , // TODO: for now we only support our bricks
8787 Category : brick .Category ,
8888 Status : "installed" ,
8989 RequireModel : brick .RequireModel ,
90- ModelID : brickInstance . Model , // TODO: in case is not set by the user, should we return the default model?
91- Variables : variablesMap , // TODO: do we want to show also the default value of not explicitly set variables?
90+ ModelID : getSelectedModelOrDefault ( brickInstance , brick ),
91+ Variables : variablesMap , // TODO: do we want to show also the default value of not explicitly set variables?
9292 ConfigVariables : configVariables ,
93+ CompatibleModels : f .Map (s .modelsIndex .GetModelsByBrick (brick .ID ), func (m modelsindex.AIModel ) AIModel {
94+ return AIModel {
95+ ID : m .ID ,
96+ Name : m .Name ,
97+ Description : m .ModuleDescription ,
98+ }
99+ }),
93100 }
94101
95102 }
@@ -109,11 +116,6 @@ func (s *Service) AppBrickInstanceDetails(a *app.ArduinoApp, brickID string) (Br
109116
110117 variables , configVariables := getInstanceBrickConfigVariableDetails (brick , a .Descriptor .Bricks [brickIndex ].Variables )
111118
112- modelID := a .Descriptor .Bricks [brickIndex ].Model
113- if modelID == "" {
114- modelID = brick .ModelName
115- }
116-
117119 return BrickInstance {
118120 ID : brickID ,
119121 Name : brick .Name ,
@@ -123,7 +125,7 @@ func (s *Service) AppBrickInstanceDetails(a *app.ArduinoApp, brickID string) (Br
123125 RequireModel : brick .RequireModel ,
124126 Variables : variables ,
125127 ConfigVariables : configVariables ,
126- ModelID : modelID ,
128+ ModelID : getSelectedModelOrDefault ( a . Descriptor . Bricks [ brickIndex ], brick ) ,
127129 CompatibleModels : f .Map (s .modelsIndex .GetModelsByBrick (brick .ID ), func (m modelsindex.AIModel ) AIModel {
128130 return AIModel {
129131 ID : m .ID ,
@@ -134,6 +136,16 @@ func (s *Service) AppBrickInstanceDetails(a *app.ArduinoApp, brickID string) (Br
134136 }, nil
135137}
136138
139+ func getSelectedModelOrDefault (appBrick app.Brick , brickIndex * bricksindex.Brick ) string {
140+ if appBrick .Model != "" {
141+ return appBrick .Model
142+ }
143+ if brickIndex == nil {
144+ return ""
145+ }
146+ return brickIndex .ModelName
147+ }
148+
137149func getInstanceBrickConfigVariableDetails (
138150 brick * bricksindex.Brick , userVariables map [string ]string ,
139151) (map [string ]string , []BrickConfigVariable ) {
0 commit comments