36 lines
4.1 KiB
Go
36 lines
4.1 KiB
Go
package structs
|
||
|
||
import uuid "github.com/satori/go.uuid"
|
||
|
||
type Backend struct {
|
||
Config []ParamConfig `yaml:"config,omitempty" json:"config,omitempty"` // Параметры, передаваемые при запуске сервера
|
||
Rest map[string]*Rest `yaml:"rest,omitempty" json:"rest,omitempty"` // Подготовка REST для сервера
|
||
RestGroups []string `yaml:"-" json:"-"` // Названия групп
|
||
}
|
||
|
||
type ParamConfig struct {
|
||
Name string `yaml:"name" json:"name,omitempty" default:"param"` // Название параметра
|
||
Type string `yaml:"type" json:"type,omitempty" default:"string"` // Тип параметра
|
||
Help string `yaml:"help" json:"help,omitempty"` // Справка помощи параметра
|
||
}
|
||
|
||
type VisField struct {
|
||
ID uuid.UUID `yaml:"id,omitempty" json:"id,omitempty"`
|
||
Name string `yaml:"name,omitempty" json:"name,omitempty"`
|
||
}
|
||
|
||
type Rest struct {
|
||
Name string `yam:"name,omitempty" json:"name,omitempty" default:"noname"` // Имя раздела запросов
|
||
GroupName string `yaml:"groupName,omitempty" json:"groupName,omitempty" default:"nogroup"` // Имя группы, в которую входит данный путь REST
|
||
Summary string `yaml:"summary,omitempty" json:"summary,omitempty" default:"Общее описание"` // Общее краткое описание
|
||
Comment string `yaml:"comment,omitempty" json:"comment,omitempty" default:"Описание"` // Описание (комментарий)
|
||
Data VisField `yaml:"data,omitempty" json:"data,omitempty"` // Модель данных, на основе которой строиться запрос
|
||
Edit []VisField `yaml:"edits,omitempty" json:"edits,omitempty"` // Список полей для редактирования
|
||
Visible []VisField `yaml:"visible,omitempty" json:"visible,omitempty"` // Список видимых полей. Если указан хоть один, то отображаются только те, которые указаны, иначе отображаются все
|
||
Invisible []VisField `yaml:"invisible,omitempty" json:"invisible,omitempty"` // Список невидимых полей. Если указан хоть один, то отображаются все кроме указанного, иначе берется правило из поля "visible". Является приоритетным и в данном случае поле "visible" игнорируется
|
||
Filter []VisField `yaml:"filter,omitempty" json:"filter,omitempty"` // Указывается список полей, по которым будет осуществляться поиск
|
||
Editable bool `yaml:"editable,omitempty" json:"editable,omitempty"` // Модель является редактируемой, т.е. необходимо сгенерировать rest для данной модели. Для данного пути будут сформированы методы GET, POST, PUT и DELETE с соответствующим путем /<path>/{id}
|
||
FieldID VisField `yaml:"fieldId,omitempty" json:"fieldId,omitempty"` // Поле, которое является ключевым при работе с конкретной записью. Если модель данных указана db, то ключевое поле берется из описания БД и игнорируется.
|
||
Roles map[string][]string `yaml:"roles,omitempty" json:"roles,omitempty"` // Список ролей, которым разрешено работать с данным. Операция: массив строк с названием ролей. Если не указано, то все роли. Операция для просмотра списка: LIST
|
||
}
|