ignore error when no session is found in database
This commit is contained in:
		
							
								
								
									
										12
									
								
								pgstore.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								pgstore.go
									
									
									
									
									
								
							@@ -3,12 +3,12 @@ package pgstore
 | 
			
		||||
import (
 | 
			
		||||
	"database/sql"
 | 
			
		||||
	"encoding/base32"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
 | 
			
		||||
	"github.com/gorilla/securecookie"
 | 
			
		||||
	"github.com/gorilla/sessions"
 | 
			
		||||
 | 
			
		||||
@@ -96,6 +96,8 @@ func (db *PGStore) New(r *http.Request, name string) (*sessions.Session, error)
 | 
			
		||||
			err = db.load(session)
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				session.IsNew = false
 | 
			
		||||
			} else if errors.Cause(err) == sql.ErrNoRows {
 | 
			
		||||
				err = nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@@ -236,8 +238,7 @@ func (db *PGStore) createSessionsTable() error {
 | 
			
		||||
 | 
			
		||||
	_, err := db.DbPool.Exec(stmt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		msg := fmt.Sprintf("Unable to create http_sessions table in the database: %s\n", err.Error())
 | 
			
		||||
		return errors.New(msg)
 | 
			
		||||
		return errors.Wrapf(err, "Unable to create http_sessions table in the database")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
@@ -247,8 +248,7 @@ func (db *PGStore) selectOne(s *PGSession, key string) error {
 | 
			
		||||
	stmt := "SELECT id, key, data, created_on, modified_on, expires_on FROM http_sessions WHERE key = $1"
 | 
			
		||||
	err := db.DbPool.QueryRow(stmt, key).Scan(&s.ID, &s.Key, &s.Data, &s.CreatedOn, &s.ModifiedOn, &s.ExpiresOn)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		msg := fmt.Sprintf("Unable to find session in the database: %s\n", err.Error())
 | 
			
		||||
		return errors.New(msg)
 | 
			
		||||
		return errors.Wrapf(err, "Unable to find session in the database")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user