本文整理汇总了Golang中github.com/raphael/goa.InvalidEnumValueError函数的典型用法代码示例。如果您正苦于以下问题:Golang InvalidEnumValueError函数的具体用法?Golang InvalidEnumValueError怎么用?Golang InvalidEnumValueError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了InvalidEnumValueError函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: MarshalBottlePayload
// MarshalBottlePayload validates and renders an instance of BottlePayload into a interface{}
func MarshalBottlePayload(source *BottlePayload, inErr error) (target map[string]interface{}, err error) {
err = inErr
if source.Color != "" {
if !(source.Color == "red" || source.Color == "white" || source.Color == "rose" || source.Color == "yellow" || source.Color == "sparkling") {
err = goa.InvalidEnumValueError(`.color`, source.Color, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
if len(source.Country) < 2 {
err = goa.InvalidLengthError(`.country`, source.Country, len(source.Country), 2, true, err)
}
if len(source.Name) < 2 {
err = goa.InvalidLengthError(`.name`, source.Name, len(source.Name), 2, true, err)
}
if len(source.Review) < 10 {
err = goa.InvalidLengthError(`.review`, source.Review, len(source.Review), 10, true, err)
}
if len(source.Review) > 300 {
err = goa.InvalidLengthError(`.review`, source.Review, len(source.Review), 300, false, err)
}
if source.Sweetness < 1 {
err = goa.InvalidRangeError(`.sweetness`, source.Sweetness, 1, true, err)
}
if source.Sweetness > 5 {
err = goa.InvalidRangeError(`.sweetness`, source.Sweetness, 5, false, err)
}
if len(source.Varietal) < 4 {
err = goa.InvalidLengthError(`.varietal`, source.Varietal, len(source.Varietal), 4, true, err)
}
if len(source.Vineyard) < 2 {
err = goa.InvalidLengthError(`.vineyard`, source.Vineyard, len(source.Vineyard), 2, true, err)
}
if source.Vintage < 1900 {
err = goa.InvalidRangeError(`.vintage`, source.Vintage, 1900, true, err)
}
if source.Vintage > 2020 {
err = goa.InvalidRangeError(`.vintage`, source.Vintage, 2020, false, err)
}
tmp52 := map[string]interface{}{
"color": source.Color,
"country": source.Country,
"name": source.Name,
"region": source.Region,
"review": source.Review,
"sweetness": source.Sweetness,
"varietal": source.Varietal,
"vineyard": source.Vineyard,
"vintage": source.Vintage,
}
target = tmp52
return
}
示例2: Validate
// Validate validates the type instance.
func (ut *BottlePayload) Validate() (err error) {
if ut.Color != "" {
if !(ut.Color == "red" || ut.Color == "white" || ut.Color == "rose" || ut.Color == "yellow" || ut.Color == "sparkling") {
err = goa.InvalidEnumValueError(`response.color`, ut.Color, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
if len(ut.Country) < 2 {
err = goa.InvalidLengthError(`response.country`, ut.Country, len(ut.Country), 2, true, err)
}
if len(ut.Name) < 2 {
err = goa.InvalidLengthError(`response.name`, ut.Name, len(ut.Name), 2, true, err)
}
if len(ut.Review) < 10 {
err = goa.InvalidLengthError(`response.review`, ut.Review, len(ut.Review), 10, true, err)
}
if len(ut.Review) > 300 {
err = goa.InvalidLengthError(`response.review`, ut.Review, len(ut.Review), 300, false, err)
}
if ut.Sweetness < 1 {
err = goa.InvalidRangeError(`response.sweetness`, ut.Sweetness, 1, true, err)
}
if ut.Sweetness > 5 {
err = goa.InvalidRangeError(`response.sweetness`, ut.Sweetness, 5, false, err)
}
if len(ut.Varietal) < 4 {
err = goa.InvalidLengthError(`response.varietal`, ut.Varietal, len(ut.Varietal), 4, true, err)
}
if len(ut.Vineyard) < 2 {
err = goa.InvalidLengthError(`response.vineyard`, ut.Vineyard, len(ut.Vineyard), 2, true, err)
}
if ut.Vintage < 1900 {
err = goa.InvalidRangeError(`response.vintage`, ut.Vintage, 1900, true, err)
}
if ut.Vintage > 2020 {
err = goa.InvalidRangeError(`response.vintage`, ut.Vintage, 2020, false, err)
}
return
}
示例3: LoadBottleCollection
// LoadBottleCollection loads raw data into an instance of BottleCollection running all the
// validations. Raw data is defined by data that the JSON unmarshaler would create when unmarshaling
// into a variable of type interface{}. See https://golang.org/pkg/encoding/json/#Unmarshal for the
// complete list of supported data types.
func LoadBottleCollection(raw interface{}) (BottleCollection, error) {
var err error
var res BottleCollection
if val, ok := raw.([]interface{}); ok {
res = make([]*Bottle, len(val))
for i, v := range val {
var tmp56 *Bottle
if val, ok := v.(map[string]interface{}); ok {
tmp56 = new(Bottle)
if v, ok := val["account"]; ok {
var tmp57 *Account
if val, ok := v.(map[string]interface{}); ok {
tmp57 = new(Account)
if v, ok := val["created_at"]; ok {
var tmp58 string
if val, ok := v.(string); ok {
tmp58 = val
} else {
err = goa.InvalidAttributeTypeError(`[*].Account.CreatedAt`, v, "string", err)
}
if err == nil {
if tmp58 != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp58); err2 != nil {
err = goa.InvalidFormatError(`[*].Account.CreatedAt`, tmp58, goa.FormatDateTime, err2, err)
}
}
}
tmp57.CreatedAt = tmp58
}
if v, ok := val["created_by"]; ok {
var tmp59 string
if val, ok := v.(string); ok {
tmp59 = val
} else {
err = goa.InvalidAttributeTypeError(`[*].Account.CreatedBy`, v, "string", err)
}
if err == nil {
if tmp59 != "" {
if err2 := goa.ValidateFormat(goa.FormatEmail, tmp59); err2 != nil {
err = goa.InvalidFormatError(`[*].Account.CreatedBy`, tmp59, goa.FormatEmail, err2, err)
}
}
}
tmp57.CreatedBy = tmp59
}
if v, ok := val["href"]; ok {
var tmp60 string
if val, ok := v.(string); ok {
tmp60 = val
} else {
err = goa.InvalidAttributeTypeError(`[*].Account.Href`, v, "string", err)
}
tmp57.Href = tmp60
}
if v, ok := val["id"]; ok {
var tmp61 int
if f, ok := v.(float64); ok {
tmp61 = int(f)
} else {
err = goa.InvalidAttributeTypeError(`[*].Account.ID`, v, "int", err)
}
tmp57.ID = tmp61
}
if v, ok := val["name"]; ok {
var tmp62 string
if val, ok := v.(string); ok {
tmp62 = val
} else {
err = goa.InvalidAttributeTypeError(`[*].Account.Name`, v, "string", err)
}
tmp57.Name = tmp62
}
} else {
err = goa.InvalidAttributeTypeError(`[*].Account`, v, "map[string]interface{}", err)
}
tmp56.Account = tmp57
}
if v, ok := val["color"]; ok {
var tmp63 string
if val, ok := v.(string); ok {
tmp63 = val
} else {
err = goa.InvalidAttributeTypeError(`[*].Color`, v, "string", err)
}
if err == nil {
if tmp63 != "" {
if !(tmp63 == "red" || tmp63 == "white" || tmp63 == "rose" || tmp63 == "yellow" || tmp63 == "sparkling") {
err = goa.InvalidEnumValueError(`[*].Color`, tmp63, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
}
tmp56.Color = tmp63
}
if v, ok := val["country"]; ok {
var tmp64 string
if val, ok := v.(string); ok {
//.........这里部分代码省略.........
示例4: Validate
// Validate validates the media type instance.
func (mt *Bottle) Validate() (err error) {
if mt.Account.CreatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, mt.Account.CreatedAt); err2 != nil {
err = goa.InvalidFormatError(`response.account.created_at`, mt.Account.CreatedAt, goa.FormatDateTime, err2, err)
}
}
if mt.Account.CreatedBy != "" {
if err2 := goa.ValidateFormat(goa.FormatEmail, mt.Account.CreatedBy); err2 != nil {
err = goa.InvalidFormatError(`response.account.created_by`, mt.Account.CreatedBy, goa.FormatEmail, err2, err)
}
}
if mt.Color != "" {
if !(mt.Color == "red" || mt.Color == "white" || mt.Color == "rose" || mt.Color == "yellow" || mt.Color == "sparkling") {
err = goa.InvalidEnumValueError(`response.color`, mt.Color, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
if len(mt.Country) < 2 {
err = goa.InvalidLengthError(`response.country`, mt.Country, 2, true, err)
}
if mt.CreatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, mt.CreatedAt); err2 != nil {
err = goa.InvalidFormatError(`response.created_at`, mt.CreatedAt, goa.FormatDateTime, err2, err)
}
}
if len(mt.Name) < 2 {
err = goa.InvalidLengthError(`response.name`, mt.Name, 2, true, err)
}
if mt.Rating < 1 {
err = goa.InvalidRangeError(`response.rating`, mt.Rating, 1, true, err)
}
if mt.Rating > 5 {
err = goa.InvalidRangeError(`response.rating`, mt.Rating, 5, false, err)
}
if len(mt.Review) < 10 {
err = goa.InvalidLengthError(`response.review`, mt.Review, 10, true, err)
}
if len(mt.Review) > 300 {
err = goa.InvalidLengthError(`response.review`, mt.Review, 300, false, err)
}
if mt.Sweetness < 1 {
err = goa.InvalidRangeError(`response.sweetness`, mt.Sweetness, 1, true, err)
}
if mt.Sweetness > 5 {
err = goa.InvalidRangeError(`response.sweetness`, mt.Sweetness, 5, false, err)
}
if mt.UpdatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, mt.UpdatedAt); err2 != nil {
err = goa.InvalidFormatError(`response.updated_at`, mt.UpdatedAt, goa.FormatDateTime, err2, err)
}
}
if len(mt.Varietal) < 4 {
err = goa.InvalidLengthError(`response.varietal`, mt.Varietal, 4, true, err)
}
if len(mt.Vineyard) < 2 {
err = goa.InvalidLengthError(`response.vineyard`, mt.Vineyard, 2, true, err)
}
if mt.Vintage < 1900 {
err = goa.InvalidRangeError(`response.vintage`, mt.Vintage, 1900, true, err)
}
if mt.Vintage > 2020 {
err = goa.InvalidRangeError(`response.vintage`, mt.Vintage, 2020, false, err)
}
return
}
示例5: Dump
// Dump produces raw data from an instance of Bottle running all the
// validations. See LoadBottle for the definition of raw data.
func (mt *Bottle) Dump(view BottleViewEnum) (map[string]interface{}, error) {
var err error
var res map[string]interface{}
if view == BottleDefaultView {
if len(mt.Name) < 2 {
err = goa.InvalidLengthError(`default view.name`, mt.Name, 2, true, err)
}
if mt.Rating < 1 {
err = goa.InvalidRangeError(`default view.rating`, mt.Rating, 1, true, err)
}
if mt.Rating > 5 {
err = goa.InvalidRangeError(`default view.rating`, mt.Rating, 5, false, err)
}
if len(mt.Varietal) < 4 {
err = goa.InvalidLengthError(`default view.varietal`, mt.Varietal, 4, true, err)
}
if len(mt.Vineyard) < 2 {
err = goa.InvalidLengthError(`default view.vineyard`, mt.Vineyard, 2, true, err)
}
if mt.Vintage < 1900 {
err = goa.InvalidRangeError(`default view.vintage`, mt.Vintage, 1900, true, err)
}
if mt.Vintage > 2020 {
err = goa.InvalidRangeError(`default view.vintage`, mt.Vintage, 2020, false, err)
}
tmp50 := map[string]interface{}{
"href": mt.Href,
"id": mt.ID,
"name": mt.Name,
"rating": mt.Rating,
"varietal": mt.Varietal,
"vineyard": mt.Vineyard,
"vintage": mt.Vintage,
}
res = tmp50
if err == nil {
links := make(map[string]interface{})
tmp49 := map[string]interface{}{
"href": mt.Account.Href,
"id": mt.Account.ID,
"name": mt.Account.Name,
}
links["account"] = tmp49
res["links"] = links
}
}
if view == BottleFullView {
if mt.Color != "" {
if !(mt.Color == "red" || mt.Color == "white" || mt.Color == "rose" || mt.Color == "yellow" || mt.Color == "sparkling") {
err = goa.InvalidEnumValueError(`full view.color`, mt.Color, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
if len(mt.Country) < 2 {
err = goa.InvalidLengthError(`full view.country`, mt.Country, 2, true, err)
}
if mt.CreatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, mt.CreatedAt); err2 != nil {
err = goa.InvalidFormatError(`full view.created_at`, mt.CreatedAt, goa.FormatDateTime, err2, err)
}
}
if len(mt.Name) < 2 {
err = goa.InvalidLengthError(`full view.name`, mt.Name, 2, true, err)
}
if mt.Rating < 1 {
err = goa.InvalidRangeError(`full view.rating`, mt.Rating, 1, true, err)
}
if mt.Rating > 5 {
err = goa.InvalidRangeError(`full view.rating`, mt.Rating, 5, false, err)
}
if len(mt.Review) < 10 {
err = goa.InvalidLengthError(`full view.review`, mt.Review, 10, true, err)
}
if len(mt.Review) > 300 {
err = goa.InvalidLengthError(`full view.review`, mt.Review, 300, false, err)
}
if mt.Sweetness < 1 {
err = goa.InvalidRangeError(`full view.sweetness`, mt.Sweetness, 1, true, err)
}
if mt.Sweetness > 5 {
err = goa.InvalidRangeError(`full view.sweetness`, mt.Sweetness, 5, false, err)
}
if mt.UpdatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, mt.UpdatedAt); err2 != nil {
err = goa.InvalidFormatError(`full view.updated_at`, mt.UpdatedAt, goa.FormatDateTime, err2, err)
}
}
if len(mt.Varietal) < 4 {
err = goa.InvalidLengthError(`full view.varietal`, mt.Varietal, 4, true, err)
}
if len(mt.Vineyard) < 2 {
err = goa.InvalidLengthError(`full view.vineyard`, mt.Vineyard, 2, true, err)
}
if mt.Vintage < 1900 {
err = goa.InvalidRangeError(`full view.vintage`, mt.Vintage, 1900, true, err)
}
if mt.Vintage > 2020 {
err = goa.InvalidRangeError(`full view.vintage`, mt.Vintage, 2020, false, err)
}
//.........这里部分代码省略.........
示例6: LoadBottle
// LoadBottle loads raw data into an instance of Bottle running all the
// validations. Raw data is defined by data that the JSON unmarshaler would create when unmarshaling
// into a variable of type interface{}. See https://golang.org/pkg/encoding/json/#Unmarshal for the
// complete list of supported data types.
func LoadBottle(raw interface{}) (*Bottle, error) {
var err error
var res *Bottle
if val, ok := raw.(map[string]interface{}); ok {
res = new(Bottle)
if v, ok := val["account"]; ok {
var tmp29 *Account
if val, ok := v.(map[string]interface{}); ok {
tmp29 = new(Account)
if v, ok := val["created_at"]; ok {
var tmp30 string
if val, ok := v.(string); ok {
tmp30 = val
} else {
err = goa.InvalidAttributeTypeError(`.Account.CreatedAt`, v, "string", err)
}
if err == nil {
if tmp30 != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp30); err2 != nil {
err = goa.InvalidFormatError(`.Account.CreatedAt`, tmp30, goa.FormatDateTime, err2, err)
}
}
}
tmp29.CreatedAt = tmp30
}
if v, ok := val["created_by"]; ok {
var tmp31 string
if val, ok := v.(string); ok {
tmp31 = val
} else {
err = goa.InvalidAttributeTypeError(`.Account.CreatedBy`, v, "string", err)
}
if err == nil {
if tmp31 != "" {
if err2 := goa.ValidateFormat(goa.FormatEmail, tmp31); err2 != nil {
err = goa.InvalidFormatError(`.Account.CreatedBy`, tmp31, goa.FormatEmail, err2, err)
}
}
}
tmp29.CreatedBy = tmp31
}
if v, ok := val["href"]; ok {
var tmp32 string
if val, ok := v.(string); ok {
tmp32 = val
} else {
err = goa.InvalidAttributeTypeError(`.Account.Href`, v, "string", err)
}
tmp29.Href = tmp32
}
if v, ok := val["id"]; ok {
var tmp33 int
if f, ok := v.(float64); ok {
tmp33 = int(f)
} else {
err = goa.InvalidAttributeTypeError(`.Account.ID`, v, "int", err)
}
tmp29.ID = tmp33
}
if v, ok := val["name"]; ok {
var tmp34 string
if val, ok := v.(string); ok {
tmp34 = val
} else {
err = goa.InvalidAttributeTypeError(`.Account.Name`, v, "string", err)
}
tmp29.Name = tmp34
}
} else {
err = goa.InvalidAttributeTypeError(`.Account`, v, "map[string]interface{}", err)
}
res.Account = tmp29
}
if v, ok := val["color"]; ok {
var tmp35 string
if val, ok := v.(string); ok {
tmp35 = val
} else {
err = goa.InvalidAttributeTypeError(`.Color`, v, "string", err)
}
if err == nil {
if tmp35 != "" {
if !(tmp35 == "red" || tmp35 == "white" || tmp35 == "rose" || tmp35 == "yellow" || tmp35 == "sparkling") {
err = goa.InvalidEnumValueError(`.Color`, tmp35, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
}
res.Color = tmp35
}
if v, ok := val["country"]; ok {
var tmp36 string
if val, ok := v.(string); ok {
tmp36 = val
} else {
err = goa.InvalidAttributeTypeError(`.Country`, v, "string", err)
}
//.........这里部分代码省略.........
示例7:
})
})
})
var _ = Describe("InvalidEnumValueError", func() {
var valErr, err error
ctx := "ctx"
val := 42
allowed := []interface{}{"43", "44"}
BeforeEach(func() {
err = nil
})
JustBeforeEach(func() {
valErr = goa.InvalidEnumValueError(ctx, val, allowed, err)
})
It("creates a multi error", func() {
Ω(valErr).ShouldNot(BeNil())
Ω(valErr).Should(BeAssignableToTypeOf(goa.MultiError{}))
mErr := valErr.(goa.MultiError)
Ω(mErr).Should(HaveLen(1))
Ω(mErr[0]).Should(BeAssignableToTypeOf(&goa.TypedError{}))
tErr := mErr[0].(*goa.TypedError)
Ω(tErr.ID).Should(Equal(goa.ErrorID((goa.ErrInvalidEnumValue))))
Ω(tErr.Mesg).Should(ContainSubstring(ctx))
Ω(tErr.Mesg).Should(ContainSubstring("%d", val))
Ω(tErr.Mesg).Should(ContainSubstring(`"43", "44"`))
})
示例8: UnmarshalUpdateBottlePayload
// UnmarshalUpdateBottlePayload unmarshals and validates a raw interface{} into an instance of UpdateBottlePayload
func UnmarshalUpdateBottlePayload(source interface{}, inErr error) (target *UpdateBottlePayload, err error) {
err = inErr
if val, ok := source.(map[string]interface{}); ok {
target = new(UpdateBottlePayload)
if v, ok := val["color"]; ok {
var tmp13 string
if val, ok := v.(string); ok {
tmp13 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Color`, v, "string", err)
}
if err == nil {
if tmp13 != "" {
if !(tmp13 == "red" || tmp13 == "white" || tmp13 == "rose" || tmp13 == "yellow" || tmp13 == "sparkling") {
err = goa.InvalidEnumValueError(`payload.Color`, tmp13, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
}
target.Color = tmp13
}
if v, ok := val["country"]; ok {
var tmp14 string
if val, ok := v.(string); ok {
tmp14 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Country`, v, "string", err)
}
if err == nil {
if len(tmp14) < 2 {
err = goa.InvalidLengthError(`payload.Country`, tmp14, len(tmp14), 2, true, err)
}
}
target.Country = tmp14
}
if v, ok := val["name"]; ok {
var tmp15 string
if val, ok := v.(string); ok {
tmp15 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Name`, v, "string", err)
}
if err == nil {
if len(tmp15) < 2 {
err = goa.InvalidLengthError(`payload.Name`, tmp15, len(tmp15), 2, true, err)
}
}
target.Name = tmp15
}
if v, ok := val["region"]; ok {
var tmp16 string
if val, ok := v.(string); ok {
tmp16 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Region`, v, "string", err)
}
target.Region = tmp16
}
if v, ok := val["review"]; ok {
var tmp17 string
if val, ok := v.(string); ok {
tmp17 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Review`, v, "string", err)
}
if err == nil {
if len(tmp17) < 10 {
err = goa.InvalidLengthError(`payload.Review`, tmp17, len(tmp17), 10, true, err)
}
if len(tmp17) > 300 {
err = goa.InvalidLengthError(`payload.Review`, tmp17, len(tmp17), 300, false, err)
}
}
target.Review = tmp17
}
if v, ok := val["sweetness"]; ok {
var tmp18 int
if f, ok := v.(float64); ok {
tmp18 = int(f)
} else {
err = goa.InvalidAttributeTypeError(`payload.Sweetness`, v, "int", err)
}
if err == nil {
if tmp18 < 1 {
err = goa.InvalidRangeError(`payload.Sweetness`, tmp18, 1, true, err)
}
if tmp18 > 5 {
err = goa.InvalidRangeError(`payload.Sweetness`, tmp18, 5, false, err)
}
}
target.Sweetness = tmp18
}
if v, ok := val["varietal"]; ok {
var tmp19 string
if val, ok := v.(string); ok {
tmp19 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Varietal`, v, "string", err)
}
if err == nil {
//.........这里部分代码省略.........
示例9: UnmarshalCreateBottlePayload
// UnmarshalCreateBottlePayload unmarshals and validates a raw interface{} into an instance of CreateBottlePayload
func UnmarshalCreateBottlePayload(source interface{}, inErr error) (target *CreateBottlePayload, err error) {
err = inErr
if val, ok := source.(map[string]interface{}); ok {
target = new(CreateBottlePayload)
if v, ok := val["color"]; ok {
var tmp3 string
if val, ok := v.(string); ok {
tmp3 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Color`, v, "string", err)
}
if err == nil {
if tmp3 != "" {
if !(tmp3 == "red" || tmp3 == "white" || tmp3 == "rose" || tmp3 == "yellow" || tmp3 == "sparkling") {
err = goa.InvalidEnumValueError(`payload.Color`, tmp3, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
}
target.Color = tmp3
} else {
err = goa.MissingAttributeError(`payload`, "color", err)
}
if v, ok := val["country"]; ok {
var tmp4 string
if val, ok := v.(string); ok {
tmp4 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Country`, v, "string", err)
}
if err == nil {
if len(tmp4) < 2 {
err = goa.InvalidLengthError(`payload.Country`, tmp4, len(tmp4), 2, true, err)
}
}
target.Country = tmp4
}
if v, ok := val["name"]; ok {
var tmp5 string
if val, ok := v.(string); ok {
tmp5 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Name`, v, "string", err)
}
if err == nil {
if len(tmp5) < 2 {
err = goa.InvalidLengthError(`payload.Name`, tmp5, len(tmp5), 2, true, err)
}
}
target.Name = tmp5
} else {
err = goa.MissingAttributeError(`payload`, "name", err)
}
if v, ok := val["region"]; ok {
var tmp6 string
if val, ok := v.(string); ok {
tmp6 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Region`, v, "string", err)
}
target.Region = tmp6
}
if v, ok := val["review"]; ok {
var tmp7 string
if val, ok := v.(string); ok {
tmp7 = val
} else {
err = goa.InvalidAttributeTypeError(`payload.Review`, v, "string", err)
}
if err == nil {
if len(tmp7) < 10 {
err = goa.InvalidLengthError(`payload.Review`, tmp7, len(tmp7), 10, true, err)
}
if len(tmp7) > 300 {
err = goa.InvalidLengthError(`payload.Review`, tmp7, len(tmp7), 300, false, err)
}
}
target.Review = tmp7
}
if v, ok := val["sweetness"]; ok {
var tmp8 int
if f, ok := v.(float64); ok {
tmp8 = int(f)
} else {
err = goa.InvalidAttributeTypeError(`payload.Sweetness`, v, "int", err)
}
if err == nil {
if tmp8 < 1 {
err = goa.InvalidRangeError(`payload.Sweetness`, tmp8, 1, true, err)
}
if tmp8 > 5 {
err = goa.InvalidRangeError(`payload.Sweetness`, tmp8, 5, false, err)
}
}
target.Sweetness = tmp8
}
if v, ok := val["varietal"]; ok {
var tmp9 string
if val, ok := v.(string); ok {
tmp9 = val
//.........这里部分代码省略.........
示例10: Validate
// Validate validates the media type instance.
func (mt BottleCollection) Validate() (err error) {
for _, e := range mt {
if e.Account.CreatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, e.Account.CreatedAt); err2 != nil {
err = goa.InvalidFormatError(`response[*].account.created_at`, e.Account.CreatedAt, goa.FormatDateTime, err2, err)
}
}
if e.Account.CreatedBy != "" {
if err2 := goa.ValidateFormat(goa.FormatEmail, e.Account.CreatedBy); err2 != nil {
err = goa.InvalidFormatError(`response[*].account.created_by`, e.Account.CreatedBy, goa.FormatEmail, err2, err)
}
}
if e.Color != "" {
if !(e.Color == "red" || e.Color == "white" || e.Color == "rose" || e.Color == "yellow" || e.Color == "sparkling") {
err = goa.InvalidEnumValueError(`response[*].color`, e.Color, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
if len(e.Country) < 2 {
err = goa.InvalidLengthError(`response[*].country`, e.Country, len(e.Country), 2, true, err)
}
if e.CreatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, e.CreatedAt); err2 != nil {
err = goa.InvalidFormatError(`response[*].created_at`, e.CreatedAt, goa.FormatDateTime, err2, err)
}
}
if len(e.Name) < 2 {
err = goa.InvalidLengthError(`response[*].name`, e.Name, len(e.Name), 2, true, err)
}
if e.Rating < 1 {
err = goa.InvalidRangeError(`response[*].rating`, e.Rating, 1, true, err)
}
if e.Rating > 5 {
err = goa.InvalidRangeError(`response[*].rating`, e.Rating, 5, false, err)
}
if len(e.Review) < 10 {
err = goa.InvalidLengthError(`response[*].review`, e.Review, len(e.Review), 10, true, err)
}
if len(e.Review) > 300 {
err = goa.InvalidLengthError(`response[*].review`, e.Review, len(e.Review), 300, false, err)
}
if e.Sweetness < 1 {
err = goa.InvalidRangeError(`response[*].sweetness`, e.Sweetness, 1, true, err)
}
if e.Sweetness > 5 {
err = goa.InvalidRangeError(`response[*].sweetness`, e.Sweetness, 5, false, err)
}
if e.UpdatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, e.UpdatedAt); err2 != nil {
err = goa.InvalidFormatError(`response[*].updated_at`, e.UpdatedAt, goa.FormatDateTime, err2, err)
}
}
if len(e.Varietal) < 4 {
err = goa.InvalidLengthError(`response[*].varietal`, e.Varietal, len(e.Varietal), 4, true, err)
}
if len(e.Vineyard) < 2 {
err = goa.InvalidLengthError(`response[*].vineyard`, e.Vineyard, len(e.Vineyard), 2, true, err)
}
if e.Vintage < 1900 {
err = goa.InvalidRangeError(`response[*].vintage`, e.Vintage, 1900, true, err)
}
if e.Vintage > 2020 {
err = goa.InvalidRangeError(`response[*].vintage`, e.Vintage, 2020, false, err)
}
}
return
}
示例11: UnmarshalBottle
// UnmarshalBottle unmarshals and validates a raw interface{} into an instance of Bottle
func UnmarshalBottle(source interface{}, inErr error) (target *Bottle, err error) {
err = inErr
if val, ok := source.(map[string]interface{}); ok {
target = new(Bottle)
if v, ok := val["account"]; ok {
var tmp32 *Account
tmp32, err = UnmarshalAccount(v, err)
target.Account = tmp32
}
if v, ok := val["color"]; ok {
var tmp33 string
if val, ok := v.(string); ok {
tmp33 = val
} else {
err = goa.InvalidAttributeTypeError(`load.Color`, v, "string", err)
}
if err == nil {
if tmp33 != "" {
if !(tmp33 == "red" || tmp33 == "white" || tmp33 == "rose" || tmp33 == "yellow" || tmp33 == "sparkling") {
err = goa.InvalidEnumValueError(`load.Color`, tmp33, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
}
target.Color = tmp33
}
if v, ok := val["country"]; ok {
var tmp34 string
if val, ok := v.(string); ok {
tmp34 = val
} else {
err = goa.InvalidAttributeTypeError(`load.Country`, v, "string", err)
}
if err == nil {
if len(tmp34) < 2 {
err = goa.InvalidLengthError(`load.Country`, tmp34, len(tmp34), 2, true, err)
}
}
target.Country = tmp34
}
if v, ok := val["created_at"]; ok {
var tmp35 string
if val, ok := v.(string); ok {
tmp35 = val
} else {
err = goa.InvalidAttributeTypeError(`load.CreatedAt`, v, "string", err)
}
if err == nil {
if tmp35 != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp35); err2 != nil {
err = goa.InvalidFormatError(`load.CreatedAt`, tmp35, goa.FormatDateTime, err2, err)
}
}
}
target.CreatedAt = tmp35
}
if v, ok := val["href"]; ok {
var tmp36 string
if val, ok := v.(string); ok {
tmp36 = val
} else {
err = goa.InvalidAttributeTypeError(`load.Href`, v, "string", err)
}
target.Href = tmp36
}
if v, ok := val["id"]; ok {
var tmp37 int
if f, ok := v.(float64); ok {
tmp37 = int(f)
} else {
err = goa.InvalidAttributeTypeError(`load.ID`, v, "int", err)
}
target.ID = tmp37
}
if v, ok := val["name"]; ok {
var tmp38 string
if val, ok := v.(string); ok {
tmp38 = val
} else {
err = goa.InvalidAttributeTypeError(`load.Name`, v, "string", err)
}
if err == nil {
if len(tmp38) < 2 {
err = goa.InvalidLengthError(`load.Name`, tmp38, len(tmp38), 2, true, err)
}
}
target.Name = tmp38
}
if v, ok := val["rating"]; ok {
var tmp39 int
if f, ok := v.(float64); ok {
tmp39 = int(f)
} else {
err = goa.InvalidAttributeTypeError(`load.Rating`, v, "int", err)
}
if err == nil {
if tmp39 < 1 {
err = goa.InvalidRangeError(`load.Rating`, tmp39, 1, true, err)
}
if tmp39 > 5 {
//.........这里部分代码省略.........
示例12: MarshalBottleFull
// MarshalBottleFull validates and renders an instance of Bottle into a interface{}
// using view "full".
func MarshalBottleFull(source *Bottle, inErr error) (target map[string]interface{}, err error) {
err = inErr
if source.Color != "" {
if !(source.Color == "red" || source.Color == "white" || source.Color == "rose" || source.Color == "yellow" || source.Color == "sparkling") {
err = goa.InvalidEnumValueError(`.color`, source.Color, []interface{}{"red", "white", "rose", "yellow", "sparkling"}, err)
}
}
if len(source.Country) < 2 {
err = goa.InvalidLengthError(`.country`, source.Country, len(source.Country), 2, true, err)
}
if source.CreatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, source.CreatedAt); err2 != nil {
err = goa.InvalidFormatError(`.created_at`, source.CreatedAt, goa.FormatDateTime, err2, err)
}
}
if len(source.Name) < 2 {
err = goa.InvalidLengthError(`.name`, source.Name, len(source.Name), 2, true, err)
}
if source.Rating < 1 {
err = goa.InvalidRangeError(`.rating`, source.Rating, 1, true, err)
}
if source.Rating > 5 {
err = goa.InvalidRangeError(`.rating`, source.Rating, 5, false, err)
}
if len(source.Review) < 10 {
err = goa.InvalidLengthError(`.review`, source.Review, len(source.Review), 10, true, err)
}
if len(source.Review) > 300 {
err = goa.InvalidLengthError(`.review`, source.Review, len(source.Review), 300, false, err)
}
if source.Sweetness < 1 {
err = goa.InvalidRangeError(`.sweetness`, source.Sweetness, 1, true, err)
}
if source.Sweetness > 5 {
err = goa.InvalidRangeError(`.sweetness`, source.Sweetness, 5, false, err)
}
if source.UpdatedAt != "" {
if err2 := goa.ValidateFormat(goa.FormatDateTime, source.UpdatedAt); err2 != nil {
err = goa.InvalidFormatError(`.updated_at`, source.UpdatedAt, goa.FormatDateTime, err2, err)
}
}
if len(source.Varietal) < 4 {
err = goa.InvalidLengthError(`.varietal`, source.Varietal, len(source.Varietal), 4, true, err)
}
if len(source.Vineyard) < 2 {
err = goa.InvalidLengthError(`.vineyard`, source.Vineyard, len(source.Vineyard), 2, true, err)
}
if source.Vintage < 1900 {
err = goa.InvalidRangeError(`.vintage`, source.Vintage, 1900, true, err)
}
if source.Vintage > 2020 {
err = goa.InvalidRangeError(`.vintage`, source.Vintage, 2020, false, err)
}
tmp30 := map[string]interface{}{
"color": source.Color,
"country": source.Country,
"created_at": source.CreatedAt,
"href": source.Href,
"id": source.ID,
"name": source.Name,
"rating": source.Rating,
"region": source.Region,
"review": source.Review,
"sweetness": source.Sweetness,
"updated_at": source.UpdatedAt,
"varietal": source.Varietal,
"vineyard": source.Vineyard,
"vintage": source.Vintage,
}
if source.Account != nil {
tmp30["account"], err = MarshalAccount(source.Account, err)
}
target = tmp30
if err == nil {
links := make(map[string]interface{})
links["account"], err = MarshalAccountLink(source.Account, err)
target["links"] = links
}
return
}