Skip to content

Commit 85c6245

Browse files
committed
add config variables for brick details
1 parent 86853c9 commit 85c6245

File tree

3 files changed

+33
-14
lines changed

3 files changed

+33
-14
lines changed

internal/orchestrator/bricks/bricks.go

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (s *Service) AppBrickInstancesList(a *app.ArduinoApp) (AppBrickInstancesRes
7878
return AppBrickInstancesResult{}, fmt.Errorf("brick not found with id %s", brickInstance.ID)
7979
}
8080

81-
variablesMap, configVariables := getBrickConfigDetails(brick, brickInstance.Variables)
81+
variablesMap, configVariables := getInstanceBrickConfigVAriableDetails(brick, brickInstance.Variables)
8282

8383
res.BrickInstances[i] = BrickInstanceListItem{
8484
ID: brick.ID,
@@ -107,7 +107,7 @@ func (s *Service) AppBrickInstanceDetails(a *app.ArduinoApp, brickID string) (Br
107107
return BrickInstance{}, fmt.Errorf("brick %s not added in the app", brickID)
108108
}
109109

110-
variables, configVariables := getBrickConfigDetails(brick, a.Descriptor.Bricks[brickIndex].Variables)
110+
variables, configVariables := getInstanceBrickConfigVAriableDetails(brick, a.Descriptor.Bricks[brickIndex].Variables)
111111

112112
modelID := a.Descriptor.Bricks[brickIndex].Model
113113
if modelID == "" {
@@ -134,7 +134,7 @@ func (s *Service) AppBrickInstanceDetails(a *app.ArduinoApp, brickID string) (Br
134134
}, nil
135135
}
136136

137-
func getBrickConfigDetails(
137+
func getInstanceBrickConfigVAriableDetails(
138138
brick *bricksindex.Brick, userVariables map[string]string,
139139
) (map[string]string, []BrickConfigVariable) {
140140
variablesMap := make(map[string]string, len(brick.Variables))
@@ -167,15 +167,6 @@ func (s *Service) BricksDetails(id string, idProvider *app.IDProvider,
167167
return BrickDetailsResult{}, ErrBrickNotFound
168168
}
169169

170-
variables := make(map[string]BrickVariable, len(brick.Variables))
171-
for _, v := range brick.Variables {
172-
variables[v.Name] = BrickVariable{
173-
DefaultValue: v.DefaultValue,
174-
Description: v.Description,
175-
Required: v.IsRequired(),
176-
}
177-
}
178-
179170
readme, err := s.staticStore.GetBrickReadmeFromID(brick.ID)
180171
if err != nil {
181172
return BrickDetailsResult{}, fmt.Errorf("cannot open docs for brick %s: %w", id, err)
@@ -200,6 +191,9 @@ func (s *Service) BricksDetails(id string, idProvider *app.IDProvider,
200191
if err != nil {
201192
return BrickDetailsResult{}, fmt.Errorf("unable to get used by apps: %w", err)
202193
}
194+
195+
variables, configVariables := getBrickConfigVariableDetails(brick)
196+
203197
return BrickDetailsResult{
204198
ID: id,
205199
Name: brick.Name,
@@ -220,9 +214,33 @@ func (s *Service) BricksDetails(id string, idProvider *app.IDProvider,
220214
Description: m.ModuleDescription,
221215
}
222216
}),
217+
ConfigVariables: configVariables,
223218
}, nil
224219
}
225220

221+
func getBrickConfigVariableDetails(
222+
brick *bricksindex.Brick) (map[string]BrickVariable, []BrickConfigVariable) {
223+
variablesMap := make(map[string]BrickVariable, len(brick.Variables))
224+
variableDetails := make([]BrickConfigVariable, 0, len(brick.Variables))
225+
226+
for _, v := range brick.Variables {
227+
variablesMap[v.Name] = BrickVariable{
228+
DefaultValue: v.DefaultValue,
229+
Description: v.Description,
230+
Required: v.IsRequired(),
231+
}
232+
233+
variableDetails = append(variableDetails, BrickConfigVariable{
234+
Name: v.Name,
235+
Value: v.DefaultValue,
236+
Description: v.Description,
237+
Required: v.IsRequired(),
238+
})
239+
}
240+
241+
return variablesMap, variableDetails
242+
}
243+
226244
func getUsedByApps(
227245
cfg config.Configuration, brickId string, idProvider *app.IDProvider) ([]AppReference, error) {
228246
var (

internal/orchestrator/bricks/bricks_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ func TestGetBrickInstanceVariableDetails(t *testing.T) {
317317

318318
for _, tt := range tests {
319319
t.Run(tt.name, func(t *testing.T) {
320-
actualVariableMap, actualConfigVariables := getBrickConfigDetails(tt.brick, tt.userVariables)
320+
actualVariableMap, actualConfigVariables := getInstanceBrickConfigVAriableDetails(tt.brick, tt.userVariables)
321321
require.Equal(t, tt.expectedVariableMap, actualVariableMap)
322322
require.Equal(t, tt.expectedConfigVariables, actualConfigVariables)
323323
})

internal/orchestrator/bricks/types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,11 @@ type BrickDetailsResult struct {
9191
Category string `json:"category"`
9292
Status string `json:"status"`
9393
RequireModel bool `json:"require_model"`
94-
Variables map[string]BrickVariable `json:"variables,omitempty"`
94+
Variables map[string]BrickVariable `json:"variables" description:"Deprecated: use config_variables instead. This field is kept for backward compatibility."`
9595
Readme string `json:"readme"`
9696
ApiDocsPath string `json:"api_docs_path"`
9797
CodeExamples []CodeExample `json:"code_examples"`
9898
UsedByApps []AppReference `json:"used_by_apps"`
9999
CompatibleModels []AIModel `json:"compatible_models"`
100+
ConfigVariables []BrickConfigVariable `json:"config_variables"`
100101
}

0 commit comments

Comments
 (0)