2020-12-12 03:04:03 +00:00

60 lines
2.4 KiB
Go

package main
import (
"github.com/jackc/pgx/pgxpool"
"context"
"log"
)
func writePost(pool *pgxpool.Pool, reportpost ReportPost) {
conn, err := pool.Acquire(context.Background())
if err != nil {
log.Fatal("Error connecting to database:", err)
}
defer conn.Release()
// Insert new account if new
var accountid int
err = conn.QueryRow(context.Background(), "INSERT INTO accounts (acct, avatar, bot, created_at, display_name, uri) VALUES($1, $2, $3, $4, $5, $6) ON CONFLICT(acct) DO UPDATE SET acct=EXCLUDED.acct RETURNING id", reportpost.Account.Acct, reportpost.Account.Avatar, reportpost.Account.Bot, reportpost.Account.Created_at, reportpost.Account.Display_name, reportpost.Account.Url).Scan(&accountid)
if err != nil {
log.Print("First ", err)
log.Print("--------------------------")
log.Print("Reported error: ", err)
log.Print("Account Acct: ", reportpost.Account.Acct)
log.Print("Account Avatar: ", reportpost.Account.Avatar)
log.Print("Account Avatar len: ", len(reportpost.Account.Avatar))
log.Print("Account Bot: ", reportpost.Account.Bot)
log.Print("Account Created_at: ", reportpost.Account.Created_at)
log.Print("Account Display: ", reportpost.Account.Display_name)
log.Print("Account URL: ", reportpost.Account.Url)
log.Print(reportpost)
log.Print("--------------------------")
log.Fatal("Unable to write record to database")
}
// Insert new post if new
_, err = conn.Exec(context.Background(), "INSERT INTO posts (uri, content, created_at, normalized, account_id, posthash) VALUES ($1, $2, $3, $4, $5, $6) ON CONFLICT (posthash) DO NOTHING", reportpost.Url, reportpost.Content, reportpost.Created_at, reportpost.normalized, accountid, reportpost.posthash)
if err != nil { // For now I want to know why this failed.
log.Print("Second ", err)
log.Print("--------------------------")
log.Print("Reported error: ", err)
log.Print("Url: ", reportpost.Url)
log.Print("Content: ", reportpost.Content)
log.Print("Created_at: ", reportpost.Created_at)
log.Print("normalized: ", reportpost.normalized)
log.Print("account_id", accountid)
log.Print("posthash: ", reportpost.posthash)
log.Print("--------------------------")
log.Fatal("Unable to write record to database")
}
}
func get_db_pool() (*pgxpool.Pool) {
// Setup Database
pool, err := pgxpool.Connect(context.Background(), "postgres://postgres@127.0.0.1/fedilogue")
if err != nil {
log.Fatal("Unable to connect to database:", err)
}
return pool
}