diff options
Diffstat (limited to 'store.go')
| -rw-r--r-- | store.go | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -20,6 +20,7 @@ type User struct { type Store interface { GetSession(id string) (*Session, bool) + NewSession(userId int64) *Session GetUser(name string) (*User, bool) } @@ -42,7 +43,7 @@ func (store *PgStore) GetSession(id string) (*Session, bool) { return s, true } s = new(Session) - row := store.QueryRow("SELECT id, user_id FROM session WHERE id = $1", id) + row := store.QueryRow("SELECT id, user_id FROM sessions WHERE id = $1", id) if err := row.Scan(&s.Id, &s.UserId); err != nil { return nil, false } @@ -50,9 +51,17 @@ func (store *PgStore) GetSession(id string) (*Session, bool) { return s, true } +func (store *PgStore) NewSession(userId int64) *Session { + var id string + store.QueryRow("INSERT INTO sessions(user_id) VALUES ($1) RETURNING id", userId).Scan(&id) + s := &Session{id, userId} + store.sessionCache[s.Id] = s + return s +} + func (store *PgStore) GetUser(name string) (*User, bool) { u := &User{Name: name} - row := store.QueryRow("SELECT id, password FROM user WHERE name = $1", name) + row := store.QueryRow("SELECT id, password FROM users WHERE name = $1", name) if err := row.Scan(&u.Id, &u.Password); err != nil { return nil, false } |
