wfc-server/database/events.go
2026-04-05 09:52:28 -04:00

35 lines
751 B
Go

package database
import (
"wwfc/common"
"wwfc/logging"
)
const (
insertEventQuery = `
INSERT INTO events (event_type, event_data)
VALUES ($1, $2)
RETURNING id`
)
func (c *Connection) InsertEvent(eventType string, eventData map[string]any) (int, error) {
var eventId int
err := c.pool.QueryRow(c.ctx, insertEventQuery, eventType, eventData).Scan(&eventId)
if err != nil {
return 0, err
}
return eventId, nil
}
func (c *Connection) RegisterEvents(config common.Config, eventTypes []string) {
if !config.EventReporting.LogToDatabase {
return
}
logging.RegisterEventCallback(eventTypes, func(eventType string, eventData map[string]any) {
_, err := c.InsertEvent(eventType, eventData)
if err != nil {
panic(err)
}
})
}