50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package models
|
|
|
|
type Module struct {
|
|
Id string
|
|
Title string
|
|
Description string
|
|
Url string
|
|
Version string
|
|
Compatibility Compatibility
|
|
Languages []DataLanguage
|
|
Availability int
|
|
}
|
|
|
|
type Modules []Module
|
|
|
|
func (modules Modules) GetById(id int) *Module {
|
|
return &modules[id]
|
|
}
|
|
|
|
func (state *FoundryState) GetModules() Modules {
|
|
modulesCopy := make([]Module, 0, 8)
|
|
for i := range state.Modules {
|
|
module := &(state.Modules[i])
|
|
moduleCopy := Module{
|
|
Id: module.Id,
|
|
Title: module.Title,
|
|
Description: module.Description,
|
|
Compatibility: Compatibility{
|
|
Minimum: module.Compatibility.Minimum,
|
|
Maximum: module.Compatibility.Maximum,
|
|
},
|
|
Url: module.Url,
|
|
Version: module.CoreVersion,
|
|
|
|
Availability: module.Availability,
|
|
}
|
|
for j := range module.Languages {
|
|
lang := DataLanguage{
|
|
Lang: module.Languages[j].Lang,
|
|
Name: module.Languages[j].Name,
|
|
Path: module.Languages[j].Path,
|
|
Flags: module.Languages[j].Flags,
|
|
}
|
|
moduleCopy.Languages = append(moduleCopy.Languages, lang)
|
|
}
|
|
modulesCopy = append(modulesCopy, moduleCopy)
|
|
}
|
|
return modulesCopy
|
|
}
|