Add PostgreSQL database with auto-created rsvps table
This commit is contained in:
5
go.mod
5
go.mod
@@ -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
2
go.sum
@@ -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
30
main.go
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user