From ab94351a60f368d316c83f6d937a6b2e16f4a8cf Mon Sep 17 00:00:00 2001 From: Fenny <25108519+Fenny@users.noreply.github.com> Date: Mon, 23 Nov 2020 09:30:50 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=20return=20nil=20for=20notfound?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- badger/README.md | 2 -- badger/badger.go | 6 ++---- badger/badger_test.go | 10 +++++----- dynamodb/README.md | 2 -- dynamodb/dynamodb.go | 9 ++------- dynamodb/go.mod | 2 +- dynamodb/go.sum | 9 +++++++++ memcache/README.md | 2 -- memcache/memcache.go | 10 ++-------- memcache/memcache_test.go | 10 +++++----- memory/README.md | 2 -- memory/memory.go | 10 ++-------- memory/memory_test.go | 10 +++++----- mongodb/README.md | 2 -- mongodb/go.mod | 6 ++++++ mongodb/go.sum | 17 +++++++++++++++++ mongodb/mongodb.go | 12 +++--------- mongodb/mongodb_test.go | 10 +++++----- mysql/README.md | 2 -- mysql/mysql.go | 12 +++--------- mysql/mysql_test.go | 10 +++++----- postgres/README.md | 2 -- postgres/postgres.go | 12 ++++-------- postgres/postgres_test.go | 10 +++++----- redis/README.md | 2 -- redis/go.mod | 2 +- redis/go.sum | 5 +++++ redis/redis.go | 9 ++------- redis/redis_test.go | 10 +++++----- sqlite3/README.md | 2 -- sqlite3/go.mod | 2 +- sqlite3/go.sum | 2 ++ sqlite3/sqlite3.go | 12 +++--------- sqlite3/sqlite3_test.go | 10 +++++----- storage.go | 8 ++++---- 35 files changed, 109 insertions(+), 134 deletions(-) diff --git a/badger/README.md b/badger/README.md index 20b53aa8..0e50300a 100644 --- a/badger/README.md +++ b/badger/README.md @@ -14,8 +14,6 @@ A fast key-value DB using [dgraph-io/badger](https://github.com/dgraph-io/badger ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/badger/badger.go b/badger/badger.go index 839b54be..d43b3f7b 100644 --- a/badger/badger.go +++ b/badger/badger.go @@ -16,9 +16,7 @@ type Storage struct { } -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound + // New creates a new memory storage func New(config ...Config) *Storage { @@ -56,7 +54,7 @@ func New(config ...Config) *Storage { // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } var data []byte err := s.db.View(func(txn *badger.Txn) error { diff --git a/badger/badger_test.go b/badger/badger_test.go index 9b413412..ce863763 100644 --- a/badger/badger_test.go +++ b/badger/badger_test.go @@ -65,14 +65,14 @@ func Test_Badger_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_Badger_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -89,7 +89,7 @@ func Test_Badger_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -108,11 +108,11 @@ func Test_Badger_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/dynamodb/README.md b/dynamodb/README.md index 30391f59..d905ed73 100644 --- a/dynamodb/README.md +++ b/dynamodb/README.md @@ -14,8 +14,6 @@ ```go func New(config Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/dynamodb/dynamodb.go b/dynamodb/dynamodb.go index 8ab98ab2..e4ec9229 100644 --- a/dynamodb/dynamodb.go +++ b/dynamodb/dynamodb.go @@ -18,11 +18,6 @@ type Storage struct { table string } - -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - // New creates a new storage func New(config Config) *Storage { // Set default config @@ -114,11 +109,11 @@ func (s *Storage) Get(key string) ([]byte, error) { if err != nil { return nil, err } else if getItemOutput.Item == nil { - return nil, ErrNotFound + return nil, nil } attributeVal := getItemOutput.Item[valAttrName] if attributeVal == nil { - return nil, ErrNotFound + return nil, nil } return attributeVal.B, nil } diff --git a/dynamodb/go.mod b/dynamodb/go.mod index 21bedf1d..7d130aac 100644 --- a/dynamodb/go.mod +++ b/dynamodb/go.mod @@ -2,4 +2,4 @@ module github.com/gofiber/storage/dynamodb go 1.14 -require github.com/aws/aws-sdk-go v1.35.26 +require github.com/aws/aws-sdk-go v1.35.33 diff --git a/dynamodb/go.sum b/dynamodb/go.sum index e4788866..b1495cc7 100644 --- a/dynamodb/go.sum +++ b/dynamodb/go.sum @@ -1,5 +1,7 @@ github.com/aws/aws-sdk-go v1.35.26 h1:MawRvDpAp/Ai859dPC1xo1fdU/BIkijoHj0DwXLXXkI= github.com/aws/aws-sdk-go v1.35.26/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= +github.com/aws/aws-sdk-go v1.35.33 h1:8qPRZqCRok5i7VNN51k/Ky7CuyoXMdSs4mUfKyCqvPw= +github.com/aws/aws-sdk-go v1.35.33/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -12,11 +14,18 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/memcache/README.md b/memcache/README.md index cf41391d..b16b282e 100644 --- a/memcache/README.md +++ b/memcache/README.md @@ -13,8 +13,6 @@ A Memcache storage driver using [`bradfitz/gomemcache`](https://github.com/bradf ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/memcache/memcache.go b/memcache/memcache.go index 184992f3..b0245c19 100644 --- a/memcache/memcache.go +++ b/memcache/memcache.go @@ -1,7 +1,6 @@ package memcache import ( - "errors" "strings" "sync" "time" @@ -16,11 +15,6 @@ type Storage struct { items *sync.Pool } - -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - // New creates a new storage func New(config ...Config) *Storage { // Set default config @@ -63,11 +57,11 @@ func New(config ...Config) *Storage { // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } item, err := s.db.Get(key) if err == mc.ErrCacheMiss { - return nil, ErrNotFound + return nil, nil } else if err != nil { return nil, err } diff --git a/memcache/memcache_test.go b/memcache/memcache_test.go index 860fb4cc..52c03cab 100644 --- a/memcache/memcache_test.go +++ b/memcache/memcache_test.go @@ -65,14 +65,14 @@ func Test_Memcache_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_Memcache_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -89,7 +89,7 @@ func Test_Memcache_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -108,11 +108,11 @@ func Test_Memcache_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/memory/README.md b/memory/README.md index a9009923..214b8bdd 100644 --- a/memory/README.md +++ b/memory/README.md @@ -14,8 +14,6 @@ An in-memory storage driver. ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/memory/memory.go b/memory/memory.go index f4c118d9..3282254d 100644 --- a/memory/memory.go +++ b/memory/memory.go @@ -1,7 +1,6 @@ package memory import ( - "errors" "sync" "time" ) @@ -14,11 +13,6 @@ type Storage struct { done chan struct{} } - -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - type entry struct { data []byte expiry int64 @@ -45,13 +39,13 @@ func New(config ...Config) *Storage { // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } s.mux.RLock() v, ok := s.db[key] s.mux.RUnlock() if !ok || v.expiry != 0 && v.expiry <= time.Now().Unix() { - return nil, ErrNotFound + return nil, nil } return v.data, nil diff --git a/memory/memory_test.go b/memory/memory_test.go index 9e156906..9804836f 100644 --- a/memory/memory_test.go +++ b/memory/memory_test.go @@ -65,14 +65,14 @@ func Test_Memory_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_Memory_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -89,7 +89,7 @@ func Test_Memory_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -108,11 +108,11 @@ func Test_Memory_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/mongodb/README.md b/mongodb/README.md index 4faeeb2b..ea47d901 100644 --- a/mongodb/README.md +++ b/mongodb/README.md @@ -13,8 +13,6 @@ A MongoDB storage driver using [mongodb/mongo-go-driver](https://github.com/mong ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/mongodb/go.mod b/mongodb/go.mod index 339a3533..cb507cd4 100644 --- a/mongodb/go.mod +++ b/mongodb/go.mod @@ -3,6 +3,12 @@ module github.com/gofiber/storage/mongodb go 1.14 require ( + github.com/aws/aws-sdk-go v1.35.33 // indirect github.com/gofiber/utils v0.1.2 + github.com/golang/snappy v0.0.2 // indirect + github.com/klauspost/compress v1.11.3 // indirect go.mongodb.org/mongo-driver v1.4.3 + golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9 // indirect + golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 // indirect + golang.org/x/text v0.3.4 // indirect ) diff --git a/mongodb/go.sum b/mongodb/go.sum index ac29ab86..70ffc02a 100644 --- a/mongodb/go.sum +++ b/mongodb/go.sum @@ -1,6 +1,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/aws/aws-sdk-go v1.34.28 h1:sscPpn/Ns3i0F4HPEWAVcwdIRaZZCuL7llJ2/60yPIk= github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= +github.com/aws/aws-sdk-go v1.35.33 h1:8qPRZqCRok5i7VNN51k/Ky7CuyoXMdSs4mUfKyCqvPw= +github.com/aws/aws-sdk-go v1.35.33/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -35,6 +37,8 @@ github.com/gofiber/utils v0.1.2 h1:1SH2YEz4RlNS0tJlMJ0bGwO0JkqPqvq6TbHK9tXZKtk= github.com/gofiber/utils v0.1.2/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw= +github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= @@ -47,6 +51,8 @@ github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaR github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/klauspost/compress v1.9.5 h1:U+CaK85mrNNb4k8BNOfgJtJ/gr6kswUCFj6miSzVC6M= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.11.3 h1:dB4Bn0tN3wdCzQxnS8r06kV74qN/TAfaIS0bVE8h3jc= +github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= @@ -91,15 +97,21 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5 h1:8dUaAV7K4uHsF56JQWkprecIQKdPHtR9jCHF5nB8uzc= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9 h1:phUcVbl53swtrUN8kQEXFhUxPlIlWyBfKmidCu7P95o= +golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -107,9 +119,14 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= diff --git a/mongodb/mongodb.go b/mongodb/mongodb.go index ee89e5f2..ccc07258 100644 --- a/mongodb/mongodb.go +++ b/mongodb/mongodb.go @@ -2,7 +2,6 @@ package mongodb import ( "context" - "errors" "fmt" "net/url" "sync" @@ -21,11 +20,6 @@ type Storage struct { items *sync.Pool } - -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - type item struct { ObjectID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"` Key string `json:"key" bson:"key"` @@ -114,14 +108,14 @@ func New(config ...Config) *Storage { // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } res := s.col.FindOne(context.Background(), bson.M{"key": key}) item := s.acquireItem() if err := res.Err(); err != nil { if err == mongo.ErrNoDocuments { - return nil, ErrNotFound + return nil, nil } return nil, err } @@ -130,7 +124,7 @@ func (s *Storage) Get(key string) ([]byte, error) { } if !item.Expiration.IsZero() && item.Expiration.Unix() <= time.Now().Unix() { - return nil, ErrNotFound + return nil, nil } // // not safe? // res := item.Val diff --git a/mongodb/mongodb_test.go b/mongodb/mongodb_test.go index 19a40050..de42bbc3 100644 --- a/mongodb/mongodb_test.go +++ b/mongodb/mongodb_test.go @@ -67,14 +67,14 @@ func Test_MongoDB_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_MongoDB_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -91,7 +91,7 @@ func Test_MongoDB_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -110,11 +110,11 @@ func Test_MongoDB_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/mysql/README.md b/mysql/README.md index 84fe69fe..c4131c26 100644 --- a/mysql/README.md +++ b/mysql/README.md @@ -13,8 +13,6 @@ A MySQL storage driver using `database/sql` and [go-sql-driver/mysql](https://gi ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/mysql/mysql.go b/mysql/mysql.go index 9972fff6..8394fc93 100644 --- a/mysql/mysql.go +++ b/mysql/mysql.go @@ -2,7 +2,6 @@ package mysql import ( "database/sql" - "errors" "fmt" "time" @@ -23,11 +22,6 @@ type Storage struct { sqlGC string } - -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - var ( dropQuery = "DROP TABLE IF EXISTS %s;" initQuery = []string{ @@ -102,7 +96,7 @@ var noRows = "sql: no rows in result set" // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } row := s.db.QueryRow(s.sqlSelect, key) @@ -115,14 +109,14 @@ func (s *Storage) Get(key string) ([]byte, error) { if err := row.Scan(&data, &exp); err != nil { if err == sql.ErrNoRows { - return nil, ErrNotFound + return nil, nil } return nil, err } // If the expiration time has already passed, then return nil if exp != 0 && exp <= time.Now().Unix() { - return nil, ErrNotFound + return nil, nil } return data, nil diff --git a/mysql/mysql_test.go b/mysql/mysql_test.go index a66e53f9..1b86b938 100644 --- a/mysql/mysql_test.go +++ b/mysql/mysql_test.go @@ -71,14 +71,14 @@ func Test_MYSQL_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_MYSQL_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -95,7 +95,7 @@ func Test_MYSQL_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -114,11 +114,11 @@ func Test_MYSQL_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/postgres/README.md b/postgres/README.md index 64aaf5a0..475cad0a 100644 --- a/postgres/README.md +++ b/postgres/README.md @@ -13,8 +13,6 @@ A Postgres storage driver using [lib/pq](https://github.com/lib/pq). ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/postgres/postgres.go b/postgres/postgres.go index db0d3f97..96aa81d8 100644 --- a/postgres/postgres.go +++ b/postgres/postgres.go @@ -24,10 +24,6 @@ type Storage struct { sqlGC string } -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - var ( dropQuery = `DROP TABLE IF EXISTS %s;` initQuery = []string{ @@ -90,7 +86,7 @@ func New(config ...Config) *Storage { for _, query := range initQuery { if _, err := db.Exec(fmt.Sprintf(query, cfg.Table)); err != nil { _ = db.Close() - fmt.Println(fmt.Sprintf(query, cfg.Table)) + panic(err) } } @@ -118,7 +114,7 @@ var noRows = errors.New("sql: no rows in result set") // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } row := s.db.QueryRow(s.sqlSelect, key) // Add db response to data @@ -128,14 +124,14 @@ func (s *Storage) Get(key string) ([]byte, error) { ) if err := row.Scan(&data, &exp); err != nil { if err == sql.ErrNoRows { - return nil, ErrNotFound + return nil, nil } return nil, err } // If the expiration time has already passed, then return nil if exp != 0 && exp <= time.Now().Unix() { - return nil, ErrNotFound + return nil, nil } return data, nil diff --git a/postgres/postgres_test.go b/postgres/postgres_test.go index d17d1294..566d2f0f 100644 --- a/postgres/postgres_test.go +++ b/postgres/postgres_test.go @@ -71,14 +71,14 @@ func Test_Postgres_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_Postgres_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -95,7 +95,7 @@ func Test_Postgres_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -114,11 +114,11 @@ func Test_Postgres_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/redis/README.md b/redis/README.md index 074489f4..af30dc65 100644 --- a/redis/README.md +++ b/redis/README.md @@ -13,8 +13,6 @@ A Redis storage driver using [go-redis/redis](github.com/go-redis/redis). ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/redis/go.mod b/redis/go.mod index 0b537e04..de6ceabc 100644 --- a/redis/go.mod +++ b/redis/go.mod @@ -3,6 +3,6 @@ module github.com/gofiber/storage/redis go 1.14 require ( - github.com/go-redis/redis/v8 v8.3.3 + github.com/go-redis/redis/v8 v8.4.0 github.com/gofiber/utils v0.1.2 ) diff --git a/redis/go.sum b/redis/go.sum index 66c1104b..530e5b92 100644 --- a/redis/go.sum +++ b/redis/go.sum @@ -9,6 +9,8 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/go-redis/redis/v8 v8.3.3 h1:e0CL9fsFDK92pkIJH2XAeS/NwO2VuIOAoJvI6yktZFk= github.com/go-redis/redis/v8 v8.3.3/go.mod h1:jszGxBCez8QA1HWSmQxJO9Y82kNibbUmeYhKWrBejTU= +github.com/go-redis/redis/v8 v8.4.0 h1:J5NCReIgh3QgUJu398hUncxDExN4gMOHI11NVbVicGQ= +github.com/go-redis/redis/v8 v8.4.0/go.mod h1:A1tbYoHSa1fXwN+//ljcCYYJeLmVrwL9hbQN45Jdy0M= github.com/gofiber/utils v0.1.2 h1:1SH2YEz4RlNS0tJlMJ0bGwO0JkqPqvq6TbHK9tXZKtk= github.com/gofiber/utils v0.1.2/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -24,6 +26,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -42,6 +45,8 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= go.opentelemetry.io/otel v0.13.0 h1:2isEnyzjjJZq6r2EKMsFj4TxiQiexsM04AVhwbR/oBA= go.opentelemetry.io/otel v0.13.0/go.mod h1:dlSNewoRYikTkotEnxdmuBHgzT+k/idJSfDv/FxEnOY= +go.opentelemetry.io/otel v0.14.0 h1:YFBEfjCk9MTjaytCNSUkp9Q8lF7QJezA06T71FbQxLQ= +go.opentelemetry.io/otel v0.14.0/go.mod h1:vH5xEuwy7Rts0GNtsCW3HYQoZDY+OmBJ6t1bFGGlxgw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= diff --git a/redis/redis.go b/redis/redis.go index 3ce9ac9b..f9f9facb 100644 --- a/redis/redis.go +++ b/redis/redis.go @@ -2,7 +2,6 @@ package redis import ( "context" - "errors" "fmt" "time" @@ -14,10 +13,6 @@ type Storage struct { db *redis.Client } -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - // New creates a new redis storage func New(config ...Config) *Storage { // Set default config @@ -52,11 +47,11 @@ func New(config ...Config) *Storage { // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } val, err := s.db.Get(context.Background(), key).Bytes() if err == redis.Nil { - return nil, ErrNotFound + return nil, nil } return val, err } diff --git a/redis/redis_test.go b/redis/redis_test.go index 0bf0aa4c..21d0b25f 100644 --- a/redis/redis_test.go +++ b/redis/redis_test.go @@ -67,13 +67,13 @@ func Test_Redis_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_Redis_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -90,7 +90,7 @@ func Test_Redis_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -109,11 +109,11 @@ func Test_Redis_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/sqlite3/README.md b/sqlite3/README.md index 63dcfa36..0828e03e 100644 --- a/sqlite3/README.md +++ b/sqlite3/README.md @@ -13,8 +13,6 @@ A SQLite3 storage driver using [mattn/go-sqlite3](https://github.com/mattn/go-sq ```go func New(config ...Config) Storage -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") func (s *Storage) Get(key string) ([]byte, error) func (s *Storage) Set(key string, val []byte, exp time.Duration) error diff --git a/sqlite3/go.mod b/sqlite3/go.mod index ea6e97ed..d2c62531 100644 --- a/sqlite3/go.mod +++ b/sqlite3/go.mod @@ -4,5 +4,5 @@ go 1.14 require ( github.com/gofiber/utils v0.1.2 - github.com/mattn/go-sqlite3 v1.14.4 + github.com/mattn/go-sqlite3 v1.14.5 ) diff --git a/sqlite3/go.sum b/sqlite3/go.sum index 1f3bbf02..a5d12f9b 100644 --- a/sqlite3/go.sum +++ b/sqlite3/go.sum @@ -2,3 +2,5 @@ github.com/gofiber/utils v0.1.2 h1:1SH2YEz4RlNS0tJlMJ0bGwO0JkqPqvq6TbHK9tXZKtk= github.com/gofiber/utils v0.1.2/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= github.com/mattn/go-sqlite3 v1.14.4 h1:4rQjbDxdu9fSgI/r3KN72G3c2goxknAqHHgPWWs8UlI= github.com/mattn/go-sqlite3 v1.14.4/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= +github.com/mattn/go-sqlite3 v1.14.5 h1:1IdxlwTNazvbKJQSxoJ5/9ECbEeaTTyeU7sEAZ5KKTQ= +github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= diff --git a/sqlite3/sqlite3.go b/sqlite3/sqlite3.go index c4ef6d93..14ee9814 100644 --- a/sqlite3/sqlite3.go +++ b/sqlite3/sqlite3.go @@ -2,7 +2,6 @@ package sqlite3 import ( "database/sql" - "errors" "fmt" "time" @@ -24,10 +23,6 @@ type Storage struct { sqlGC string } -// ErrNotFound means that a get call did not find the requested key. -var ErrNotFound = errors.New("key not found") -var ErrKeyNotExist = ErrNotFound - var ( dropQuery = `DROP TABLE IF EXISTS %s;` initQuery = []string{ @@ -73,7 +68,6 @@ func New(config ...Config) *Storage { for _, query := range initQuery { if _, err := db.Exec(fmt.Sprintf(query, cfg.Table)); err != nil { _ = db.Close() - fmt.Println(fmt.Sprintf(query, cfg.Table)) panic(err) } } @@ -99,7 +93,7 @@ func New(config ...Config) *Storage { // Get value by key func (s *Storage) Get(key string) ([]byte, error) { if len(key) <= 0 { - return nil, ErrNotFound + return nil, nil } row := s.db.QueryRow(s.sqlSelect, key) // Add db response to data @@ -109,13 +103,13 @@ func (s *Storage) Get(key string) ([]byte, error) { ) if err := row.Scan(&data, &exp); err != nil { if err == sql.ErrNoRows { - return nil, ErrNotFound + return nil, nil } return nil, err } // If the expiration time has already passed, then return nil if exp != 0 && exp <= time.Now().Unix() { - return nil, ErrNotFound + return nil, nil } return data, nil diff --git a/sqlite3/sqlite3_test.go b/sqlite3/sqlite3_test.go index c3666b62..4a93b8f5 100644 --- a/sqlite3/sqlite3_test.go +++ b/sqlite3/sqlite3_test.go @@ -68,14 +68,14 @@ func Test_SQLite3_Get_Expired(t *testing.T) { ) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } func Test_SQLite3_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -92,7 +92,7 @@ func Test_SQLite3_Delete(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get(key) - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } @@ -111,11 +111,11 @@ func Test_SQLite3_Reset(t *testing.T) { utils.AssertEqual(t, nil, err) result, err := testStore.Get("john1") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) result, err = testStore.Get("john2") - utils.AssertEqual(t, ErrNotFound, err) + utils.AssertEqual(t, nil, err) utils.AssertEqual(t, true, len(result) == 0) } diff --git a/storage.go b/storage.go index cfbb1cbd..5f36543f 100644 --- a/storage.go +++ b/storage.go @@ -6,13 +6,13 @@ import "time" // providers. Visit https://github.com/gofiber/storage for more info. type Storage interface { // Get gets the value for the given key. - // It returns ErrNotFound if the storage does not contain the key. + // `nil, nil` is returned when the key does not exist Get(key string) ([]byte, error) - // Set stores the given value for the given key along with a - // time-to-live expiration value, 0 means live for ever + // Set stores the given value for the given key along + // with an expiration value, 0 means no expiration. // Empty key or value will be ignored without an error. - Set(key string, val []byte, ttl time.Duration) error + Set(key string, val []byte, exp time.Duration) error // Delete deletes the value for the given key. // It returns no error if the storage does not contain the key,