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

33
basic/postgresql.go Normal file
View File

@@ -0,0 +1,33 @@
package main
import (
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
"github.com/rs/zerolog/log"
)
func initDB(dburl string) (*sqlx.DB, error) {
db, err := sqlx.Connect("postgres", dburl)
if err != nil {
return nil, err
}
_, err = db.Exec(`
CREATE TABLE IF NOT EXISTS event (
id text NOT NULL,
pubkey text NOT NULL,
created_at integer NOT NULL,
kind integer NOT NULL,
tags jsonb NOT NULL,
content text NOT NULL,
sig text NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS ididx ON event (id);
CREATE UNIQUE INDEX IF NOT EXISTS pubkeytimeidx ON event (pubkey, created_at);
`)
log.Print(err)
return db, nil
}
const tagConditions = `jsonb_path_match(tags, '$[*][1] == $value', jsonb_build_object('value', ?::text))`