Files
crowsnest/cmd/frontend/main.go

51 lines
869 B
Go

package main
import (
"crowsnest/internal/model/database"
"database/sql"
"errors"
"log"
"net/http"
"os"
_ "github.com/lib/pq"
_ "github.com/mattn/go-sqlite3"
)
type App struct {
articles *database.ArticleModel
}
func main() {
// collect environement variables
databaseURL := os.Getenv("DB_URL")
dbDriver := os.Getenv("DB_DRIVER")
// connect to database
var db *sql.DB
var err error
switch {
case dbDriver == "sqlite3":
db, err = sql.Open("sqlite3", databaseURL)
if err != nil {
log.Fatal(err)
}
default:
log.Fatal(errors.New("given DB_DRIVER is not supported"))
}
// define app
app := &App{
articles: &database.ArticleModel{DB: db, DbDriver: dbDriver},
}
// start web server
server := http.Server{
Addr: ":8080",
Handler: app.routes(),
}
log.Println("server started, listening on :8080")
server.ListenAndServe()
}