email/db/util.go

44 lines
831 B
Go

package db
import (
"database/sql"
"flag"
"fmt"
_ "github.com/lib/pq"
)
var (
user = flag.String("dbuser", "gomail", "PostgreSQL user name")
name = flag.String("dbname", "gomail", "PostgreSQL DB name")
sslmode = flag.String("dbsslmode", "disable", "PostgreSQL sslmode setting")
)
type Conn struct {
*sql.DB
}
// NewDB creates connection to PostgreSQL DB. If dsn is empty, the flags
// -dbuser, -dbname, -dbsslmode are used.
func NewConn(dsn string) (*Conn, error) {
if dsn == "" {
dsn = fmt.Sprintf("user=%s dbname=%s sslmode=%s", *user, *name,
*sslmode)
}
db, err := sql.Open("postgres", dsn)
return &Conn{DB: db}, err
}
func (c *Conn) OriginalBlobByHash(hash string, blob *[]byte) error {
row := c.QueryRow(`
SELECT
blob
FROM
original
WHERE
hash = $1
`, hash)
return row.Scan(blob)
}