示例#1
0
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)
}
示例#2
0
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)
}
示例#3
0
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()
}
示例#4
0
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)
}
示例#5
0
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))
}
示例#6
0
// 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])
	}
}
示例#7
0
文件: jobs.go 项目: snormore/flynn
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()
}
示例#8
0
func getErrors(context martini.Context) Errors {
	return context.Get(reflect.TypeOf(Errors{})).Interface().(Errors)
}
示例#9
0
func responseHelperHandler(c martini.Context, w http.ResponseWriter, r render.Render) {
	c.MapTo(&responseHelper{w, r}, (*ResponseHelper)(nil))
}