diff --git a/conv/conv.go b/conv/conv.go index c7039c0..acb0f94 100644 --- a/conv/conv.go +++ b/conv/conv.go @@ -3,10 +3,30 @@ package conv import ( "strconv" +) - "github.com/vividvilla/simplesessions" +var ( + // Error codes for store errors. This should match the codes + // defined in the /simplesessions package exactly. + ErrInvalidSession = &Err{code: 1, msg: "invalid session"} + ErrFieldNotFound = &Err{code: 2, msg: "field not found"} + ErrAssertType = &Err{code: 3, msg: "assertion failed"} + ErrNil = &Err{code: 4, msg: "nil returned"} ) +type Err struct { + code int + msg string +} + +func (e *Err) Error() string { + return e.msg +} + +func (e *Err) Code() int { + return e.code +} + // Int converts interface to integer. func Int(r interface{}, err error) (int, error) { if err != nil { @@ -29,10 +49,10 @@ func Int(r interface{}, err error) (int, error) { n, err := strconv.ParseInt(r, 10, 0) return int(n), err case nil: - return 0, simplesessions.ErrNil + return 0, ErrNil } - return 0, simplesessions.ErrAssertType + return 0, ErrAssertType } // Int64 converts interface to Int64. @@ -53,10 +73,10 @@ func Int64(r interface{}, err error) (int64, error) { n, err := strconv.ParseInt(r, 10, 64) return n, err case nil: - return 0, simplesessions.ErrNil + return 0, ErrNil } - return 0, simplesessions.ErrAssertType + return 0, ErrAssertType } // UInt64 converts interface to UInt64. @@ -70,12 +90,12 @@ func UInt64(r interface{}, err error) (uint64, error) { return r, err case int: if r < 0 { - return 0, simplesessions.ErrAssertType + return 0, ErrAssertType } return uint64(r), nil case int64: if r < 0 { - return 0, simplesessions.ErrAssertType + return 0, ErrAssertType } return uint64(r), nil case []byte: @@ -85,10 +105,10 @@ func UInt64(r interface{}, err error) (uint64, error) { n, err := strconv.ParseUint(r, 10, 64) return n, err case nil: - return 0, simplesessions.ErrNil + return 0, ErrNil } - return 0, simplesessions.ErrAssertType + return 0, ErrAssertType } // Float64 converts interface to Float64. @@ -106,9 +126,9 @@ func Float64(r interface{}, err error) (float64, error) { n, err := strconv.ParseFloat(r, 64) return n, err case nil: - return 0, simplesessions.ErrNil + return 0, ErrNil } - return 0, simplesessions.ErrAssertType + return 0, ErrAssertType } // String converts interface to String. @@ -122,9 +142,9 @@ func String(r interface{}, err error) (string, error) { case string: return r, nil case nil: - return "", simplesessions.ErrNil + return "", ErrNil } - return "", simplesessions.ErrAssertType + return "", ErrAssertType } // Bytes converts interface to Bytes. @@ -138,9 +158,9 @@ func Bytes(r interface{}, err error) ([]byte, error) { case string: return []byte(r), nil case nil: - return nil, simplesessions.ErrNil + return nil, ErrNil } - return nil, simplesessions.ErrAssertType + return nil, ErrAssertType } // Bool converts interface to Bool. @@ -161,7 +181,7 @@ func Bool(r interface{}, err error) (bool, error) { case string: return strconv.ParseBool(r) case nil: - return false, simplesessions.ErrNil + return false, ErrNil } - return false, simplesessions.ErrAssertType + return false, ErrAssertType } diff --git a/conv/conv_test.go b/conv/conv_test.go index cf374f0..2ce0a9b 100644 --- a/conv/conv_test.go +++ b/conv/conv_test.go @@ -5,7 +5,6 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/vividvilla/simplesessions" ) var ( @@ -39,7 +38,7 @@ func TestInt(t *testing.T) { // Test if ErrNil is returned if value is nil. v, err = Int(nil, nil) - assert.Error(err, simplesessions.ErrNil) + assert.Error(err, ErrNil) assert.Equal(0, v) // Test if custom error sent is returned. @@ -49,7 +48,7 @@ func TestInt(t *testing.T) { // Test invalid assert error. v, err = Int(10.1112, nil) - assert.Error(err, simplesessions.ErrAssertType) + assert.Error(err, ErrAssertType) assert.Equal(0, v) } @@ -75,7 +74,7 @@ func TestInt64(t *testing.T) { // Test if ErrNil is returned if value is nil. v, err = Int64(nil, nil) - assert.Error(err, simplesessions.ErrNil) + assert.Error(err, ErrNil) assert.Equal(int64(0), v) // Test if custom error sent is returned. @@ -85,7 +84,7 @@ func TestInt64(t *testing.T) { // Test invalid assert error. v, err = Int64(10.1112, nil) - assert.Error(err, simplesessions.ErrAssertType) + assert.Error(err, ErrAssertType) assert.Equal(int64(0), v) } @@ -111,7 +110,7 @@ func TestUInt64(t *testing.T) { // Test if ErrNil is returned if value is nil. v, err = UInt64(nil, nil) - assert.Error(err, simplesessions.ErrNil) + assert.Error(err, ErrNil) assert.Equal(uint64(0), v) // Test if custom error sent is returned. @@ -121,7 +120,7 @@ func TestUInt64(t *testing.T) { // Test invalid assert error. v, err = UInt64(10.1112, nil) - assert.Error(err, simplesessions.ErrAssertType) + assert.Error(err, ErrAssertType) assert.Equal(uint64(0), v) } @@ -147,7 +146,7 @@ func TestFloat64(t *testing.T) { // Test if ErrNil is returned if value is nil. v, err = Float64(nil, nil) - assert.Error(err, simplesessions.ErrNil) + assert.Error(err, ErrNil) assert.Equal(float64(0), v) // Test if custom error sent is returned. @@ -157,7 +156,7 @@ func TestFloat64(t *testing.T) { // Test invalid assert error. v, err = Float64("abc", nil) - assert.Error(err, simplesessions.ErrAssertType) + assert.Error(err, ErrAssertType) assert.Equal(float64(0), v) } @@ -179,7 +178,7 @@ func TestString(t *testing.T) { // Test if ErrNil is returned if value is nil. v, err = String(nil, nil) - assert.Error(err, simplesessions.ErrNil) + assert.Error(err, ErrNil) assert.Equal("", v) // Test if custom error sent is returned. @@ -189,7 +188,7 @@ func TestString(t *testing.T) { // Test invalid assert error. v, err = String(10.1112, nil) - assert.Error(err, simplesessions.ErrAssertType) + assert.Error(err, ErrAssertType) assert.Equal("", v) } @@ -211,7 +210,7 @@ func TestBytes(t *testing.T) { // Test if ErrNil is returned if value is nil. v, err = Bytes(nil, nil) - assert.Error(err, simplesessions.ErrNil) + assert.Error(err, ErrNil) assert.Equal([]byte(nil), v) // Test if custom error sent is returned. @@ -221,7 +220,7 @@ func TestBytes(t *testing.T) { // Test invalid assert error. v, err = Bytes(10.1112, nil) - assert.Error(err, simplesessions.ErrAssertType) + assert.Error(err, ErrAssertType) assert.Equal([]byte(nil), v) } @@ -270,7 +269,7 @@ func TestBool(t *testing.T) { // Test if ErrNil is returned if value is nil. v, err = Bool(nil, nil) - assert.Error(err, simplesessions.ErrNil) + assert.Error(err, ErrNil) assert.Equal(false, v) // Test if custom error sent is returned. @@ -280,6 +279,6 @@ func TestBool(t *testing.T) { // Test invalid assert error. v, err = Bool(10.1112, nil) - assert.Error(err, simplesessions.ErrAssertType) + assert.Error(err, ErrAssertType) assert.Equal(false, v) } diff --git a/go.work b/go.work index a0da523..d814b3d 100644 --- a/go.work +++ b/go.work @@ -2,6 +2,7 @@ go 1.18 use ( . + ./conv ./stores/goredis ./stores/redis ./stores/securecookie