mysql

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

type Database struct {
	Options Options
	GormDB  *gorm.DB
	// contains filtered or unexported fields
}

func New

func New(opts Options) *Database

New returns a new mysql sessions database.

func (*Database) Acquire

func (db *Database) Acquire(sid string, expires time.Duration) sessions.LifeTime

Acquire receives a session's lifetime from the database, if the return value is LifeTime{} then the session manager sets the life time based on the expiration duration lives in configuration.

func (*Database) Clear

func (db *Database) Clear(sid string) error

Clear removes all session key values but it keeps the session entry.

func (*Database) Close

func (db *Database) Close() error

Close terminates the mysql connection.

func (*Database) Decode

func (db *Database) Decode(sid, key string, outPtr interface{}) error

Decode binds the "outPtr" to the value associated to the provided "key".

func (*Database) Delete

func (db *Database) Delete(sid string, key string) bool

Delete removes a session key value based on its key.

func (*Database) Get

func (db *Database) Get(sid string, key string) interface{}

Get retrieves a session value based on the key.

func (*Database) Len

func (db *Database) Len(sid string) int

Len returns the length of the session's entries (keys).

func (*Database) OnUpdateExpiration

func (db *Database) OnUpdateExpiration(sid string, newExpires time.Duration) error

OnUpdateExpiration will re-set the database's session's entry ttl.

func (*Database) Release

func (db *Database) Release(sid string) error

Release destroys the session, it clears and removes the session entry, session manager will create a new session ID on the next request after this call.

func (*Database) Set

func (db *Database) Set(sid string, key string, value interface{}, _ time.Duration, _ bool) error

Set sets a key value of a specific session. Ignore the "immutable".

func (*Database) SetLogger

func (db *Database) SetLogger(logger *golog.Logger)

SetLogger sets the logger once before server ran. By default, the Iris one is injected.

func (*Database) Visit

func (db *Database) Visit(sid string, cb func(key string, value interface{})) error

Visit loops through all session keys and values.

type GormSession

type GormSession struct {
	ID          int64          `gorm:"column:id;primaryKey"`
	SessionKey  string         `gorm:"column:session_key"`
	SessionData *SessionData   `gorm:"column:session_data"`
	Expires     time.Time      `gorm:"column:expires"`
	CreatedAt   time.Time      `gorm:"column:created_at"`
	UpdatedAt   time.Time      `gorm:"column:updated_at"`
	DeletedAt   gorm.DeletedAt `gorm:"column:deleted_at"`
}

type Options

type Options struct {
	Host      string
	Port      int
	Username  string
	Password  string
	DataBase  string
	TableName string
	GormDB    *gorm.DB
}

func (*Options) GenerateDSN

func (opts *Options) GenerateDSN() string

type SessionData

type SessionData struct {
	// contains filtered or unexported fields
}

func (*SessionData) Clear

func (sd *SessionData) Clear()

func (*SessionData) Delete

func (sd *SessionData) Delete(key string)

func (*SessionData) Get

func (sd *SessionData) Get(key string) (interface{}, error)

func (*SessionData) GormDataType

func (sd *SessionData) GormDataType() string

func (*SessionData) Len

func (sd *SessionData) Len() int

func (*SessionData) MarshalJSON

func (sd *SessionData) MarshalJSON() ([]byte, error)

MarshalJSON to output non base64 encoded []byte

func (*SessionData) Scan

func (sd *SessionData) Scan(value interface{}) error

Scan scan value into Jsonb, implements sql.Scanner interface

func (*SessionData) Set

func (sd *SessionData) Set(key string, value interface{})

func (*SessionData) UnmarshalJSON

func (sd *SessionData) UnmarshalJSON(b []byte) error

UnmarshalJSON to deserialize []byte

func (*SessionData) Value

func (sd *SessionData) Value() (driver.Value, error)

Value return json value, implement driver.Valuer interface

func (*SessionData) Visit

func (sd *SessionData) Visit(cb func(key string, value interface{}))

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL