chore: reorder part two

This commit is contained in:
DaanSelen
2026-04-23 15:58:02 +02:00
parent 0556bc4932
commit c3aac38089
15 changed files with 58 additions and 50 deletions
+6 -5
View File
@@ -2,16 +2,17 @@ package main
import ( import (
"log/slog" "log/slog"
"orbits-server/internal/api" "orbits-server/internal/server/api"
"orbits-server/internal/database" "orbits-server/internal/server/bootstrap"
"orbits-server/internal/utility" "orbits-server/internal/server/database"
"orbits-server/internal/shared/utility"
"os" "os"
) )
func main() { func main() {
// grab the environment variables from the runtime environment // grab the environment variables from the runtime environment
// unfortunately since its before we configure the loglevel, we cannot use slog logging in those functions // unfortunately since its before we configure the loglevel, we cannot use slog logging in those functions
env := utility.GrabEnvironment() env := bootstrap.GrabEnvironment()
// configure the logger so we have nice json // configure the logger so we have nice json
level := utility.ParseSlogLevel(env.LogLevel) // defaults to Info level := utility.ParseSlogLevel(env.LogLevel) // defaults to Info
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{ logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
@@ -26,7 +27,7 @@ func main() {
// checking directories to ensure its expected environment is ready // checking directories to ensure its expected environment is ready
slog.Debug("checking if directories are present") slog.Debug("checking if directories are present")
if err := utility.EnsureOperation(env.DataDirectory); err != nil { if err := bootstrap.EnsureOperation(env.DataDirectory); err != nil {
slog.Error("failed to ensure the operating environment", "error", err) slog.Error("failed to ensure the operating environment", "error", err)
os.Exit(1) os.Exit(1)
} }
+1
View File
@@ -0,0 +1 @@
package client
@@ -4,9 +4,9 @@ import (
"fmt" "fmt"
"log/slog" "log/slog"
"orbits-server/internal/api/middleware" "orbits-server/internal/server/api/middleware"
"orbits-server/internal/api/routes" "orbits-server/internal/server/api/routes"
"orbits-server/internal/utility" "orbits-server/internal/server/bootstrap"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"gorm.io/gorm" "gorm.io/gorm"
@@ -15,7 +15,7 @@ import (
// All error messages from slog must have an error field with the golang error // All error messages from slog must have an error field with the golang error
// See bottom the the kickoff function for details // See bottom the the kickoff function for details
func KickoffApi(logger *slog.Logger, env utility.Environment, db *gorm.DB) { func KickoffApi(logger *slog.Logger, env bootstrap.Environment, db *gorm.DB) {
gin.SetMode(gin.ReleaseMode) gin.SetMode(gin.ReleaseMode)
// For a nice looking logger: // For a nice looking logger:
@@ -3,7 +3,7 @@ package middleware
import ( import (
"log/slog" "log/slog"
"net/http" "net/http"
"orbits-server/internal/api/response" "orbits-server/internal/server/api/response"
"strings" "strings"
"time" "time"
@@ -3,8 +3,8 @@ package routes
import ( import (
"log/slog" "log/slog"
"net/http" "net/http"
"orbits-server/internal/api/response" "orbits-server/internal/server/api/response"
"orbits-server/internal/database" "orbits-server/internal/server/database"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"gorm.io/gorm" "gorm.io/gorm"
@@ -4,16 +4,16 @@ import (
"errors" "errors"
"log/slog" "log/slog"
"net/http" "net/http"
"orbits-server/internal/api/response" "orbits-server/internal/server/api/response"
"orbits-server/internal/database" "orbits-server/internal/server/bootstrap"
"orbits-server/internal/utility" "orbits-server/internal/server/database"
"path/filepath" "path/filepath"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"gorm.io/gorm" "gorm.io/gorm"
) )
func RegisterFileRoutes(file *gin.RouterGroup, env utility.Environment, db *gorm.DB) { func RegisterFileRoutes(file *gin.RouterGroup, env bootstrap.Environment, db *gorm.DB) {
// /file/<file-name> // /file/<file-name>
file.GET("/:filename", func(c *gin.Context) { file.GET("/:filename", func(c *gin.Context) {
f := c.Param("filename") f := c.Param("filename")
@@ -1,12 +1,10 @@
package utility package bootstrap
import ( import (
"log/slog"
"os" "os"
"path/filepath" "path/filepath"
"slices" "slices"
"strconv" "strconv"
"strings"
) )
type Environment struct { type Environment struct {
@@ -98,18 +96,3 @@ func GrabEnvironment() Environment {
WatchdogSyncMode: safeStringGrab("WATCHDOG_SYNC_MODE", "strict"), WatchdogSyncMode: safeStringGrab("WATCHDOG_SYNC_MODE", "strict"),
} }
} }
func ParseSlogLevel(s string) slog.Level {
switch strings.ToLower(s) {
case "debug":
return slog.LevelDebug
case "warn", "warning":
return slog.LevelWarn
case "error":
return slog.LevelError
case "info":
fallthrough
default:
return slog.LevelInfo
}
}
@@ -1,4 +1,4 @@
package utility package bootstrap
import ( import (
"os" "os"
@@ -21,12 +21,3 @@ func EnsureOperation(workDir string) error {
return nil return nil
} }
func RemoveFile(p string) error {
err := os.Remove(p)
if err != nil {
return err
}
return nil
}
@@ -1,7 +1,7 @@
package database package database
import ( import (
"orbits-server/internal/utility" "orbits-server/internal/server/bootstrap"
"path/filepath" "path/filepath"
"time" "time"
@@ -43,7 +43,7 @@ func KickoffDatabase(workDir string) (*gorm.DB, error) {
return db, nil return db, nil
} }
func KickoffDatabaseWatchdog(env utility.Environment, db *gorm.DB) { func KickoffDatabaseWatchdog(env bootstrap.Environment, db *gorm.DB) {
timeInterval := time.Second * time.Duration(env.WatchdogInterval) timeInterval := time.Second * time.Duration(env.WatchdogInterval)
ticker := time.NewTicker(timeInterval) ticker := time.NewTicker(timeInterval)
@@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"io" "io"
"log/slog" "log/slog"
"orbits-server/internal/utility" "orbits-server/internal/shared/utility"
"path/filepath" "path/filepath"
"github.com/google/uuid" "github.com/google/uuid"
@@ -3,14 +3,15 @@ package database
import ( import (
"errors" "errors"
"log/slog" "log/slog"
"orbits-server/internal/utility" "orbits-server/internal/server/bootstrap"
"orbits-server/internal/shared/utility"
"os" "os"
"path/filepath" "path/filepath"
"gorm.io/gorm" "gorm.io/gorm"
) )
func filesystemGather(env utility.Environment) (map[string]struct{}, error) { func filesystemGather(env bootstrap.Environment) (map[string]struct{}, error) {
fsFiles, err := os.ReadDir(env.ContentDirectory) fsFiles, err := os.ReadDir(env.ContentDirectory)
if err != nil { if err != nil {
slog.Error("failed to read the content directory on the filesystem", "error", err) slog.Error("failed to read the content directory on the filesystem", "error", err)
@@ -44,7 +45,7 @@ func databaseGather(db *gorm.DB) (map[string]File, error) {
return dbSet, nil return dbSet, nil
} }
func watchdog(env utility.Environment, db *gorm.DB) { func watchdog(env bootstrap.Environment, db *gorm.DB) {
slog.Debug("performing the watchdog cycle") slog.Debug("performing the watchdog cycle")
fsSet, err := filesystemGather(env) fsSet, err := filesystemGather(env)
+31
View File
@@ -0,0 +1,31 @@
package utility
import (
"log/slog"
"os"
"strings"
)
func RemoveFile(p string) error {
err := os.Remove(p)
if err != nil {
return err
}
return nil
}
func ParseSlogLevel(s string) slog.Level {
switch strings.ToLower(s) {
case "debug":
return slog.LevelDebug
case "warn", "warning":
return slog.LevelWarn
case "error":
return slog.LevelError
case "info":
fallthrough
default:
return slog.LevelInfo
}
}