summaryrefslogtreecommitdiff
path: root/server/cmd/main.go
blob: 823d8d4b0fea1b814301a69331b5a9fd6ad72f0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main

import (
	"context"
	"fmt"
	"log"
	"net/http"
	"os"

	"git.huntm.net/wedding/server/admin"
	"git.huntm.net/wedding/server/guest"
	"git.huntm.net/wedding/server/middleware"
	"github.com/jackc/pgx/v5/pgxpool"
)

var (
	user     = "postgres"
	password = os.Getenv("PASS")
	host     = "host.containers.internal"
	port     = "5432"
	database = "wedding"
)

func main() {
	databasePool, err := pgxpool.New(context.Background(),
		fmt.Sprintf("postgres://%s:%s@%s:%s/%s", user, password, host, port, database))
	if err != nil {
		log.Fatal(err)
	}
	defer databasePool.Close()

	guestStore := guest.NewStore(databasePool)
	guestHandler := guest.NewGuestHandler(guestStore)
	adminStore := admin.NewStore(databasePool)
	adminHandler := admin.NewAdminHandler(adminStore, guestStore)

	mux := http.NewServeMux()
	mux.Handle("/api/guests/", guestHandler)
	mux.Handle("/api/admin/", adminHandler)
	log.Fatal(http.ListenAndServe(":8080", middleware.Log(middleware.CORS(mux))))
}