mirror of
https://github.com/WiiLink24/wfc-server.git
synced 2026-08-28 19:44:25 -05:00
QR2: Add event logging
This commit is contained in:
@@ -25,6 +25,18 @@ func Event(eventType string, eventData map[string]any) {
|
||||
}
|
||||
}
|
||||
|
||||
func EventSynced(eventType string, eventData map[string]any) {
|
||||
mutex.RLock()
|
||||
defer mutex.RUnlock()
|
||||
for _, callback := range eventCallbacks {
|
||||
if callback.AllEvents {
|
||||
callback.Function(eventType, eventData)
|
||||
} else if _, ok := callback.EventTypes[eventType]; ok {
|
||||
callback.Function(eventType, eventData)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func RegisterEventCallback(eventTypes []string, callback func(eventType string, eventData map[string]any)) {
|
||||
eventTypeSet := make(map[string]struct{})
|
||||
allEvents := false
|
||||
|
||||
@@ -2,8 +2,9 @@ package logging
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"reflect"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -38,31 +39,19 @@ type webhookPayload struct {
|
||||
}
|
||||
|
||||
func encodeWebhookValue(value any) string {
|
||||
switch v := value.(type) {
|
||||
case string:
|
||||
return " - ``" + strings.ReplaceAll(v, "``", "` `") + "``"
|
||||
case int:
|
||||
return " - " + strconv.Itoa(v)
|
||||
case int32:
|
||||
return " - " + strconv.Itoa(int(v))
|
||||
case int64:
|
||||
return " - " + strconv.FormatInt(v, 10)
|
||||
case float32:
|
||||
return " - " + strconv.FormatFloat(float64(v), 'f', -1, 32)
|
||||
case float64:
|
||||
return " - " + strconv.FormatFloat(v, 'f', -1, 64)
|
||||
case []any:
|
||||
if reflect.TypeOf(value).Kind() == reflect.Array {
|
||||
var sb strings.Builder
|
||||
for i, item := range v {
|
||||
sb.WriteString(encodeWebhookValue(item))
|
||||
if i < len(v)-1 {
|
||||
s := reflect.ValueOf(value)
|
||||
for i := 0; i < s.Len(); i++ {
|
||||
sb.WriteString(encodeWebhookValue(s.Index(i).Interface()))
|
||||
if i < s.Len()-1 {
|
||||
sb.WriteString("\n")
|
||||
}
|
||||
}
|
||||
return sb.String()
|
||||
default:
|
||||
return " - (unknown)"
|
||||
}
|
||||
|
||||
return " - ``" + strings.ReplaceAll(fmt.Sprintf("%v", value), "``", "` `") + "``"
|
||||
}
|
||||
|
||||
func (w WebhookConfig) ReportEvent(eventType string, eventData map[string]any) {
|
||||
|
||||
Reference in New Issue
Block a user