From 6d474b1f1889c55a985d489285f2182e7fa1bb85 Mon Sep 17 00:00:00 2001 From: Sung Won Cho Date: Mon, 18 Nov 2019 11:16:46 +0800 Subject: [PATCH] Display helpful error message to the client (#314) --- pkg/server/handlers/v3_auth.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkg/server/handlers/v3_auth.go b/pkg/server/handlers/v3_auth.go index 4283dae6..b6cf9f70 100644 --- a/pkg/server/handlers/v3_auth.go +++ b/pkg/server/handlers/v3_auth.go @@ -166,24 +166,25 @@ func validateRegisterPayload(p registerPayload) error { return nil } -func parseRegisterPaylaod(r *http.Request) (registerPayload, bool) { +func parseRegisterPaylaod(r *http.Request) (registerPayload, error) { var ret registerPayload if err := json.NewDecoder(r.Body).Decode(&ret); err != nil { - return ret, false - } - if err := validateRegisterPayload(ret); err != nil { - return ret, false + return ret, errors.Wrap(err, "decoding json") } - return ret, true + return ret, nil } func (a *App) register(w http.ResponseWriter, r *http.Request) { - params, ok := parseRegisterPaylaod(r) - if !ok { + params, err := parseRegisterPaylaod(r) + if err != nil { http.Error(w, "invalid payload", http.StatusBadRequest) return } + if err := validateRegisterPayload(params); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } var count int if err := a.DB.Model(database.Account{}).Where("email = ?", params.Email).Count(&count).Error; err != nil {