39 lines
809 B
Go
39 lines
809 B
Go
package server
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"encoding/hex"
|
|
"sync"
|
|
"time"
|
|
"yoresee_dropbox/internal/store"
|
|
)
|
|
|
|
type Server struct {
|
|
store *store.Store
|
|
accessToken string
|
|
sessions map[string]int64
|
|
shareSessions map[string]string
|
|
loginAttempts map[string]int
|
|
loginLockout map[string]time.Time
|
|
mu sync.Mutex
|
|
workspace string
|
|
}
|
|
|
|
func New(store *store.Store, accessToken string, workspace string) *Server {
|
|
return &Server{
|
|
store: store,
|
|
accessToken: accessToken,
|
|
sessions: make(map[string]int64),
|
|
shareSessions: make(map[string]string),
|
|
loginAttempts: make(map[string]int),
|
|
loginLockout: make(map[string]time.Time),
|
|
workspace: workspace,
|
|
}
|
|
}
|
|
|
|
func generateUUID() string {
|
|
b := make([]byte, 16)
|
|
rand.Read(b)
|
|
return hex.EncodeToString(b)
|
|
}
|