Added dict with additional cards
This commit is contained in:
parent
181f3bc0aa
commit
88ea431a27
26 changed files with 232 additions and 35 deletions
49
internal/caching/cache_test.go
Normal file
49
internal/caching/cache_test.go
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
package caching
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/alicebob/miniredis/v2"
|
||||
"github.com/go-redis/redis"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGetSet(t *testing.T) {
|
||||
client, s := getTestClient()
|
||||
defer s.Close()
|
||||
|
||||
keyName := "test_key"
|
||||
value := "test_value"
|
||||
client.Set(keyName, value)
|
||||
val, err := client.Get(keyName)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, value, val)
|
||||
}
|
||||
|
||||
func TestExpiration(t *testing.T) {
|
||||
client, s := getTestClient()
|
||||
defer s.Close()
|
||||
|
||||
client.Expiration = time.Millisecond
|
||||
keyName := "test_key"
|
||||
value := "test_value"
|
||||
client.Set(keyName, value)
|
||||
s.FastForward(time.Millisecond * 2)
|
||||
val, err := client.Get(keyName)
|
||||
assert.Zero(t, val)
|
||||
assert.NotNil(t, err)
|
||||
}
|
||||
|
||||
func getTestClient() (*CacheClient, *miniredis.Miniredis) {
|
||||
s, _ := miniredis.Run()
|
||||
fmt.Println(s.Addr())
|
||||
c := redis.NewClient(&redis.Options{
|
||||
Addr: s.Addr(),
|
||||
})
|
||||
return &CacheClient{
|
||||
Storage: c,
|
||||
Expiration: 0,
|
||||
}, s
|
||||
}
|
||||
39
internal/caching/client.go
Normal file
39
internal/caching/client.go
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
package caching
|
||||
|
||||
import (
|
||||
"github.com/go-redis/redis"
|
||||
"time"
|
||||
)
|
||||
|
||||
type CacheClient struct {
|
||||
Storage *redis.Client
|
||||
Expiration time.Duration
|
||||
}
|
||||
|
||||
var client *CacheClient
|
||||
|
||||
func GetClient() *CacheClient {
|
||||
if client != nil {
|
||||
return client
|
||||
}
|
||||
client = new(CacheClient)
|
||||
client.Init()
|
||||
return client
|
||||
}
|
||||
|
||||
func (client *CacheClient) Init() {
|
||||
client.Storage = redis.NewClient(&redis.Options{
|
||||
Addr: HostName,
|
||||
Password: Password,
|
||||
DB: 0,
|
||||
})
|
||||
client.Expiration = CacheExpiration
|
||||
}
|
||||
|
||||
func (client *CacheClient) Set(key string, value string) {
|
||||
client.Storage.Set(key, value, client.Expiration)
|
||||
}
|
||||
|
||||
func (client *CacheClient) Get(key string) (string, error) {
|
||||
return client.Storage.Get(key).Result()
|
||||
}
|
||||
9
internal/caching/secrets.go
Normal file
9
internal/caching/secrets.go
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
package caching
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const HostName = "redis:6379"
|
||||
const Password = ""
|
||||
const CacheExpiration = time.Hour * 24
|
||||
Loading…
Add table
Add a link
Reference in a new issue