Skip to content

Commit 012c02d

Browse files
committed
Return more specific error types
1 parent e873409 commit 012c02d

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

errors.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,32 +55,32 @@ func errorSeedLength(expected, given int) error {
5555
return fmt.Errorf("seed length incorrect (%d), expected %d", given, expected)
5656
}
5757

58-
func errorMessageParts(given int) error {
59-
return fmt.Errorf("invalid number of message parts in token (%d)", given)
58+
func errorMessageParts(given int) *TokenError {
59+
return &TokenError{fmt.Errorf("invalid number of message parts in token (%d)", given)}
6060
}
6161

62-
func errorMessageHeader(expected Protocol, givenHeader string) error {
63-
return fmt.Errorf("message header `%s' is not valid, expected `%s'", givenHeader, expected.Header())
62+
func errorMessageHeader(expected Protocol, givenHeader string) *TokenError {
63+
return &TokenError{fmt.Errorf("message header `%s' is not valid, expected `%s'", givenHeader, expected.Header())}
6464
}
6565

66-
func errorMessageHeaderDecrypt(expected Protocol, givenHeader string) error {
67-
return fmt.Errorf("cannot decrypt message: %w", errorMessageHeader(expected, givenHeader))
66+
func errorMessageHeaderDecrypt(expected Protocol, givenHeader string) *TokenError {
67+
return errorMessageHeader(expected, givenHeader).wrapWith("cannot decrypt message")
6868
}
6969

70-
func errorMessageHeaderVerify(expected Protocol, givenHeader string) error {
71-
return fmt.Errorf("cannot verify message: %w", errorMessageHeader(expected, givenHeader))
70+
func errorMessageHeaderVerify(expected Protocol, givenHeader string) *TokenError {
71+
return errorMessageHeader(expected, givenHeader).wrapWith("cannot verify message")
7272
}
7373

7474
var unsupportedPasetoVersion = fmt.Errorf("unsupported PASETO version")
7575
var unsupportedPasetoPurpose = fmt.Errorf("unsupported PASETO purpose")
7676
var unsupportedPayload = fmt.Errorf("unsupported payload")
7777

78-
var errorPayloadShort = fmt.Errorf("payload is not long enough to be a valid PASETO message")
79-
var errorBadSignature = fmt.Errorf("bad signature")
80-
var errorBadMAC = fmt.Errorf("bad message authentication code")
78+
var errorPayloadShort = &TokenError{fmt.Errorf("payload is not long enough to be a valid PASETO message")}
79+
var errorBadSignature = &TokenError{fmt.Errorf("bad signature")}
80+
var errorBadMAC = &TokenError{fmt.Errorf("bad message authentication code")}
8181

8282
var errorKeyInvalid = fmt.Errorf("key was not valid")
8383

84-
func errorDecrypt(err error) error {
85-
return fmt.Errorf("the message could not be decrypted: %w", err)
84+
func errorDecrypt(err error) *TokenError {
85+
return (&TokenError{err}).wrapWith("the message could not be decrypted")
8686
}

message.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ func newMessage(protocol Protocol, token string) (message, error) {
2929

3030
payloadBytes, err := encoding.Decode(encodedPayload)
3131
if err != nil {
32-
return message{}, err
32+
return message{}, &TokenError{err}
3333
}
3434

3535
footer, err := encoding.Decode(encodedFooter)
3636
if err != nil {
37-
return message{}, err
37+
return message{}, &TokenError{err}
3838
}
3939

4040
payload, err := protocol.newPayload(payloadBytes)

parser.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ func (p *Parser) AddRule(rule ...Rule) {
152152
func (p Parser) validate(token Token) (*Token, error) {
153153
for _, rule := range p.rules {
154154
if err := rule(token); err != nil {
155-
return nil, err
155+
return nil, &RuleError{err}
156156
}
157157
}
158158

0 commit comments

Comments
 (0)