Example #1
0
/*
Get the session for this request from Postgres
*/
func (sh *SessionHolder) Get(c web.C, r *http.Request) (*base.Session, error) {
	sessionId := sh.GetSessionId(r)
	if sessionId == "" {
		return nil, base.ErrorSessionNotFound
	}

	var session base.Session
	values := sessionValues{}

	err := sh.db.QueryRow("SELECT content FROM sessions WHERE id=$1", sessionId).Scan(values)
	if err == nil {
		session.Values = values
		session.SetId(sessionId)
	} else if err == sql.ErrNoRows {
		err = base.ErrorSessionNotFound
	}

	return &session, err
}