diff options
Diffstat (limited to 'pkg/utils.go')
-rw-r--r-- | pkg/utils.go | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/pkg/utils.go b/pkg/utils.go index f5a443e..9246854 100644 --- a/pkg/utils.go +++ b/pkg/utils.go @@ -1,6 +1,11 @@ package utils -import "golang.org/x/crypto/bcrypt" +import ( + "encoding/json" + "net/http" + + "golang.org/x/crypto/bcrypt" +) func HashPassword(password string) (string, error) { bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14) @@ -11,3 +16,20 @@ func CheckPasswordHash(password, hash string) bool { err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password)) return err == nil } + +// Set a JSON response with status code 400 +func JsonError(w *http.ResponseWriter, error string) { + payloadMap := map[string]string{"error": error} + + (*w).Header().Set("Content-Type", "application/json") + (*w).WriteHeader(http.StatusBadRequest) + + payload, err := json.Marshal(payloadMap) + + if err != nil { + (*w).WriteHeader(http.StatusBadGateway) + (*w).Write([]byte(err.Error())) + } else { + (*w).Write(payload) + } +} |