package mem_cache 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) + id.String() }