// UnmarshalRateBottlePayload unmarshals and validates a raw interface{} into an instance of RateBottlePayload func UnmarshalRateBottlePayload(source interface{}, inErr error) (target *RateBottlePayload, err error) { err = inErr if val, ok := source.(map[string]interface{}); ok { target = new(RateBottlePayload) if v, ok := val["rating"]; ok { var tmp12 int if f, ok := v.(float64); ok { tmp12 = int(f) } else { err = goa.InvalidAttributeTypeError(`payload.Rating`, v, "int", err) } if err == nil { if tmp12 < 1 { err = goa.InvalidRangeError(`payload.Rating`, tmp12, 1, true, err) } if tmp12 > 5 { err = goa.InvalidRangeError(`payload.Rating`, tmp12, 5, false, err) } } target.Rating = tmp12 } else { err = goa.MissingAttributeError(`payload`, "rating", err) } } else { err = goa.InvalidAttributeTypeError(`payload`, source, "dictionary", err) } return }
// NewRateBottlePayload instantiates a RateBottlePayload from a raw request body. // It validates each field and returns an error if any validation fails. func NewRateBottlePayload(raw interface{}) (*RateBottlePayload, error) { var err error var p *RateBottlePayload if val, ok := raw.(map[string]interface{}); ok { p = new(RateBottlePayload) if v, ok := val["rating"]; ok { var tmp12 int if f, ok := v.(float64); ok { tmp12 = int(f) } else { err = goa.InvalidAttributeTypeError(`payload.Rating`, v, "int", err) } if err == nil { if tmp12 < 1 { err = goa.InvalidRangeError(`payload.Rating`, tmp12, 1, true, err) } if tmp12 > 5 { err = goa.InvalidRangeError(`payload.Rating`, tmp12, 5, false, err) } } p.Rating = tmp12 } else { err = goa.MissingAttributeError(`payload`, "rating", err) } } else { err = goa.InvalidAttributeTypeError(`payload`, raw, "map[string]interface{}", err) } return p, err }
// MarshalBottleTiny validates and renders an instance of Bottle into a interface{} // using view "tiny". func MarshalBottleTiny(source *Bottle, inErr error) (target map[string]interface{}, err error) { err = inErr 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) } tmp31 := map[string]interface{}{ "href": source.Href, "id": source.ID, "name": source.Name, "rating": source.Rating, } target = tmp31 if err == nil { links := make(map[string]interface{}) links["account"], err = MarshalAccountLink(source.Account, err) target["links"] = links } return }
// 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 }
// MarshalBottle validates and renders an instance of Bottle into a interface{} // using view "default". func MarshalBottle(source *Bottle, inErr error) (target map[string]interface{}, err error) { err = inErr 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.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) } tmp29 := map[string]interface{}{ "href": source.Href, "id": source.ID, "name": source.Name, "rating": source.Rating, "varietal": source.Varietal, "vineyard": source.Vineyard, "vintage": source.Vintage, } target = tmp29 if err == nil { links := make(map[string]interface{}) links["account"], err = MarshalAccountLink(source.Account, err) target["links"] = links } return }
// 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 }
// 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) } tmp52 := map[string]interface{}{ "color": mt.Color, "country": mt.Country, "created_at": mt.CreatedAt, "href": mt.Href, "id": mt.ID, "name": mt.Name, "rating": mt.Rating, "region": mt.Region, "review": mt.Review, "sweetness": mt.Sweetness, "updated_at": mt.UpdatedAt, "varietal": mt.Varietal, "vineyard": mt.Vineyard, "vintage": mt.Vintage, } if mt.Account != nil { if mt.Account.CreatedAt != "" { if err2 := goa.ValidateFormat(goa.FormatDateTime, mt.Account.CreatedAt); err2 != nil { err = goa.InvalidFormatError(`full view.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(`full view.Account.created_by`, mt.Account.CreatedBy, goa.FormatEmail, err2, err) } } tmp53 := map[string]interface{}{ "created_at": mt.Account.CreatedAt, "created_by": mt.Account.CreatedBy, "href": mt.Account.Href, "id": mt.Account.ID, "name": mt.Account.Name, } tmp52["account"] = tmp53 } res = tmp52 if err == nil { links := make(map[string]interface{}) tmp51 := map[string]interface{}{ "href": mt.Account.Href, "id": mt.Account.ID, "name": mt.Account.Name, } links["account"] = tmp51 res["links"] = links } } if view == BottleTinyView { if len(mt.Name) < 2 { err = goa.InvalidLengthError(`tiny view.name`, mt.Name, 2, true, err) } if mt.Rating < 1 { err = goa.InvalidRangeError(`tiny view.rating`, mt.Rating, 1, true, err) } if mt.Rating > 5 { err = goa.InvalidRangeError(`tiny view.rating`, mt.Rating, 5, false, err) } tmp55 := map[string]interface{}{ "href": mt.Href, "id": mt.ID, "name": mt.Name, "rating": mt.Rating, } res = tmp55 if err == nil { links := make(map[string]interface{}) tmp54 := map[string]interface{}{ "href": mt.Account.Href, "id": mt.Account.ID, "name": mt.Account.Name, } links["account"] = tmp54 res["links"] = links } } return res, err }
// 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) } if err == nil { if len(tmp36) < 2 { err = goa.InvalidLengthError(`.Country`, tmp36, 2, true, err) } } res.Country = tmp36 } if v, ok := val["created_at"]; ok { var tmp37 string if val, ok := v.(string); ok { tmp37 = val } else { err = goa.InvalidAttributeTypeError(`.CreatedAt`, v, "string", err) } if err == nil { if tmp37 != "" { if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp37); err2 != nil { err = goa.InvalidFormatError(`.CreatedAt`, tmp37, goa.FormatDateTime, err2, err) } } } res.CreatedAt = tmp37 } if v, ok := val["href"]; ok { var tmp38 string if val, ok := v.(string); ok { tmp38 = val } else { err = goa.InvalidAttributeTypeError(`.Href`, v, "string", err) } res.Href = tmp38 } if v, ok := val["id"]; ok { var tmp39 int if f, ok := v.(float64); ok { tmp39 = int(f) } else { err = goa.InvalidAttributeTypeError(`.ID`, v, "int", err) } res.ID = tmp39 } if v, ok := val["name"]; ok { var tmp40 string if val, ok := v.(string); ok { tmp40 = val } else { err = goa.InvalidAttributeTypeError(`.Name`, v, "string", err) } if err == nil { if len(tmp40) < 2 { err = goa.InvalidLengthError(`.Name`, tmp40, 2, true, err) } } res.Name = tmp40 } if v, ok := val["rating"]; ok { var tmp41 int if f, ok := v.(float64); ok { tmp41 = int(f) } else { err = goa.InvalidAttributeTypeError(`.Rating`, v, "int", err) } if err == nil { if tmp41 < 1 { err = goa.InvalidRangeError(`.Rating`, tmp41, 1, true, err) } if tmp41 > 5 { err = goa.InvalidRangeError(`.Rating`, tmp41, 5, false, err) } } res.Rating = tmp41 } if v, ok := val["region"]; ok { var tmp42 string if val, ok := v.(string); ok { tmp42 = val } else { err = goa.InvalidAttributeTypeError(`.Region`, v, "string", err) } res.Region = tmp42 } if v, ok := val["review"]; ok { var tmp43 string if val, ok := v.(string); ok { tmp43 = val } else { err = goa.InvalidAttributeTypeError(`.Review`, v, "string", err) } if err == nil { if len(tmp43) < 10 { err = goa.InvalidLengthError(`.Review`, tmp43, 10, true, err) } if len(tmp43) > 300 { err = goa.InvalidLengthError(`.Review`, tmp43, 300, false, err) } } res.Review = tmp43 } if v, ok := val["sweetness"]; ok { var tmp44 int if f, ok := v.(float64); ok { tmp44 = int(f) } else { err = goa.InvalidAttributeTypeError(`.Sweetness`, v, "int", err) } if err == nil { if tmp44 < 1 { err = goa.InvalidRangeError(`.Sweetness`, tmp44, 1, true, err) } if tmp44 > 5 { err = goa.InvalidRangeError(`.Sweetness`, tmp44, 5, false, err) } } res.Sweetness = tmp44 } if v, ok := val["updated_at"]; ok { var tmp45 string if val, ok := v.(string); ok { tmp45 = val } else { err = goa.InvalidAttributeTypeError(`.UpdatedAt`, v, "string", err) } if err == nil { if tmp45 != "" { if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp45); err2 != nil { err = goa.InvalidFormatError(`.UpdatedAt`, tmp45, goa.FormatDateTime, err2, err) } } } res.UpdatedAt = tmp45 } if v, ok := val["varietal"]; ok { var tmp46 string if val, ok := v.(string); ok { tmp46 = val } else { err = goa.InvalidAttributeTypeError(`.Varietal`, v, "string", err) } if err == nil { if len(tmp46) < 4 { err = goa.InvalidLengthError(`.Varietal`, tmp46, 4, true, err) } } res.Varietal = tmp46 } if v, ok := val["vineyard"]; ok { var tmp47 string if val, ok := v.(string); ok { tmp47 = val } else { err = goa.InvalidAttributeTypeError(`.Vineyard`, v, "string", err) } if err == nil { if len(tmp47) < 2 { err = goa.InvalidLengthError(`.Vineyard`, tmp47, 2, true, err) } } res.Vineyard = tmp47 } if v, ok := val["vintage"]; ok { var tmp48 int if f, ok := v.(float64); ok { tmp48 = int(f) } else { err = goa.InvalidAttributeTypeError(`.Vintage`, v, "int", err) } if err == nil { if tmp48 < 1900 { err = goa.InvalidRangeError(`.Vintage`, tmp48, 1900, true, err) } if tmp48 > 2020 { err = goa.InvalidRangeError(`.Vintage`, tmp48, 2020, false, err) } } res.Vintage = tmp48 } } else { err = goa.InvalidAttributeTypeError(``, raw, "map[string]interface{}", err) } return res, err }
// Dump produces raw data from an instance of BottleCollection running all the // validations. See LoadBottleCollection for the definition of raw data. func (mt BottleCollection) Dump(view BottleCollectionViewEnum) ([]map[string]interface{}, error) { var err error var res []map[string]interface{} if view == BottleCollectionDefaultView { res = make([]map[string]interface{}, len(mt)) for i, tmp77 := range mt { if len(tmp77.Name) < 2 { err = goa.InvalidLengthError(`default view[*].name`, tmp77.Name, 2, true, err) } if tmp77.Rating < 1 { err = goa.InvalidRangeError(`default view[*].rating`, tmp77.Rating, 1, true, err) } if tmp77.Rating > 5 { err = goa.InvalidRangeError(`default view[*].rating`, tmp77.Rating, 5, false, err) } if len(tmp77.Varietal) < 4 { err = goa.InvalidLengthError(`default view[*].varietal`, tmp77.Varietal, 4, true, err) } if len(tmp77.Vineyard) < 2 { err = goa.InvalidLengthError(`default view[*].vineyard`, tmp77.Vineyard, 2, true, err) } if tmp77.Vintage < 1900 { err = goa.InvalidRangeError(`default view[*].vintage`, tmp77.Vintage, 1900, true, err) } if tmp77.Vintage > 2020 { err = goa.InvalidRangeError(`default view[*].vintage`, tmp77.Vintage, 2020, false, err) } tmp79 := map[string]interface{}{ "href": tmp77.Href, "id": tmp77.ID, "name": tmp77.Name, "rating": tmp77.Rating, "varietal": tmp77.Varietal, "vineyard": tmp77.Vineyard, "vintage": tmp77.Vintage, } res[i] = tmp79 if err == nil { links := make(map[string]interface{}) tmp78 := map[string]interface{}{ "href": tmp77.Account.Href, "id": tmp77.Account.ID, "name": tmp77.Account.Name, } links["account"] = tmp78 res[i]["links"] = links } } } if view == BottleCollectionTinyView { res = make([]map[string]interface{}, len(mt)) for i, tmp80 := range mt { if len(tmp80.Name) < 2 { err = goa.InvalidLengthError(`tiny view[*].name`, tmp80.Name, 2, true, err) } if tmp80.Rating < 1 { err = goa.InvalidRangeError(`tiny view[*].rating`, tmp80.Rating, 1, true, err) } if tmp80.Rating > 5 { err = goa.InvalidRangeError(`tiny view[*].rating`, tmp80.Rating, 5, false, err) } tmp82 := map[string]interface{}{ "href": tmp80.Href, "id": tmp80.ID, "name": tmp80.Name, "rating": tmp80.Rating, } res[i] = tmp82 if err == nil { links := make(map[string]interface{}) tmp81 := map[string]interface{}{ "href": tmp80.Account.Href, "id": tmp80.Account.ID, "name": tmp80.Account.Name, } links["account"] = tmp81 res[i]["links"] = links } } } return res, err }
}) }) var _ = Describe("InvalidRangeError", func() { var valErr, err error ctx := "ctx" target := "target" value := 42 min := true BeforeEach(func() { err = nil }) JustBeforeEach(func() { valErr = goa.InvalidRangeError(ctx, target, value, min, 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.ErrInvalidRange)))) Ω(tErr.Mesg).Should(ContainSubstring(ctx)) Ω(tErr.Mesg).Should(ContainSubstring("greater or equal")) Ω(tErr.Mesg).Should(ContainSubstring(fmt.Sprintf("%#v", value))) Ω(tErr.Mesg).Should(ContainSubstring(target)) })
// 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 { if len(tmp19) < 4 { err = goa.InvalidLengthError(`payload.Varietal`, tmp19, len(tmp19), 4, true, err) } } target.Varietal = tmp19 } if v, ok := val["vineyard"]; ok { var tmp20 string if val, ok := v.(string); ok { tmp20 = val } else { err = goa.InvalidAttributeTypeError(`payload.Vineyard`, v, "string", err) } if err == nil { if len(tmp20) < 2 { err = goa.InvalidLengthError(`payload.Vineyard`, tmp20, len(tmp20), 2, true, err) } } target.Vineyard = tmp20 } if v, ok := val["vintage"]; ok { var tmp21 int if f, ok := v.(float64); ok { tmp21 = int(f) } else { err = goa.InvalidAttributeTypeError(`payload.Vintage`, v, "int", err) } if err == nil { if tmp21 < 1900 { err = goa.InvalidRangeError(`payload.Vintage`, tmp21, 1900, true, err) } if tmp21 > 2020 { err = goa.InvalidRangeError(`payload.Vintage`, tmp21, 2020, false, err) } } target.Vintage = tmp21 } } else { err = goa.InvalidAttributeTypeError(`payload`, source, "dictionary", err) } return }
// 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 }
// 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 { err = goa.InvalidRangeError(`load.Rating`, tmp39, 5, false, err) } } target.Rating = tmp39 } if v, ok := val["region"]; ok { var tmp40 string if val, ok := v.(string); ok { tmp40 = val } else { err = goa.InvalidAttributeTypeError(`load.Region`, v, "string", err) } target.Region = tmp40 } if v, ok := val["review"]; ok { var tmp41 string if val, ok := v.(string); ok { tmp41 = val } else { err = goa.InvalidAttributeTypeError(`load.Review`, v, "string", err) } if err == nil { if len(tmp41) < 10 { err = goa.InvalidLengthError(`load.Review`, tmp41, len(tmp41), 10, true, err) } if len(tmp41) > 300 { err = goa.InvalidLengthError(`load.Review`, tmp41, len(tmp41), 300, false, err) } } target.Review = tmp41 } if v, ok := val["sweetness"]; ok { var tmp42 int if f, ok := v.(float64); ok { tmp42 = int(f) } else { err = goa.InvalidAttributeTypeError(`load.Sweetness`, v, "int", err) } if err == nil { if tmp42 < 1 { err = goa.InvalidRangeError(`load.Sweetness`, tmp42, 1, true, err) } if tmp42 > 5 { err = goa.InvalidRangeError(`load.Sweetness`, tmp42, 5, false, err) } } target.Sweetness = tmp42 } if v, ok := val["updated_at"]; ok { var tmp43 string if val, ok := v.(string); ok { tmp43 = val } else { err = goa.InvalidAttributeTypeError(`load.UpdatedAt`, v, "string", err) } if err == nil { if tmp43 != "" { if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp43); err2 != nil { err = goa.InvalidFormatError(`load.UpdatedAt`, tmp43, goa.FormatDateTime, err2, err) } } } target.UpdatedAt = tmp43 } if v, ok := val["varietal"]; ok { var tmp44 string if val, ok := v.(string); ok { tmp44 = val } else { err = goa.InvalidAttributeTypeError(`load.Varietal`, v, "string", err) } if err == nil { if len(tmp44) < 4 { err = goa.InvalidLengthError(`load.Varietal`, tmp44, len(tmp44), 4, true, err) } } target.Varietal = tmp44 } if v, ok := val["vineyard"]; ok { var tmp45 string if val, ok := v.(string); ok { tmp45 = val } else { err = goa.InvalidAttributeTypeError(`load.Vineyard`, v, "string", err) } if err == nil { if len(tmp45) < 2 { err = goa.InvalidLengthError(`load.Vineyard`, tmp45, len(tmp45), 2, true, err) } } target.Vineyard = tmp45 } if v, ok := val["vintage"]; ok { var tmp46 int if f, ok := v.(float64); ok { tmp46 = int(f) } else { err = goa.InvalidAttributeTypeError(`load.Vintage`, v, "int", err) } if err == nil { if tmp46 < 1900 { err = goa.InvalidRangeError(`load.Vintage`, tmp46, 1900, true, err) } if tmp46 > 2020 { err = goa.InvalidRangeError(`load.Vintage`, tmp46, 2020, false, err) } } target.Vintage = tmp46 } } else { err = goa.InvalidAttributeTypeError(`load`, source, "dictionary", err) } return }
// 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 }
// 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 }
// 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 { tmp64 = val } else { err = goa.InvalidAttributeTypeError(`[*].Country`, v, "string", err) } if err == nil { if len(tmp64) < 2 { err = goa.InvalidLengthError(`[*].Country`, tmp64, 2, true, err) } } tmp56.Country = tmp64 } if v, ok := val["created_at"]; ok { var tmp65 string if val, ok := v.(string); ok { tmp65 = val } else { err = goa.InvalidAttributeTypeError(`[*].CreatedAt`, v, "string", err) } if err == nil { if tmp65 != "" { if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp65); err2 != nil { err = goa.InvalidFormatError(`[*].CreatedAt`, tmp65, goa.FormatDateTime, err2, err) } } } tmp56.CreatedAt = tmp65 } if v, ok := val["href"]; ok { var tmp66 string if val, ok := v.(string); ok { tmp66 = val } else { err = goa.InvalidAttributeTypeError(`[*].Href`, v, "string", err) } tmp56.Href = tmp66 } if v, ok := val["id"]; ok { var tmp67 int if f, ok := v.(float64); ok { tmp67 = int(f) } else { err = goa.InvalidAttributeTypeError(`[*].ID`, v, "int", err) } tmp56.ID = tmp67 } if v, ok := val["name"]; ok { var tmp68 string if val, ok := v.(string); ok { tmp68 = val } else { err = goa.InvalidAttributeTypeError(`[*].Name`, v, "string", err) } if err == nil { if len(tmp68) < 2 { err = goa.InvalidLengthError(`[*].Name`, tmp68, 2, true, err) } } tmp56.Name = tmp68 } if v, ok := val["rating"]; ok { var tmp69 int if f, ok := v.(float64); ok { tmp69 = int(f) } else { err = goa.InvalidAttributeTypeError(`[*].Rating`, v, "int", err) } if err == nil { if tmp69 < 1 { err = goa.InvalidRangeError(`[*].Rating`, tmp69, 1, true, err) } if tmp69 > 5 { err = goa.InvalidRangeError(`[*].Rating`, tmp69, 5, false, err) } } tmp56.Rating = tmp69 } if v, ok := val["region"]; ok { var tmp70 string if val, ok := v.(string); ok { tmp70 = val } else { err = goa.InvalidAttributeTypeError(`[*].Region`, v, "string", err) } tmp56.Region = tmp70 } if v, ok := val["review"]; ok { var tmp71 string if val, ok := v.(string); ok { tmp71 = val } else { err = goa.InvalidAttributeTypeError(`[*].Review`, v, "string", err) } if err == nil { if len(tmp71) < 10 { err = goa.InvalidLengthError(`[*].Review`, tmp71, 10, true, err) } if len(tmp71) > 300 { err = goa.InvalidLengthError(`[*].Review`, tmp71, 300, false, err) } } tmp56.Review = tmp71 } if v, ok := val["sweetness"]; ok { var tmp72 int if f, ok := v.(float64); ok { tmp72 = int(f) } else { err = goa.InvalidAttributeTypeError(`[*].Sweetness`, v, "int", err) } if err == nil { if tmp72 < 1 { err = goa.InvalidRangeError(`[*].Sweetness`, tmp72, 1, true, err) } if tmp72 > 5 { err = goa.InvalidRangeError(`[*].Sweetness`, tmp72, 5, false, err) } } tmp56.Sweetness = tmp72 } if v, ok := val["updated_at"]; ok { var tmp73 string if val, ok := v.(string); ok { tmp73 = val } else { err = goa.InvalidAttributeTypeError(`[*].UpdatedAt`, v, "string", err) } if err == nil { if tmp73 != "" { if err2 := goa.ValidateFormat(goa.FormatDateTime, tmp73); err2 != nil { err = goa.InvalidFormatError(`[*].UpdatedAt`, tmp73, goa.FormatDateTime, err2, err) } } } tmp56.UpdatedAt = tmp73 } if v, ok := val["varietal"]; ok { var tmp74 string if val, ok := v.(string); ok { tmp74 = val } else { err = goa.InvalidAttributeTypeError(`[*].Varietal`, v, "string", err) } if err == nil { if len(tmp74) < 4 { err = goa.InvalidLengthError(`[*].Varietal`, tmp74, 4, true, err) } } tmp56.Varietal = tmp74 } if v, ok := val["vineyard"]; ok { var tmp75 string if val, ok := v.(string); ok { tmp75 = val } else { err = goa.InvalidAttributeTypeError(`[*].Vineyard`, v, "string", err) } if err == nil { if len(tmp75) < 2 { err = goa.InvalidLengthError(`[*].Vineyard`, tmp75, 2, true, err) } } tmp56.Vineyard = tmp75 } if v, ok := val["vintage"]; ok { var tmp76 int if f, ok := v.(float64); ok { tmp76 = int(f) } else { err = goa.InvalidAttributeTypeError(`[*].Vintage`, v, "int", err) } if err == nil { if tmp76 < 1900 { err = goa.InvalidRangeError(`[*].Vintage`, tmp76, 1900, true, err) } if tmp76 > 2020 { err = goa.InvalidRangeError(`[*].Vintage`, tmp76, 2020, false, err) } } tmp56.Vintage = tmp76 } } else { err = goa.InvalidAttributeTypeError(`[*]`, v, "map[string]interface{}", err) } res[i] = tmp56 } } else { err = goa.InvalidAttributeTypeError(``, raw, "[]interface{}", err) } return res, err }
// 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 } else { err = goa.InvalidAttributeTypeError(`payload.Varietal`, v, "string", err) } if err == nil { if len(tmp9) < 4 { err = goa.InvalidLengthError(`payload.Varietal`, tmp9, len(tmp9), 4, true, err) } } target.Varietal = tmp9 } else { err = goa.MissingAttributeError(`payload`, "varietal", err) } if v, ok := val["vineyard"]; ok { var tmp10 string if val, ok := v.(string); ok { tmp10 = val } else { err = goa.InvalidAttributeTypeError(`payload.Vineyard`, v, "string", err) } if err == nil { if len(tmp10) < 2 { err = goa.InvalidLengthError(`payload.Vineyard`, tmp10, len(tmp10), 2, true, err) } } target.Vineyard = tmp10 } else { err = goa.MissingAttributeError(`payload`, "vineyard", err) } if v, ok := val["vintage"]; ok { var tmp11 int if f, ok := v.(float64); ok { tmp11 = int(f) } else { err = goa.InvalidAttributeTypeError(`payload.Vintage`, v, "int", err) } if err == nil { if tmp11 < 1900 { err = goa.InvalidRangeError(`payload.Vintage`, tmp11, 1900, true, err) } if tmp11 > 2020 { err = goa.InvalidRangeError(`payload.Vintage`, tmp11, 2020, false, err) } } target.Vintage = tmp11 } else { err = goa.MissingAttributeError(`payload`, "vintage", err) } } else { err = goa.InvalidAttributeTypeError(`payload`, source, "dictionary", err) } return }