Merge pull request #2704 from shykes/fix-auto-pull

Fix the brittle errorstring-to-httperror recognition code
Upstream-commit: 84ed18827a5903c7df61146a8fd716e8245830e7
Component: engine
This commit is contained in:
Guillaume J. Charmes
2013-11-14 16:15:46 -08:00

View File

@ -61,7 +61,10 @@ func parseMultipartForm(r *http.Request) error {
func httpError(w http.ResponseWriter, err error) {
statusCode := http.StatusInternalServerError
if strings.HasPrefix(err.Error(), "No such") {
// FIXME: this is brittle and should not be necessary.
// If we need to differentiate between different possible error types, we should
// create appropriate error types with clearly defined meaning.
if strings.Contains(err.Error(), "No such") {
statusCode = http.StatusNotFound
} else if strings.HasPrefix(err.Error(), "Bad parameter") {
statusCode = http.StatusBadRequest