mirror of
https://git.sr.ht/~ashkeel/strimertul
synced 2024-09-18 01:50:50 +00:00
docs: add doc for strimertul meta keys
This commit is contained in:
parent
24f843f230
commit
764a084f83
3 changed files with 63 additions and 10 deletions
14
app.go
14
app.go
|
@ -109,7 +109,7 @@ func (a *App) startup(ctx context.Context) {
|
|||
}
|
||||
|
||||
// Set meta keys
|
||||
_ = a.db.PutKey("strimertul/version", appVersion)
|
||||
_ = a.db.PutKey(docs.VersionKey, appVersion)
|
||||
|
||||
a.ready.Set(true)
|
||||
runtime.EventsEmit(ctx, "ready", true)
|
||||
|
@ -176,20 +176,14 @@ func (a *App) initializeComponents() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
type ExternalLog struct {
|
||||
Level string `json:"level"`
|
||||
Message string `json:"message"`
|
||||
Data map[string]any `json:"data"`
|
||||
}
|
||||
|
||||
func (a *App) listenForLogs() (error, database.CancelFunc) {
|
||||
return a.db.SubscribeKey("strimertul/@log", func(newValue string) {
|
||||
var entry ExternalLog
|
||||
return a.db.SubscribeKey(docs.LogRPCKey, func(newValue string) {
|
||||
var entry docs.ExternalLog
|
||||
if err := json.Unmarshal([]byte(newValue), &entry); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
level, err := zapcore.ParseLevel(entry.Level)
|
||||
level, err := zapcore.ParseLevel(string(entry.Level))
|
||||
if err != nil {
|
||||
level = zapcore.InfoLevel
|
||||
}
|
||||
|
|
|
@ -26,8 +26,10 @@ func addKeys(keyMap interfaces.KeyMap) {
|
|||
func init() {
|
||||
// Put all enums here
|
||||
utils.MergeMap(Enums, twitch.Enums)
|
||||
utils.MergeMap(Enums, enums)
|
||||
|
||||
// Put all keys here
|
||||
addKeys(strimertulKeys)
|
||||
addKeys(twitch.Keys)
|
||||
addKeys(loyalty.Keys)
|
||||
addKeys(webserver.Keys)
|
||||
|
|
57
docs/strimertul.go
Normal file
57
docs/strimertul.go
Normal file
|
@ -0,0 +1,57 @@
|
|||
package docs
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"github.com/strimertul/strimertul/docs/interfaces"
|
||||
)
|
||||
|
||||
// Documentation stuff, keep updated at all times
|
||||
|
||||
const (
|
||||
VersionKey = "strimertul/version"
|
||||
LogRPCKey = "strimertul/@log"
|
||||
)
|
||||
|
||||
type ExternalLog struct {
|
||||
// Log level
|
||||
Level ExternalLogLevel `json:"level"`
|
||||
|
||||
// Log message
|
||||
Message string `json:"message"`
|
||||
|
||||
// Additional data as non-nested dictionary
|
||||
Data map[string]any `json:"data"`
|
||||
}
|
||||
|
||||
type ExternalLogLevel string
|
||||
|
||||
const (
|
||||
ExternalLogLevelDebug ExternalLogLevel = "debug"
|
||||
ExternalLogLevelInfo ExternalLogLevel = "info"
|
||||
ExternalLogLevelWarn ExternalLogLevel = "warn"
|
||||
ExternalLogLevelError ExternalLogLevel = "error"
|
||||
)
|
||||
|
||||
var enums = interfaces.EnumMap{
|
||||
"ExternalLogLevel": interfaces.Enum{
|
||||
Values: []any{
|
||||
ExternalLogLevelDebug,
|
||||
ExternalLogLevelInfo,
|
||||
ExternalLogLevelWarn,
|
||||
ExternalLogLevelError,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
var strimertulKeys = interfaces.KeyMap{
|
||||
VersionKey: interfaces.KeyDef{
|
||||
Description: "Strimertul version (semantic version, e.g. v3.4.0-alpha.1)",
|
||||
Type: reflect.TypeOf(""),
|
||||
},
|
||||
LogRPCKey: interfaces.KeyDef{
|
||||
Description: "Add a log entry",
|
||||
Type: reflect.TypeOf(ExternalLog{}),
|
||||
Tags: []interfaces.KeyTag{interfaces.TagRPC},
|
||||
},
|
||||
}
|
Loading…
Reference in a new issue