From 74a53954de209f2334e8edce523e77517bc7e3a6 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Tue, 15 Feb 2022 12:37:04 +0000 Subject: [PATCH] Wrap more errors --- bcrypt/verifier.go | 8 ++++++-- http/json-date.go | 10 ++++++++-- jwt/login.go | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/bcrypt/verifier.go b/bcrypt/verifier.go index 60c7a11..a7d18a6 100644 --- a/bcrypt/verifier.go +++ b/bcrypt/verifier.go @@ -1,6 +1,10 @@ package bcrypt -import "golang.org/x/crypto/bcrypt" +import ( + "fmt" + + "golang.org/x/crypto/bcrypt" +) // Verifier verifys passwords using Bcrypt type Verifier struct { @@ -16,7 +20,7 @@ func (bv *Verifier) Verify(password string, hashOnDb string) error { func (bv *Verifier) Hash(password string) (string, error) { hash, err := bcrypt.GenerateFromPassword([]byte(password), bv.cost) if err != nil { - return "", err + return "", fmt.Errorf("hash password: %w", err) } return string(hash[:]), nil diff --git a/http/json-date.go b/http/json-date.go index d9e0180..36dd85a 100644 --- a/http/json-date.go +++ b/http/json-date.go @@ -2,6 +2,7 @@ package http import ( "encoding/json" + "fmt" "strings" "time" ) @@ -13,14 +14,19 @@ func (j *JSONDate) UnmarshalJSON(b []byte) error { s := strings.Trim(string(b), "\"") t, err := time.Parse("2006-01-02", s) if err != nil { - return err + return fmt.Errorf("parse date: %w", err) } *j = JSONDate(t) return nil } func (j JSONDate) MarshalJSON() ([]byte, error) { - return json.Marshal(time.Time(j)) + result, err := json.Marshal(time.Time(j)) + if err != nil { + return nil, fmt.Errorf("marshal date: %w", err) + } + + return result, nil } // Maybe a Format function for printing your date diff --git a/jwt/login.go b/jwt/login.go index e15d961..4bc5f04 100644 --- a/jwt/login.go +++ b/jwt/login.go @@ -39,7 +39,7 @@ func (tv *TokenVerifier) CreateToken(user *postgres.User) (string, error) { // Generate encoded token and send it as response. t, err := token.SignedString([]byte(secret)) if err != nil { - return "", err + return "", fmt.Errorf("create token: %w", err) } return t, nil