5e7246b0c9
Fix #4
115 lines
3.1 KiB
Go
115 lines
3.1 KiB
Go
package restful
|
|
|
|
// Copyright 2013 Ernest Micklei. All rights reserved.
|
|
// Use of this source code is governed by a license
|
|
// that can be found in the LICENSE file.
|
|
|
|
const (
|
|
// PathParameterKind = indicator of Request parameter type "path"
|
|
PathParameterKind = iota
|
|
|
|
// QueryParameterKind = indicator of Request parameter type "query"
|
|
QueryParameterKind
|
|
|
|
// BodyParameterKind = indicator of Request parameter type "body"
|
|
BodyParameterKind
|
|
|
|
// HeaderParameterKind = indicator of Request parameter type "header"
|
|
HeaderParameterKind
|
|
|
|
// FormParameterKind = indicator of Request parameter type "form"
|
|
FormParameterKind
|
|
)
|
|
|
|
// Parameter is for documententing the parameter used in a Http Request
|
|
// ParameterData kinds are Path,Query and Body
|
|
type Parameter struct {
|
|
data *ParameterData
|
|
}
|
|
|
|
// ParameterData represents the state of a Parameter.
|
|
// It is made public to make it accessible to e.g. the Swagger package.
|
|
type ParameterData struct {
|
|
Name, Description, DataType, DataFormat string
|
|
Kind int
|
|
Required bool
|
|
AllowableValues map[string]string
|
|
AllowMultiple bool
|
|
DefaultValue string
|
|
}
|
|
|
|
// Data returns the state of the Parameter
|
|
func (p *Parameter) Data() ParameterData {
|
|
return *p.data
|
|
}
|
|
|
|
// Kind returns the parameter type indicator (see const for valid values)
|
|
func (p *Parameter) Kind() int {
|
|
return p.data.Kind
|
|
}
|
|
|
|
func (p *Parameter) bePath() *Parameter {
|
|
p.data.Kind = PathParameterKind
|
|
return p
|
|
}
|
|
func (p *Parameter) beQuery() *Parameter {
|
|
p.data.Kind = QueryParameterKind
|
|
return p
|
|
}
|
|
func (p *Parameter) beBody() *Parameter {
|
|
p.data.Kind = BodyParameterKind
|
|
return p
|
|
}
|
|
|
|
func (p *Parameter) beHeader() *Parameter {
|
|
p.data.Kind = HeaderParameterKind
|
|
return p
|
|
}
|
|
|
|
func (p *Parameter) beForm() *Parameter {
|
|
p.data.Kind = FormParameterKind
|
|
return p
|
|
}
|
|
|
|
// Required sets the required field and returns the receiver
|
|
func (p *Parameter) Required(required bool) *Parameter {
|
|
p.data.Required = required
|
|
return p
|
|
}
|
|
|
|
// AllowMultiple sets the allowMultiple field and returns the receiver
|
|
func (p *Parameter) AllowMultiple(multiple bool) *Parameter {
|
|
p.data.AllowMultiple = multiple
|
|
return p
|
|
}
|
|
|
|
// AllowableValues sets the allowableValues field and returns the receiver
|
|
func (p *Parameter) AllowableValues(values map[string]string) *Parameter {
|
|
p.data.AllowableValues = values
|
|
return p
|
|
}
|
|
|
|
// DataType sets the dataType field and returns the receiver
|
|
func (p *Parameter) DataType(typeName string) *Parameter {
|
|
p.data.DataType = typeName
|
|
return p
|
|
}
|
|
|
|
// DataFormat sets the dataFormat field for Swagger UI
|
|
func (p *Parameter) DataFormat(formatName string) *Parameter {
|
|
p.data.DataFormat = formatName
|
|
return p
|
|
}
|
|
|
|
// DefaultValue sets the default value field and returns the receiver
|
|
func (p *Parameter) DefaultValue(stringRepresentation string) *Parameter {
|
|
p.data.DefaultValue = stringRepresentation
|
|
return p
|
|
}
|
|
|
|
// Description sets the description value field and returns the receiver
|
|
func (p *Parameter) Description(doc string) *Parameter {
|
|
p.data.Description = doc
|
|
return p
|
|
}
|