Timo Riegebauer 860135aff1 first commit
2025-04-22 09:08:17 +00:00

56 lines
872 B
Go

package app
import (
"fmt"
"log"
"os"
"backend/router"
"git.trcreatives.com/triegebauer/go-dart"
"github.com/joho/godotenv"
)
type App struct {
d *dart.Dart
}
func New() *App {
if err := godotenv.Load(); err != nil {
log.Fatal(err)
}
d := dart.New()
d.WithMySQLDatabase(dart.MySQLConfig{
Host: os.Getenv("DB_HOST"),
Port: os.Getenv("DB_PORT"),
Username: os.Getenv("DB_USERNAME"),
Password: os.Getenv("DB_PASSWORD"),
Database: os.Getenv("DB_DATABASE"),
})
router.SetupRoutes(d)
return &App{
d,
}
}
func (a *App) Start() {
listenAddr := fmt.Sprintf("%s:%s", os.Getenv("APP_HOST"), os.Getenv("APP_PORT"))
log.Fatal(a.d.Start(listenAddr))
}
func (a *App) Migrate(dst ...interface{}) error {
db, err := a.d.DB()
if err != nil {
return err
}
if err := db.Conn.AutoMigrate(dst); err != nil {
return err
}
return nil
}