Documentation
¶
Index ¶
- func IndentJson(event interface{}) string
- func NewGORMLogger(zapLogger *zap.Logger) gormlogger.Interface
- func Zap() (*zap.Logger, error)
- type Database
- func (db *Database) AssignNextRequest(assistantID, guildID string) (*models.HelpRequest, error)
- func (db *Database) CancelHelpRequest(guildID, studentID string) error
- func (db *Database) CancelWaitingAssistant(assistantID string) error
- func (db *Database) ClearHelpRequests(assistantID, guildID string) error
- func (db *Database) Close() error
- func (db *Database) CreateCourse(course *models.Course) error
- func (db *Database) CreateHelpRequest(request *models.HelpRequest) error
- func (db *Database) CreateStudent(student *models.Student) error
- func (db *Database) DeleteStudent(student *models.Student) error
- func (db *Database) GetCourse(query *models.Course) (*models.Course, error)
- func (db *Database) GetCourses() ([]*models.Course, error)
- func (db *Database) GetHelpRequest(request *models.HelpRequest) (r *models.HelpRequest, err error)
- func (db *Database) GetOrCreateAssistant(assistant *models.Assistant) (a *models.Assistant, err error)
- func (db *Database) GetQueuePosition(guildID, userID string) (rowNumber int, err error)
- func (db *Database) GetStudent(s *models.Student) (student *models.Student, err error)
- func (db *Database) GetWaitingRequests(guildID string, num int) (requests []*models.HelpRequest, err error)
- func (db *Database) UpdateCourse(course *models.Course) error
- func (db *Database) UpdateCourses(courses []*qf.Course) error
- type Logger
- func (l Logger) Error(_ context.Context, str string, args ...interface{})
- func (l Logger) Info(_ context.Context, str string, args ...interface{})
- func (l Logger) LogMode(level gormlogger.LogLevel) gormlogger.Interface
- func (l Logger) Trace(_ context.Context, begin time.Time, fc func() (string, int64), err error)
- func (l Logger) Warn(_ context.Context, str string, args ...interface{})
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.
Types ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
func (*Database) AssignNextRequest ¶
func (db *Database) AssignNextRequest(assistantID, guildID string) (*models.HelpRequest, error)
func (*Database) CancelHelpRequest ¶
func (*Database) CancelWaitingAssistant ¶
func (*Database) ClearHelpRequests ¶
func (*Database) CreateHelpRequest ¶
func (db *Database) CreateHelpRequest(request *models.HelpRequest) error
func (*Database) GetHelpRequest ¶
func (db *Database) GetHelpRequest(request *models.HelpRequest) (r *models.HelpRequest, err error)
func (*Database) GetOrCreateAssistant ¶
func (*Database) GetQueuePosition ¶
func (*Database) GetStudent ¶
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
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) LogMode ¶
func (l Logger) LogMode(level gormlogger.LogLevel) gormlogger.Interface