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

Fix the brittle errorstring-to-httperror recognition code
This commit is contained in:
Guillaume J. Charmes 2013-11-14 16:15:46 -08:00
commit 84ed18827a
1 changed files with 4 additions and 1 deletions

5
api.go
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