Generates/Stores the device request and returns the device and user codes.
Signed-off-by: justin-slowik <justin.slowik@thermofisher.com>
This commit is contained in:
committed by
justin-slowik
parent
11fc8568cb
commit
6d343e059b
@@ -20,6 +20,8 @@ func New(logger log.Logger) storage.Storage {
|
||||
passwords: make(map[string]storage.Password),
|
||||
offlineSessions: make(map[offlineSessionID]storage.OfflineSessions),
|
||||
connectors: make(map[string]storage.Connector),
|
||||
deviceRequests: make(map[string]storage.DeviceRequest),
|
||||
deviceTokens: make(map[string]storage.DeviceToken),
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
@@ -46,6 +48,8 @@ type memStorage struct {
|
||||
passwords map[string]storage.Password
|
||||
offlineSessions map[offlineSessionID]storage.OfflineSessions
|
||||
connectors map[string]storage.Connector
|
||||
deviceRequests map[string]storage.DeviceRequest
|
||||
deviceTokens map[string]storage.DeviceToken
|
||||
|
||||
keys storage.Keys
|
||||
|
||||
@@ -79,6 +83,18 @@ func (s *memStorage) GarbageCollect(now time.Time) (result storage.GCResult, err
|
||||
result.AuthRequests++
|
||||
}
|
||||
}
|
||||
for id, a := range s.deviceRequests {
|
||||
if now.After(a.Expiry) {
|
||||
delete(s.deviceRequests, id)
|
||||
result.DeviceRequests++
|
||||
}
|
||||
}
|
||||
for id, a := range s.deviceTokens {
|
||||
if now.After(a.Expiry) {
|
||||
delete(s.deviceTokens, id)
|
||||
result.DeviceTokens++
|
||||
}
|
||||
}
|
||||
})
|
||||
return result, nil
|
||||
}
|
||||
@@ -465,3 +481,25 @@ func (s *memStorage) UpdateConnector(id string, updater func(c storage.Connector
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *memStorage) CreateDeviceRequest(d storage.DeviceRequest) (err error) {
|
||||
s.tx(func() {
|
||||
if _, ok := s.deviceRequests[d.UserCode]; ok {
|
||||
err = storage.ErrAlreadyExists
|
||||
} else {
|
||||
s.deviceRequests[d.UserCode] = d
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *memStorage) CreateDeviceToken(t storage.DeviceToken) (err error) {
|
||||
s.tx(func() {
|
||||
if _, ok := s.deviceTokens[t.DeviceCode]; ok {
|
||||
err = storage.ErrAlreadyExists
|
||||
} else {
|
||||
s.deviceTokens[t.DeviceCode] = t
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user