df/bff/main.go

49 lines
983 B
Go

package main
import (
"database/sql"
"embed"
"io/fs"
"log"
"net/http"
"github.com/itsscb/df/bff/api"
db "github.com/itsscb/df/bff/db/sqlc"
"github.com/itsscb/df/bff/util"
_ "github.com/lib/pq"
)
//go:embed doc/swagger
var swaggerFiles embed.FS
func main() {
var swaggerFS http.FileSystem
config, err := util.LoadConfig(".")
if err != nil {
log.Fatal("cannot load config:", err)
}
conn, err := sql.Open(config.DBDriver, config.DBSource)
if err != nil {
log.Fatalf("could not connect to DB: %s", err)
}
if config.Environment == "development" {
subDir, err := fs.Sub(swaggerFiles, "doc/swagger")
if err != nil {
log.Fatalf("could not import swagger files")
}
swaggerFS = http.FS(subDir)
}
store := db.NewStore(conn)
server, err := api.NewServer(config, store, swaggerFS)
if err != nil {
log.Fatalf("could not start server: %s", err)
}
err = server.Start(config.ServerAddress)
if err != nil {
log.Fatal("cannot start server:", err)
}
}