Files
streamctl/pkg/streamd/grpc/goconv/backend_info.go
2024-10-31 00:11:04 +00:00

46 lines
1.1 KiB
Go

package goconv
import (
"encoding/json"
"fmt"
"github.com/xaionaro-go/streamctl/pkg/streamcontrol"
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/kick"
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/obs"
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/twitch"
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/youtube"
"github.com/xaionaro-go/streamctl/pkg/streamd/api"
)
func BackendDataGRPC2Go(
platID streamcontrol.PlatformName,
dataString string,
) (any, error) {
var data any
var err error
switch platID {
case obs.ID:
_data := api.BackendDataOBS{}
err = json.Unmarshal([]byte(dataString), &_data)
data = _data
case twitch.ID:
_data := api.BackendDataTwitch{}
err = json.Unmarshal([]byte(dataString), &_data)
data = _data
case kick.ID:
_data := api.BackendDataKick{}
err = json.Unmarshal([]byte(dataString), &_data)
data = _data
case youtube.ID:
_data := api.BackendDataYouTube{}
err = json.Unmarshal([]byte(dataString), &_data)
data = _data
default:
return nil, fmt.Errorf(
"unknown platform: '%s'",
platID,
)
}
return data, err
}