mirror of
https://github.com/sstent/go-garth.git
synced 2026-01-26 00:52:40 +00:00
sync
This commit is contained in:
36
memorystorage.go
Normal file
36
memorystorage.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package garth
|
||||
|
||||
import (
|
||||
"sync"
|
||||
)
|
||||
|
||||
// MemoryStorage implements TokenStorage using an in-memory cache
|
||||
type MemoryStorage struct {
|
||||
mu sync.RWMutex
|
||||
token *Token
|
||||
}
|
||||
|
||||
// NewMemoryStorage creates a new in-memory token storage
|
||||
func NewMemoryStorage() *MemoryStorage {
|
||||
return &MemoryStorage{}
|
||||
}
|
||||
|
||||
// GetToken retrieves token from memory
|
||||
func (s *MemoryStorage) GetToken() (*Token, error) {
|
||||
s.mu.RLock()
|
||||
defer s.mu.RUnlock()
|
||||
|
||||
if s.token == nil {
|
||||
return nil, ErrTokenNotFound
|
||||
}
|
||||
return s.token, nil
|
||||
}
|
||||
|
||||
// SaveToken saves token to memory
|
||||
func (s *MemoryStorage) SaveToken(token *Token) error {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
|
||||
s.token = token
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user