aboutsummaryrefslogtreecommitdiffstats
path: root/store.go
diff options
context:
space:
mode:
Diffstat (limited to 'store.go')
-rw-r--r--store.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/store.go b/store.go
new file mode 100644
index 0000000..b744d88
--- /dev/null
+++ b/store.go
@@ -0,0 +1,35 @@
+package main
+
+import (
+ "database/sql"
+ "log"
+
+ _ "github.com/lib/pq"
+)
+
+type Session struct {
+ Id string
+ UserId string
+}
+
+type SessionStore interface {
+ Get(id string) (*Session, bool)
+}
+
+type PgSessionStore struct {
+ *sql.DB
+ cache map[string]*Session
+}
+
+func NewPgStore() *PgSessionStore {
+ db, err := sql.Open("postgres", "postgres://auth_master:pass@localhost/authdb")
+ if err != nil {
+ log.Panic(err)
+ }
+ return &PgSessionStore{db, make(map[string]*Session)}
+}
+
+func (store *PgSessionStore) Get(id string) (*Session, bool) {
+ s, ok := store.cache[id]
+ return s, ok
+}