mirror of
https://github.com/mgerb/go-discord-bot
synced 2026-01-09 16:42:48 +00:00
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
)
|
|
|
|
// UserEventLog - logger for user events
|
|
type UserEventLog struct {
|
|
ID uint `gorm:"primary_key; auto_increment; not null" json:"id"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
DeletedAt *time.Time `json:"deleted_at"`
|
|
Content string `json:"content"`
|
|
User User `json:"user"`
|
|
UserID string `json:"user_id"`
|
|
}
|
|
|
|
// UserEventLogSave -
|
|
func UserEventLogSave(conn *gorm.DB, m *UserEventLog) error {
|
|
return conn.Save(m).Error
|
|
}
|
|
|
|
// UserEventLogGet - returns all messages - must use paging
|
|
func UserEventLogGet(conn *gorm.DB, page int) ([]*UserEventLog, error) {
|
|
userEventLog := []*UserEventLog{}
|
|
err := conn.Offset(page*100).Limit(100).Order("created_at desc", true).Preload("User").Find(&userEventLog).Error
|
|
return userEventLog, err
|
|
}
|
|
|
|
// LogSoundPlayedEvent - log event when user plays sound clip
|
|
func LogSoundPlayedEvent(conn *gorm.DB, userID, soundName string, fromWebUI bool) error {
|
|
|
|
var content string
|
|
|
|
// from discord
|
|
if !fromWebUI {
|
|
content = "played sound clip: " + soundName
|
|
} else {
|
|
content = "played sound clip from web UI: " + soundName
|
|
}
|
|
|
|
// log play event
|
|
userEventLog := &UserEventLog{
|
|
UserID: userID,
|
|
Content: content,
|
|
}
|
|
|
|
return UserEventLogSave(conn, userEventLog)
|
|
}
|