turn relayer into a server framework and put actual relay code into ./basic

This commit is contained in:
fiatjaf
2021-12-25 21:22:40 -03:00
parent ac93e5c028
commit 30eae726c1
12 changed files with 268 additions and 203 deletions

44
basic/main.go Normal file
View File

@@ -0,0 +1,44 @@
package main
import (
"fmt"
"github.com/fiatjaf/relayer"
"github.com/jmoiron/sqlx"
"github.com/jmoiron/sqlx/reflectx"
"github.com/kelseyhightower/envconfig"
)
type BasicRelay struct {
PostgresDatabase string `envconfig:"POSTGRESQL_DATABASE"`
DB *sqlx.DB
}
func (b *BasicRelay) Name() string {
return "BasicRelay"
}
func (b *BasicRelay) Init() error {
err := envconfig.Process("", b)
if err != nil {
return fmt.Errorf("couldn't process envconfig: %w", err)
}
if db, err := initDB(b.PostgresDatabase); err != nil {
return fmt.Errorf("failed to open database: %w", err)
} else {
db.Mapper = reflectx.NewMapperFunc("json", sqlx.NameMapper)
b.DB = db
}
go cleanupRoutine(b.DB)
return nil
}
func main() {
var b BasicRelay
relayer.Start(&b)
}