forked from braintree-go/braintree-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
processor_response_code.go
33 lines (25 loc) · 793 Bytes
/
processor_response_code.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package braintree
import "strconv"
type ProcessorResponseCode int
func (rc ProcessorResponseCode) Int() int {
return int(rc)
}
// UnmarshalText fills the response code with the integer value if the text contains one in string form. If the text is zero length, the response code's value is unchanged but unmarshaling is successful.
func (rc *ProcessorResponseCode) UnmarshalText(text []byte) error {
if len(text) == 0 {
return nil
}
n, err := strconv.Atoi(string(text))
if err != nil {
return err
}
*rc = ProcessorResponseCode(n)
return nil
}
// MarshalText returns a string in bytes of the number, or nil in the case it is zero.
func (rc ProcessorResponseCode) MarshalText() ([]byte, error) {
if rc == 0 {
return nil, nil
}
return []byte(strconv.Itoa(int(rc))), nil
}