mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
@@ -948,33 +948,14 @@ func (api *API) convertWorkspaceBuild(
|
||||
}
|
||||
|
||||
func convertWorkspaceResource(resource database.WorkspaceResource, agents []codersdk.WorkspaceAgent, metadata []database.WorkspaceResourceMetadatum) codersdk.WorkspaceResource {
|
||||
metadataMap := map[string]database.WorkspaceResourceMetadatum{}
|
||||
|
||||
// implicit metadata fields come first
|
||||
metadataMap["type"] = database.WorkspaceResourceMetadatum{
|
||||
Key: "type",
|
||||
Value: sql.NullString{String: resource.Type, Valid: true},
|
||||
Sensitive: false,
|
||||
}
|
||||
// explicit metadata fields come afterward, and can override implicit ones
|
||||
for _, field := range metadata {
|
||||
metadataMap[field.Key] = field
|
||||
}
|
||||
|
||||
var convertedMetadata []codersdk.WorkspaceResourceMetadata
|
||||
for _, field := range metadataMap {
|
||||
if field.Value.Valid {
|
||||
convertedField := codersdk.WorkspaceResourceMetadata{
|
||||
Key: field.Key,
|
||||
Value: field.Value.String,
|
||||
Sensitive: field.Sensitive,
|
||||
}
|
||||
convertedMetadata = append(convertedMetadata, convertedField)
|
||||
}
|
||||
for _, field := range metadata {
|
||||
convertedMetadata = append(convertedMetadata, codersdk.WorkspaceResourceMetadata{
|
||||
Key: field.Key,
|
||||
Value: field.Value.String,
|
||||
Sensitive: field.Sensitive,
|
||||
})
|
||||
}
|
||||
slices.SortFunc(convertedMetadata, func(a, b codersdk.WorkspaceResourceMetadata) bool {
|
||||
return a.Key < b.Key
|
||||
})
|
||||
|
||||
return codersdk.WorkspaceResource{
|
||||
ID: resource.ID,
|
||||
|
||||
Reference in New Issue
Block a user