Add a LevelDB database

This commit is contained in:
nemunaire 2022-10-05 20:26:37 +02:00
commit 444d064ba9
8 changed files with 136 additions and 75 deletions

15
app.go
View file

@ -10,11 +10,13 @@ import (
"git.nemunai.re/nemunaire/reveil/api"
"git.nemunai.re/nemunaire/reveil/config"
"git.nemunai.re/nemunaire/reveil/model"
"git.nemunai.re/nemunaire/reveil/ui"
)
type App struct {
cfg *config.Config
db *reveil.LevelDBStorage
router *gin.Engine
srv *http.Server
}
@ -30,9 +32,15 @@ func NewApp(cfg *config.Config) App {
c.Next()
})
// Open Database
db, err := reveil.NewLevelDBStorage(cfg.LevelDBPath)
if err != nil {
log.Fatal("Unable to open the database:", err)
}
// Register routes
ui.DeclareRoutes(router, cfg)
api.DeclareRoutes(router, cfg)
api.DeclareRoutes(router, cfg, db)
router.GET("/api/version", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"version": Version})
@ -41,6 +49,7 @@ func NewApp(cfg *config.Config) App {
// We are ready!
app := App{
cfg: cfg,
db: db,
router: router,
}
@ -65,4 +74,8 @@ func (app *App) Stop() {
if err := app.srv.Shutdown(ctx); err != nil {
log.Fatal("Server Shutdown:", err)
}
if err := app.db.Close(); err != nil {
log.Fatal("Database Close:", err)
}
}