github.com/nais/knorten@v0.0.0-20240104110906-55926958e361/pkg/database/sessions.go (about) 1 package database 2 3 import ( 4 "context" 5 "database/sql" 6 "errors" 7 "strings" 8 9 "github.com/nais/knorten/pkg/api/auth" 10 "github.com/nais/knorten/pkg/database/gensql" 11 ) 12 13 func (r *Repo) SessionCreate(ctx context.Context, session *auth.Session) error { 14 return r.querier.SessionCreate(ctx, gensql.SessionCreateParams{ 15 Name: session.Name, 16 Email: strings.ToLower(session.Email), 17 Token: session.Token, 18 AccessToken: session.AccessToken, 19 Expires: session.Expires, 20 IsAdmin: session.IsAdmin, 21 }) 22 } 23 24 func (r *Repo) SessionGet(ctx context.Context, token string) (*auth.Session, error) { 25 dbSession, err := r.querier.SessionGet(ctx, token) 26 if err != nil { 27 return nil, err 28 } 29 30 return &auth.Session{ 31 Email: dbSession.Email, 32 Name: dbSession.Name, 33 AccessToken: dbSession.AccessToken, 34 Token: dbSession.Token, 35 Expires: dbSession.Expires, 36 IsAdmin: dbSession.IsAdmin, 37 }, nil 38 } 39 40 func (r *Repo) SessionDelete(ctx context.Context, token string) error { 41 err := r.querier.SessionDelete(ctx, token) 42 if err != nil { 43 if errors.Is(err, sql.ErrNoRows) { 44 r.log.Info("no session exists") 45 return nil 46 } 47 return err 48 } 49 50 return nil 51 }