mirror of
https://github.com/WiiLink24/wfc-server.git
synced 2026-05-06 13:40:04 -05:00
35 lines
751 B
Go
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)
|
|
}
|
|
})
|
|
}
|