// validateProjectConfig returns a slice containing a list of any errors // found in validating the given project configuration func (as *APIServer) validateProjectConfig(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() yamlBytes, err := ioutil.ReadAll(r.Body) if err != nil { as.WriteJSON(w, http.StatusBadRequest, fmt.Sprintf("Error reading request body: %v", err)) return } project := &model.Project{} validationErr := validator.ValidationError{} if err := model.LoadProjectInto(yamlBytes, "", project); err != nil { validationErr.Message = err.Error() as.WriteJSON(w, http.StatusBadRequest, []validator.ValidationError{validationErr}) return } syntaxErrs, err := validator.CheckProjectSyntax(project) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } semanticErrs := validator.CheckProjectSemantics(project) if len(syntaxErrs)+len(semanticErrs) != 0 { as.WriteJSON(w, http.StatusBadRequest, append(syntaxErrs, semanticErrs...)) return } as.WriteJSON(w, http.StatusOK, []validator.ValidationError{}) }
// validateProjectConfig returns a slice containing a list of any errors // found in validating the given project configuration func (as *APIServer) validateProjectConfig(w http.ResponseWriter, r *http.Request) { project := &model.Project{} validationErr := validator.ValidationError{} if err := util.ReadYAMLInto(r.Body, project); err != nil { validationErr.Message = err.Error() as.WriteJSON(w, http.StatusBadRequest, []validator.ValidationError{validationErr}) return } syntaxErrs := validator.CheckProjectSyntax(project) semanticErrs := validator.CheckProjectSemantics(project) if len(syntaxErrs)+len(semanticErrs) != 0 { as.WriteJSON(w, http.StatusBadRequest, append(syntaxErrs, semanticErrs...)) return } as.WriteJSON(w, http.StatusOK, []validator.ValidationError{}) }