Got cool stuff working
This commit is contained in:
63
main.go
63
main.go
@@ -1,18 +1,71 @@
|
||||
package main
|
||||
|
||||
import "gitea.seeseepuff.be/seeseemelk/mysqlite"
|
||||
import "embed"
|
||||
import "log"
|
||||
import (
|
||||
"embed"
|
||||
"gitea.seeseepuff.be/seeseemelk/mysqlite"
|
||||
"github.com/gin-gonic/gin"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
//go:embed migrations/*.sql
|
||||
var migrations embed.FS
|
||||
|
||||
//go:embed templates/*.gohtml
|
||||
var templateFS embed.FS
|
||||
|
||||
func main() {
|
||||
log.Println("Starting...")
|
||||
db, err := mysqlite.OpenDb("pcinv.db3")
|
||||
if err != nil {
|
||||
log.Fatalf("error opening db: %v", err)
|
||||
}
|
||||
defer db.Close()
|
||||
defer db.MustClose()
|
||||
|
||||
db.MigrateDb(migrations, "migrations")
|
||||
err = db.MigrateDb(migrations, "migrations")
|
||||
if err != nil {
|
||||
log.Fatalf("error migrating db: %v", err)
|
||||
}
|
||||
|
||||
app := &App{
|
||||
db: db,
|
||||
}
|
||||
|
||||
templates, err := template.New("undefined.gohtml").
|
||||
Funcs(template.FuncMap{
|
||||
"statusText": http.StatusText,
|
||||
}).
|
||||
ParseFS(templateFS, "templates/*.gohtml")
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("error parsing templates: %v", err)
|
||||
}
|
||||
|
||||
r := gin.Default()
|
||||
r.SetHTMLTemplate(templates)
|
||||
r.StaticFS("/static", staticFiles)
|
||||
r.Use(errorHandler)
|
||||
r.GET("/", app.getIndex)
|
||||
r.GET("/device", app.getDevice)
|
||||
err = r.Run()
|
||||
if err != nil {
|
||||
log.Fatalf("error serving website: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
type ErrorVM struct {
|
||||
Errors []*gin.Error
|
||||
StatusCode int
|
||||
}
|
||||
|
||||
func errorHandler(c *gin.Context) {
|
||||
c.Next()
|
||||
if len(c.Errors) != 0 {
|
||||
vm := ErrorVM{
|
||||
Errors: c.Errors,
|
||||
StatusCode: c.Writer.Status(),
|
||||
}
|
||||
c.HTML(vm.StatusCode, "errors", vm)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user