Skip to content

Commit f0f9030

Browse files
committed
brick - add require on list and details
1 parent 3d8b8ea commit f0f9030

File tree

3 files changed

+32
-23
lines changed

3 files changed

+32
-23
lines changed

internal/orchestrator/bricks/bricks.go

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,16 @@ func (s *Service) List() (BrickListResult, error) {
5858
res := BrickListResult{Bricks: make([]BrickListItem, len(s.bricksIndex.Bricks))}
5959
for i, brick := range s.bricksIndex.Bricks {
6060
res.Bricks[i] = BrickListItem{
61-
ID: brick.ID,
62-
Name: brick.Name,
63-
Author: "Arduino", // TODO: for now we only support our bricks
64-
Description: brick.Description,
65-
Category: brick.Category,
66-
Status: "installed",
61+
ID: brick.ID,
62+
Name: brick.Name,
63+
Author: "Arduino", // TODO: for now we only support our bricks
64+
Description: brick.Description,
65+
Category: brick.Category,
66+
Status: "installed",
67+
ModelRequired: brick.ModelRequired,
68+
Models: f.Map(s.modelsIndex.GetModelsByBrick(brick.ID), func(m modelsindex.AIModel) string {
69+
return m.ID
70+
}),
6771
}
6872
}
6973
return res, nil
@@ -198,17 +202,18 @@ func (s *Service) BricksDetails(id string, idProvider *app.IDProvider,
198202
return BrickDetailsResult{}, fmt.Errorf("unable to get used by apps: %w", err)
199203
}
200204
return BrickDetailsResult{
201-
ID: id,
202-
Name: brick.Name,
203-
Author: "Arduino", // TODO: for now we only support our bricks
204-
Description: brick.Description,
205-
Category: brick.Category,
206-
Status: "installed", // For now every Arduino brick are installed
207-
Variables: variables,
208-
Readme: readme,
209-
ApiDocsPath: apiDocsPath,
210-
CodeExamples: codeExamples,
211-
UsedByApps: usedByApps,
205+
ID: id,
206+
Name: brick.Name,
207+
Author: "Arduino", // TODO: for now we only support our bricks
208+
Description: brick.Description,
209+
Category: brick.Category,
210+
ModelRequired: brick.ModelRequired,
211+
Status: "installed", // For now every Arduino brick are installed
212+
Variables: variables,
213+
Readme: readme,
214+
ApiDocsPath: apiDocsPath,
215+
CodeExamples: codeExamples,
216+
UsedByApps: usedByApps,
212217
CompatibleModels: f.Map(s.modelsIndex.GetModelsByBrick(brick.ID), func(m modelsindex.AIModel) AIModel {
213218
return AIModel{
214219
ID: m.ID,

internal/orchestrator/bricks/types.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ type BrickListResult struct {
2020
}
2121

2222
type BrickListItem struct {
23-
ID string `json:"id"`
24-
Name string `json:"name"`
25-
Author string `json:"author"`
26-
Description string `json:"description"`
27-
Category string `json:"category"`
28-
Status string `json:"status"`
23+
ID string `json:"id"`
24+
Name string `json:"name"`
25+
Author string `json:"author"`
26+
Description string `json:"description"`
27+
Category string `json:"category"`
28+
Status string `json:"status"`
29+
ModelRequired bool `json:"model_required"`
30+
Models []string `json:"models"`
2931
}
3032

3133
type AppBrickInstancesResult struct {
@@ -78,6 +80,7 @@ type BrickDetailsResult struct {
7880
Description string `json:"description"`
7981
Category string `json:"category"`
8082
Status string `json:"status"`
83+
ModelRequired bool `json:"model_required"`
8184
Variables map[string]BrickVariable `json:"variables,omitempty"`
8285
Readme string `json:"readme"`
8386
ApiDocsPath string `json:"api_docs_path"`

internal/orchestrator/bricksindex/bricks_index.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ type Brick struct {
5858
RequireModel bool `yaml:"require_model"`
5959
Variables []BrickVariable `yaml:"variables,omitempty"`
6060
Ports []string `yaml:"ports,omitempty"`
61+
ModelRequired bool `yaml:"model_required,omitempty"`
6162
ModelName string `yaml:"model_name,omitempty"`
6263
MountDevicesIntoContainer bool `yaml:"mount_devices_into_container,omitempty"`
6364
RequiredDevices []string `yaml:"required_devices,omitempty"`

0 commit comments

Comments
 (0)