package main
import (
"github.com/navidrome/navidrome/plugins/pdk/go/host"
"github.com/navidrome/navidrome/plugins/pdk/go/pdk"
)
type TestUsersInput struct {
Operation string `json:"operation"`
}
type TestUsersOutput struct {
Users []host.User `json:"users,omitempty"`
Error *string `json:"error,omitempty"`
}
func ndTestUsers() int32 {
var input TestUsersInput
if err := pdk.InputJSON(&input); err != nil {
errStr := err.Error()
pdk.OutputJSON(TestUsersOutput{Error: &errStr})
return 0
}
switch input.Operation {
case "get_users":
users, err := host.UsersGetUsers()
if err != nil {
errStr := err.Error()
pdk.OutputJSON(TestUsersOutput{Error: &errStr})
return 0
}
pdk.OutputJSON(TestUsersOutput{Users: users})
return 0
case "get_admins":
admins, err := host.UsersGetAdmins()
if err != nil {
errStr := err.Error()
pdk.OutputJSON(TestUsersOutput{Error: &errStr})
return 0
}
pdk.OutputJSON(TestUsersOutput{Users: admins})
return 0
default:
errStr := "unknown operation: " + input.Operation
pdk.OutputJSON(TestUsersOutput{Error: &errStr})
return 0
}
}
func main() {}