/
githubmirror
/
beego
Обзор
Документация
Войти
/
githubmirror
/
beego
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
server/web/context/param/methodparams.go
69 строк
1 KB
Ming Deng
format code
14 дек 2020, 07:34
14 дек 2020, 07:34
d4da82e
Код
Авторство
О чём код?
package param import ( "fmt" "strings" ) // MethodParam keeps param information to be auto passed to controller methods type MethodParam struct { name string in paramType required bool defaultValue string } type paramType byte const ( param paramType = iota path body header ) // New creates a new MethodParam with name and specific options func New(name string, opts ...MethodParamOption) *MethodParam { return newParam(name, nil, opts) } func newParam(name string, parser paramParser, opts []MethodParamOption) (param *MethodParam) { param = &MethodParam{name: name} for _, option := range opts { option(param) } return } // Make creates an array of MethodParmas or an empty array func Make(list ...*MethodParam) []*MethodParam { if len(list) > 0 { return list } return nil } func (mp *MethodParam) String() string { options := []string{} result := "param.New(\"" + mp.name + "\"" if mp.required { options = append(options, "param.IsRequired") } switch mp.in { case path: options = append(options, "param.InPath") case body: options = append(options, "param.InBody") case header: options = append(options, "param.InHeader") } if mp.defaultValue != "" { options = append(options, fmt.Sprintf(`param.Default("%s")`, mp.defaultValue)) } if len(options) > 0 { result += ", " } result += strings.Join(options, ", ") result += ")" return result }