database

package
v0.0.0-...-28a8de6 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IndentJson

func IndentJson(event interface{}) string

IndentJson returns a JSON formatted string with structured indents and line breaks.

func NewGORMLogger

func NewGORMLogger(zapLogger *zap.Logger) gormlogger.Interface

NewGORMLogger returns a zap-based logger for GORM. A logger instance is only returned if the LOGDB environment variable is set to a specific level. This logger is not recommended for production due to the high volume of SQL queries being performed and the associated noise in the logs; it is mainly useful for debugging database issues. If LOGDB is not set, the discard logger is returned.

func Zap

func Zap() (*zap.Logger, error)

Types

type Database

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

func OpenDatabase

func OpenDatabase(path string, logger *logrus.Logger) (*Database, error)

func (*Database) AssignNextRequest

func (db *Database) AssignNextRequest(assistantID, guildID string) (*models.HelpRequest, error)

func (*Database) CancelHelpRequest

func (db *Database) CancelHelpRequest(guildID, studentID string) error

func (*Database) CancelWaitingAssistant

func (db *Database) CancelWaitingAssistant(assistantID string) error

func (*Database) ClearHelpRequests

func (db *Database) ClearHelpRequests(assistantID, guildID string) error

func (*Database) Close

func (db *Database) Close() error

func (*Database) CreateCourse

func (db *Database) CreateCourse(course *models.Course) error

func (*Database) CreateHelpRequest

func (db *Database) CreateHelpRequest(request *models.HelpRequest) error

func (*Database) CreateStudent

func (db *Database) CreateStudent(student *models.Student) error

func (*Database) DeleteStudent

func (db *Database) DeleteStudent(student *models.Student) error

func (*Database) GetCourse

func (db *Database) GetCourse(query *models.Course) (*models.Course, error)

func (*Database) GetCourses

func (db *Database) GetCourses() ([]*models.Course, error)

func (*Database) GetHelpRequest

func (db *Database) GetHelpRequest(request *models.HelpRequest) (r *models.HelpRequest, err error)

func (*Database) GetOrCreateAssistant

func (db *Database) GetOrCreateAssistant(assistant *models.Assistant) (a *models.Assistant, err error)

func (*Database) GetQueuePosition

func (db *Database) GetQueuePosition(guildID, userID string) (rowNumber int, err error)

func (*Database) GetStudent

func (db *Database) GetStudent(s *models.Student) (student *models.Student, err error)

func (*Database) GetWaitingRequests

func (db *Database) GetWaitingRequests(guildID string, num int) (requests []*models.HelpRequest, err error)

GetWaitingRequests returns the oldest num requests that are not done. If num is 0, it returns all waiting requests.

db.GetWaitingRequests(0) // returns all waiting requests
db.GetWaitingRequests(5) // returns the 5 oldest waiting requests

func (*Database) UpdateCourse

func (db *Database) UpdateCourse(course *models.Course) error

func (*Database) UpdateCourses

func (db *Database) UpdateCourses(courses []*qf.Course) error

type Logger

type Logger struct {
	ZapLogger                 *zap.Logger
	LogLevel                  gormlogger.LogLevel
	SlowThreshold             time.Duration
	IgnoreRecordNotFoundError bool
}

Logger is an adaption of gorm.Logger that uses the zap logger. The logger is based on code from moul.io/zapgorm2.

func (Logger) Error

func (l Logger) Error(_ context.Context, str string, args ...interface{})

func (Logger) Info

func (l Logger) Info(_ context.Context, str string, args ...interface{})

func (Logger) LogMode

func (l Logger) LogMode(level gormlogger.LogLevel) gormlogger.Interface

func (Logger) Trace

func (l Logger) Trace(_ context.Context, begin time.Time, fc func() (string, int64), err error)

func (Logger) Warn

func (l Logger) Warn(_ context.Context, str string, args ...interface{})

Jump to

Keyboard shortcuts

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