this repo has no description

fix: actually include services....

Changed files
+94
cmd
+61
cmd/bodega/main.go
···
+
package main
+
+
import (
+
"os"
+
+
"github.com/ClickHouse/clickhouse-go/v2"
+
"github.com/urfave/cli/v2"
+
)
+
+
func main() {
+
app := cli.App{
+
Name: "bodega",
+
Action: run,
+
Flags: []cli.Flag{
+
&cli.StringFlag{
+
Name: "clickhouse-addr",
+
EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_ADDR"},
+
Required: true,
+
},
+
&cli.StringFlag{
+
Name: "clickhouse-database",
+
EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_DATABASE"},
+
Required: true,
+
},
+
&cli.StringFlag{
+
Name: "clickhouse-user",
+
EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_USER"},
+
Value: "default",
+
},
+
&cli.StringFlag{
+
Name: "clickhouse-pass",
+
EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_PASS"},
+
Required: true,
+
},
+
},
+
}
+
+
app.Run(os.Args)
+
}
+
+
var run = func(cmd *cli.Context) error {
+
conn, err := clickhouse.Open(&clickhouse.Options{
+
Addr: []string{cmd.String("clickhouse-addr")},
+
Auth: clickhouse.Auth{
+
Database: cmd.String("clickhouse-database"),
+
Username: cmd.String("clickhouse-user"),
+
Password: cmd.String("clickhouse-pass"),
+
},
+
})
+
if err != nil {
+
return err
+
}
+
defer conn.Close()
+
+
var entries []ClickhousePLCEntry
+
if err := conn.Select(cmd.Context, &entries, "SELECT..."); err != nil {
+
return err
+
}
+
+
return nil
+
}
+28
cmd/bodega/plc_models.go
···
+
package main
+
+
import (
+
"time"
+
)
+
+
type ClickhousePLCEntry struct {
+
Did string `ch:"did"`
+
Cid string `ch:"cid"`
+
Nullified bool `ch:"nullified"`
+
CreatedAt time.Time `ch:"created_at"`
+
PlcOpSig string `ch:"plc_op_sig"`
+
PlcOpPrev string `ch:"plc_op_prev"`
+
PlcOpType string `ch:"plc_op_type"`
+
PlcOpServices []string `ch:"plc_op_services"`
+
PlcOpAlsoKnownAs []string `ch:"plc_op_also_known_as"`
+
PlcOpRotationKeys []string `ch:"plc_op_rotation_keys"`
+
PlcTombSig string `ch:"plc_tomb_sig"`
+
PlcTombPrev string `ch:"plc_tomb_prev"`
+
PlcTombType string `ch:"plc_tomb_type"`
+
LegacyOpSig string `ch:"legacy_op_sig"`
+
LegacyOpPrev string `ch:"legacy_op_prev"`
+
LegacyOpType string `ch:"legacy_op_type"`
+
LegacyOpHandle string `ch:"legacy_op_handle"`
+
LegacyOpService string `ch:"legacy_op_service"`
+
LegacyOpSigningKey string `ch:"legacy_op_signing_key"`
+
LegacyOpRecoveryKey string `ch:"legacy_op_recovery_key"`
+
}
+5
plc_models.go
···
che.PlcOpPrev = *pop.Prev
}
che.PlcOpType = pop.Type
+
services := []string{}
+
for _, s := range pop.Services {
+
services = append(services, s.Endpoint)
+
}
+
che.PlcOpServices = services
che.PlcOpAlsoKnownAs = pop.AlsoKnownAs
che.PlcOpRotationKeys = pop.RotationKeys
if e.Operation.PLCOperation.Services == nil {