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  }