github.com/profzone/eden-framework@v1.0.10/internal/generator/api/api.go (about) 1 package api 2 3 import "github.com/profzone/eden-framework/pkg/strings" 4 5 type Api struct { 6 ServiceName string `json:"name"` 7 Operators map[string]*OperatorGroup `json:"operators"` 8 Models map[string]*OperatorModel `json:"models"` 9 Enums map[string]Enum `json:"enums"` 10 } 11 12 func NewApi() Api { 13 return Api{ 14 Operators: make(map[string]*OperatorGroup), 15 Models: make(map[string]*OperatorModel), 16 Enums: make(map[string]Enum), 17 } 18 } 19 20 func (a *Api) AddGroup(name string) *OperatorGroup { 21 if _, ok := a.Operators[name]; !ok { 22 group := NewOperatorGroup(name, str.ToLowerSlashCase(name)) 23 a.Operators[group.Name] = group 24 } 25 26 return a.Operators[name] 27 } 28 29 func (a *Api) GetGroup(name string) *OperatorGroup { 30 return a.Operators[name] 31 } 32 33 func (a *Api) WalkOperators(walker func(g *OperatorGroup)) { 34 for _, group := range a.Operators { 35 walker(group) 36 } 37 } 38 39 func (a *Api) AddModel(model *OperatorModel) { 40 if _, ok := a.Models[model.ID]; !ok { 41 a.Models[model.ID] = model 42 } 43 } 44 45 func (a *Api) AddEnum(id string, e Enum) { 46 if _, ok := a.Enums[id]; !ok { 47 a.Enums[id] = e 48 } 49 }