adding new error when files key does not exist in the form data

This commit is contained in:
Julien Neuhart
2018-04-04 15:45:20 +02:00
parent 1564219f8b
commit ec2bb72db5
2 changed files with 11 additions and 1 deletions

View File

@@ -27,6 +27,14 @@ func (e *NoFileToConvertError) Error() string {
return "There is no file to convert"
}
// FilesKeyNotFoundError is raised when "files" key does not exist
// in the form data
type FilesKeyNotFoundError struct{}
func (e *FilesKeyNotFoundError) Error() string {
return "\"files\" key was not found in the form data"
}
// NewConverter instantiates a converter by parsing a request.
func NewConverter(r *http.Request, contentType ghttp.ContentType) (*Converter, error) {
c := &Converter{
@@ -47,7 +55,7 @@ func NewConverter(r *http.Request, contentType ghttp.ContentType) (*Converter, e
formData := r.MultipartForm
files, ok := formData.File["files"]
if !ok {
return nil, nil
return nil, &FilesKeyNotFoundError{}
}
for i := range files {

View File

@@ -72,6 +72,8 @@ func convertHandler(next http.Handler) http.Handler {
if err != nil {
if noFileToConvertError, ok := err.(*converter.NoFileToConvertError); ok {
http.Error(w, noFileToConvertError.Error(), http.StatusBadRequest)
} else if filesKeyNotFoundError, ok := err.(*converter.FilesKeyNotFoundError); ok {
http.Error(w, filesKeyNotFoundError.Error(), http.StatusBadRequest)
} else {
http.Error(w, err.Error(), http.StatusInternalServerError)
}