Jan Bader 6b3026dc8e
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
Improve dev container and taskfile
2022-04-08 20:14:40 +00:00

47 lines
988 B
Go

package main
import (
"fmt"
"io/fs"
"log"
"net/http"
"git.javil.eu/jacob1123/budgeteer/bcrypt"
"git.javil.eu/jacob1123/budgeteer/config"
"git.javil.eu/jacob1123/budgeteer/jwt"
"git.javil.eu/jacob1123/budgeteer/postgres"
"git.javil.eu/jacob1123/budgeteer/server"
"git.javil.eu/jacob1123/budgeteer/web"
)
func main() {
cfg, err := config.LoadConfig()
if err != nil {
log.Fatalf("load config: %v", err)
}
queries, err := postgres.Connect("pgx", cfg.DatabaseConnection)
if err != nil {
log.Fatalf("connect to database: %v", err)
}
static, err := fs.Sub(web.Static, "dist")
if err != nil {
panic("open static files")
}
tokenVerifier, err := jwt.NewTokenVerifier(cfg.SessionSecret)
if err != nil {
panic(fmt.Errorf("create token verifier: %w", err))
}
handler := &server.Handler{
Service: queries,
TokenVerifier: tokenVerifier,
CredentialsVerifier: &bcrypt.Verifier{},
StaticFS: http.FS(static),
}
handler.Serve()
}