func getFormationMiddleware(c martini.Context, app *ct.App, params martini.Params, repo *FormationRepo, r ResponseHelper) { formation, err := repo.Get(app.ID, params["releases_id"]) if err != nil { r.Error(err) return } c.Map(formation) }
func getResourceMiddleware(c martini.Context, params martini.Params, repo *ResourceRepo, r ResponseHelper) { resource, err := repo.Get(params["resources_id"]) if err != nil { r.Error(err) return } c.Map(resource) }
func resourceServerMiddleware(c martini.Context, p *ct.Provider, dc resource.DiscoverdClient, r ResponseHelper) { server, err := resource.NewServerWithDiscoverd(p.URL, dc) if err != nil { r.Error(err) return } c.Map(server) c.Next() server.Close() }
func getRouteMiddleware(app *ct.App, c martini.Context, params martini.Params, router routerc.Client, r ResponseHelper) { route, err := router.GetRoute(routeID(params)) if err == routerc.ErrNotFound || err == nil && route.ParentRef != routeParentRef(app) { err = ErrNotFound } if err != nil { r.Error(err) return } c.Map(route) }
func reqHelperMiddleware(c martini.Context, req *http.Request, w http.ResponseWriter, r render.Render, conf *Config) { rh := &reqHelper{ Render: r, ResponseWriter: w, req: req, conf: conf, } rh.session, _ = conf.SessionStore.Get(req, "session") c.MapTo(rh, (*RequestHelper)(nil)) }
// Performs validation and combines errors from validation // with errors from deserialization, then maps both the // resulting struct and the errors to the context. func validateAndMap(obj reflect.Value, context martini.Context, errors *Errors, ifacePtr ...interface{}) { context.Invoke(Validate(obj.Interface())) errors.combine(getErrors(context)) context.Map(*errors) context.Map(obj.Elem().Interface()) if len(ifacePtr) > 0 { context.MapTo(obj.Elem().Interface(), ifacePtr[0]) } }
func connectHostMiddleware(c martini.Context, params martini.Params, cl clusterClient, r ResponseHelper) { hostID, jobID := parseJobID(params["jobs_id"]) if hostID == "" { log.Printf("Unable to parse hostID from %q", params["jobs_id"]) r.Error(ErrNotFound) return } params["jobs_id"] = jobID client, err := cl.DialHost(hostID) if err != nil { r.Error(err) return } c.MapTo(client, (*cluster.Host)(nil)) c.Next() client.Close() }
func getErrors(context martini.Context) Errors { return context.Get(reflect.TypeOf(Errors{})).Interface().(Errors) }
func responseHelperHandler(c martini.Context, w http.ResponseWriter, r render.Render) { c.MapTo(&responseHelper{w, r}, (*ResponseHelper)(nil)) }