now returing bad request if no file to convert

This commit is contained in:
Julien Neuhart
2018-04-11 13:33:12 +02:00
parent a1abbc55a2
commit 35e1894c89
3 changed files with 10 additions and 6 deletions

View File

@@ -19,11 +19,11 @@ type Converter struct {
workingDir string
}
type noFileToConvertError struct{}
type NoFileToConvertError struct{}
const noFileToConvertErrorMessage = "No file to convert"
func (e *noFileToConvertError) Error() string {
func (e *NoFileToConvertError) Error() string {
return noFileToConvertErrorMessage
}
@@ -62,7 +62,7 @@ func NewConverter(r *http.Request) (*Converter, error) {
}
if len(c.files) == 0 {
return c, &noFileToConvertError{}
return c, &NoFileToConvertError{}
}
return c, nil

View File

@@ -140,7 +140,7 @@ func TestClear(t *testing.T) {
}
func TestNoFileToConvertError(t *testing.T) {
err := &noFileToConvertError{}
err := &NoFileToConvertError{}
if err.Error() != noFileToConvertErrorMessage {
t.Errorf("Error returned a wrong message: got '%s' want '%s'", err.Error(), noFileToConvertErrorMessage)
}

View File

@@ -60,8 +60,12 @@ func convertHandler(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
c, err := converter.NewConverter(r)
if err != nil {
// TODO bad request if no file to convert
http.Error(w, err.Error(), http.StatusInternalServerError)
if _, ok := err.(*converter.NoFileToConvertError); ok {
http.Error(w, err.Error(), http.StatusBadRequest)
} else {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
logger.Error(err)
if c != nil {