Add PostgreSQL database with auto-created rsvps table

This commit is contained in:
Ian Gulliver
2025-12-29 11:34:52 -08:00
parent 8ba3651415
commit a2cb3aac72
3 changed files with 35 additions and 2 deletions

5
go.mod
View File

@@ -2,7 +2,10 @@ module tickets
go 1.25.4
require google.golang.org/api v0.258.0
require (
github.com/lib/pq v1.10.9
google.golang.org/api v0.258.0
)
require (
cloud.google.com/go/auth v0.17.0 // indirect

2
go.sum
View File

@@ -25,6 +25,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.7 h1:zrn2Ee/nWmHulBx5sAV
github.com/googleapis/enterprise-certificate-proxy v0.3.7/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo=
github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=

30
main.go
View File

@@ -2,6 +2,7 @@ package main
import (
"context"
"database/sql"
"encoding/base64"
"encoding/json"
"html/template"
@@ -11,13 +12,40 @@ import (
"path/filepath"
"strings"
_ "github.com/lib/pq"
"google.golang.org/api/idtoken"
)
var templates *template.Template
var (
templates *template.Template
db *sql.DB
)
func init() {
templates = template.Must(template.ParseGlob("static/*.html"))
var err error
db, err = sql.Open("postgres", os.Getenv("PGCONN"))
if err != nil {
log.Fatal("[ERROR] failed to open database: ", err)
}
if err = db.Ping(); err != nil {
log.Fatal("[ERROR] failed to connect to database: ", err)
}
_, err = db.Exec(`
CREATE TABLE IF NOT EXISTS rsvps (
event_id TEXT NOT NULL,
google_username TEXT NOT NULL,
num_people INTEGER NOT NULL DEFAULT 0,
donation DECIMAL(10,2) NOT NULL DEFAULT 0,
PRIMARY KEY (event_id, google_username)
)
`)
if err != nil {
log.Fatal("[ERROR] failed to create table: ", err)
}
}
func main() {