func handleHistory(s api.FluxService) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { inst := getInstanceID(r) service := mux.Vars(r)["service"] spec, err := flux.ParseServiceSpec(service) if err != nil { w.WriteHeader(http.StatusBadRequest) fmt.Fprintf(w, errors.Wrapf(err, "parsing service spec %q", spec).Error()) return } h, err := s.History(inst, spec) if err != nil { w.WriteHeader(http.StatusInternalServerError) fmt.Fprintf(w, err.Error()) return } w.Header().Set("Content-Type", "application/json; charset=utf-8") if err := json.NewEncoder(w).Encode(h); err != nil { w.WriteHeader(http.StatusInternalServerError) fmt.Fprintf(w, err.Error()) return } }) }