49 lines
983 B
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)
|
|
}
|
|
}
|