// NewListBottleContext parses the incoming request URL and body, performs validations and creates the // context used by the bottle controller list action. func NewListBottleContext(c *goa.Context) (*ListBottleContext, error) { var err error ctx := ListBottleContext{Context: c} rawAccountID := c.Get("accountID") if rawAccountID != "" { if accountID, err2 := strconv.Atoi(rawAccountID); err2 == nil { ctx.AccountID = int(accountID) } else { err = goa.InvalidParamTypeError("accountID", rawAccountID, "integer", err) } } rawYears := c.Get("years") if rawYears != "" { elemsYears := strings.Split(rawYears, ",") elemsYears2 := make([]int, len(elemsYears)) for i, rawElem := range elemsYears { if elem, err2 := strconv.Atoi(rawElem); err2 == nil { elemsYears2[i] = int(elem) } else { err = goa.InvalidParamTypeError("elem", rawElem, "integer", err) } } ctx.Years = elemsYears2 } return &ctx, err }
// NewUpdateBottleContext parses the incoming request URL and body, performs validations and creates the // context used by the bottle controller update action. func NewUpdateBottleContext(c *goa.Context) (*UpdateBottleContext, error) { var err error ctx := UpdateBottleContext{Context: c} rawAccountID := c.Get("accountID") if rawAccountID != "" { if accountID, err2 := strconv.Atoi(rawAccountID); err2 == nil { ctx.AccountID = int(accountID) } else { err = goa.InvalidParamTypeError("accountID", rawAccountID, "integer", err) } } rawBottleID := c.Get("bottleID") if rawBottleID != "" { if bottleID, err2 := strconv.Atoi(rawBottleID); err2 == nil { ctx.BottleID = int(bottleID) } else { err = goa.InvalidParamTypeError("bottleID", rawBottleID, "integer", err) } } return &ctx, err }
// NewMultiplyOperandsContext parses the incoming request URL and body, performs validations and creates the // context used by the operands controller multiply action. func NewMultiplyOperandsContext(ctx context.Context) (*MultiplyOperandsContext, error) { var err error req := goa.Request(ctx) rctx := MultiplyOperandsContext{Context: ctx, ResponseData: goa.Response(ctx), RequestData: req} rawLeft := req.Params.Get("left") if rawLeft != "" { if left, err2 := strconv.Atoi(rawLeft); err2 == nil { rctx.Left = left } else { err = goa.InvalidParamTypeError("left", rawLeft, "integer", err) } } rawRight := req.Params.Get("right") if rawRight != "" { if right, err2 := strconv.Atoi(rawRight); err2 == nil { rctx.Right = right } else { err = goa.InvalidParamTypeError("right", rawRight, "integer", err) } } return &rctx, err }
// NewShowBottleContext parses the incoming request URL and body, performs validations and creates the // context used by the bottle controller show action. func NewShowBottleContext(ctx context.Context, service *goa.Service) (*ShowBottleContext, error) { var err error resp := goa.ContextResponse(ctx) resp.Service = service req := goa.ContextRequest(ctx) rctx := ShowBottleContext{Context: ctx, ResponseData: resp, RequestData: req} paramID := req.Params["id"] if len(paramID) > 0 { rawID := paramID[0] if id, err2 := strconv.Atoi(rawID); err2 == nil { rctx.ID = id } else { err = goa.MergeErrors(err, goa.InvalidParamTypeError("id", rawID, "integer")) } } return &rctx, err }
It("initializes the Metadata field lazily", func() { Ω(func() { gerr.Meta(name, val) }).ShouldNot(Panic()) Ω(gerr.MetaValues).Should(HaveKeyWithValue(name, val)) }) }) }) var _ = Describe("InvalidParamTypeError", func() { var valErr error name := "param" val := 42 expected := "43" JustBeforeEach(func() { valErr = goa.InvalidParamTypeError(name, val, expected) }) It("creates a http error", func() { Ω(valErr).ShouldNot(BeNil()) Ω(valErr).Should(BeAssignableToTypeOf(&goa.Error{})) err := valErr.(*goa.Error) Ω(err.Detail).Should(ContainSubstring(name)) Ω(err.Detail).Should(ContainSubstring("%d", val)) Ω(err.Detail).Should(ContainSubstring(expected)) }) }) var _ = Describe("MissingParaerror", func() { var valErr error name := "param"