// MountAccountController "mounts" a Account resource controller on the given service. func MountAccountController(service goa.Service, ctrl AccountController) { router := service.HTTPHandler().(*httprouter.Router) var h goa.Handler h = func(c *goa.Context) error { ctx, err := NewCreateAccountContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Create(ctx) } router.Handle("POST", "/cellar/accounts", goa.NewHTTPRouterHandle(service, "Account", "Create", h)) service.Info("mount", "ctrl", "Account", "action", "Create", "route", "POST /cellar/accounts") h = func(c *goa.Context) error { ctx, err := NewDeleteAccountContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Delete(ctx) } router.Handle("DELETE", "/cellar/accounts/:accountID", goa.NewHTTPRouterHandle(service, "Account", "Delete", h)) service.Info("mount", "ctrl", "Account", "action", "Delete", "route", "DELETE /cellar/accounts/:accountID") h = func(c *goa.Context) error { ctx, err := NewShowAccountContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Show(ctx) } router.Handle("GET", "/cellar/accounts/:accountID", goa.NewHTTPRouterHandle(service, "Account", "Show", h)) service.Info("mount", "ctrl", "Account", "action", "Show", "route", "GET /cellar/accounts/:accountID") h = func(c *goa.Context) error { ctx, err := NewUpdateAccountContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Update(ctx) } router.Handle("PUT", "/cellar/accounts/:accountID", goa.NewHTTPRouterHandle(service, "Account", "Update", h)) service.Info("mount", "ctrl", "Account", "action", "Update", "route", "PUT /cellar/accounts/:accountID") }
// MountSeriesController "mounts" a Series resource controller on the given service. func MountSeriesController(service goa.Service, ctrl SeriesController) { router := service.HTTPHandler().(*httprouter.Router) var h goa.Handler h = func(c *goa.Context) error { ctx, err := NewCreateSeriesContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Create(ctx) } router.Handle("POST", "/congo/accounts/:accountID/series", goa.NewHTTPRouterHandle(service, "Series", "Create", h)) service.Info("mount", "ctrl", "Series", "action", "Create", "route", "POST /congo/accounts/:accountID/series") h = func(c *goa.Context) error { ctx, err := NewListSeriesContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.List(ctx) } router.Handle("GET", "/congo/accounts/:accountID/series", goa.NewHTTPRouterHandle(service, "Series", "List", h)) service.Info("mount", "ctrl", "Series", "action", "List", "route", "GET /congo/accounts/:accountID/series") h = func(c *goa.Context) error { ctx, err := NewShowSeriesContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Show(ctx) } router.Handle("GET", "/congo/accounts/:accountID/series/:seriesID", goa.NewHTTPRouterHandle(service, "Series", "Show", h)) service.Info("mount", "ctrl", "Series", "action", "Show", "route", "GET /congo/accounts/:accountID/series/:seriesID") h = func(c *goa.Context) error { ctx, err := NewUpdateSeriesContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Update(ctx) } router.Handle("PATCH", "/congo/accounts/:accountID/series/:seriesID", goa.NewHTTPRouterHandle(service, "Series", "Update", h)) service.Info("mount", "ctrl", "Series", "action", "Update", "route", "PATCH /congo/accounts/:accountID/series/:seriesID") }
// MountBottleController "mounts" a Bottle resource controller on the given service. func MountBottleController(service goa.Service, ctrl BottleController) { var h goa.Handler mux := service.ServeMux() h = func(c *goa.Context) error { ctx, err := NewCreateBottleContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Create(ctx) } mux.Handle("POST", "/cellar/accounts/:accountID/bottles", ctrl.HandleFunc("Create", h)) service.Info("mount", "ctrl", "Bottle", "action", "Create", "route", "POST /cellar/accounts/:accountID/bottles") h = func(c *goa.Context) error { ctx, err := NewDeleteBottleContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Delete(ctx) } mux.Handle("DELETE", "/cellar/accounts/:accountID/bottles/:bottleID", ctrl.HandleFunc("Delete", h)) service.Info("mount", "ctrl", "Bottle", "action", "Delete", "route", "DELETE /cellar/accounts/:accountID/bottles/:bottleID") h = func(c *goa.Context) error { ctx, err := NewListBottleContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.List(ctx) } mux.Handle("GET", "/cellar/accounts/:accountID/bottles", ctrl.HandleFunc("List", h)) service.Info("mount", "ctrl", "Bottle", "action", "List", "route", "GET /cellar/accounts/:accountID/bottles") h = func(c *goa.Context) error { ctx, err := NewRateBottleContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Rate(ctx) } mux.Handle("PUT", "/cellar/accounts/:accountID/bottles/:bottleID/actions/rate", ctrl.HandleFunc("Rate", h)) service.Info("mount", "ctrl", "Bottle", "action", "Rate", "route", "PUT /cellar/accounts/:accountID/bottles/:bottleID/actions/rate") h = func(c *goa.Context) error { ctx, err := NewShowBottleContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Show(ctx) } mux.Handle("GET", "/cellar/accounts/:accountID/bottles/:bottleID", ctrl.HandleFunc("Show", h)) service.Info("mount", "ctrl", "Bottle", "action", "Show", "route", "GET /cellar/accounts/:accountID/bottles/:bottleID") h = func(c *goa.Context) error { ctx, err := NewUpdateBottleContext(c) if err != nil { return goa.NewBadRequestError(err) } return ctrl.Update(ctx) } mux.Handle("PATCH", "/cellar/accounts/:accountID/bottles/:bottleID", ctrl.HandleFunc("Update", h)) service.Info("mount", "ctrl", "Bottle", "action", "Update", "route", "PATCH /cellar/accounts/:accountID/bottles/:bottleID") }
Ω(data[1]["title"]).Should(Equal("generic")) Ω(data[1]).Should(HaveKey("msg")) Ω(data[1]["msg"]).Should(Equal(err2.Error())) }) }) var _ = Describe("BadRequestError", func() { var rawErr error var badReq *goa.BadRequestError BeforeEach(func() { rawErr = errors.New("raw error") }) JustBeforeEach(func() { badReq = goa.NewBadRequestError(rawErr) }) It("builds a bad request error that reports the inner error message", func() { Ω(badReq).ShouldNot(BeNil()) Ω(badReq.Error()).Should(Equal(rawErr.Error())) }) }) var _ = Describe("InvalidParamTypeError", func() { var valErr, err error name := "param" val := 42 expected := "43" BeforeEach(func() {