39 lines
1.0 KiB
Go
39 lines
1.0 KiB
Go
package memCache
|
|
|
|
import (
|
|
"git.infra.nkode.tech/dkelly/nkode-core/entities"
|
|
"github.com/patrickmn/go-cache"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
forgotExpiration = 5 * time.Minute
|
|
forgotCleanupInterval = 10 * time.Minute
|
|
)
|
|
|
|
type ForgotNKodeCache struct {
|
|
innerCache *cache.Cache
|
|
}
|
|
|
|
func NewForgotNKodeCache() ForgotNKodeCache {
|
|
forgotCache := cache.New(forgotExpiration, forgotCleanupInterval)
|
|
return ForgotNKodeCache{forgotCache}
|
|
}
|
|
|
|
func (f *ForgotNKodeCache) Set(userEmail entities.UserEmail, customerId entities.CustomerId) {
|
|
f.innerCache.Set(key(userEmail, customerId), true, forgotExpiration)
|
|
}
|
|
|
|
func (f *ForgotNKodeCache) Get(userEmail entities.UserEmail, customerId entities.CustomerId) bool {
|
|
_, found := f.innerCache.Get(key(userEmail, customerId))
|
|
return found
|
|
}
|
|
|
|
func (f *ForgotNKodeCache) Delete(userEmail entities.UserEmail, customerId entities.CustomerId) {
|
|
f.innerCache.Delete(key(userEmail, customerId))
|
|
}
|
|
|
|
func key(email entities.UserEmail, id entities.CustomerId) string {
|
|
return string(email) + entities.CustomerIdToString(id)
|
|
}
|