chore: reorder part two
This commit is contained in:
+6
-5
@@ -2,16 +2,17 @@ package main
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"orbits-server/internal/api"
|
||||
"orbits-server/internal/database"
|
||||
"orbits-server/internal/utility"
|
||||
"orbits-server/internal/server/api"
|
||||
"orbits-server/internal/server/bootstrap"
|
||||
"orbits-server/internal/server/database"
|
||||
"orbits-server/internal/shared/utility"
|
||||
"os"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// grab the environment variables from the runtime environment
|
||||
// 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
|
||||
level := utility.ParseSlogLevel(env.LogLevel) // defaults to Info
|
||||
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
||||
@@ -26,7 +27,7 @@ func main() {
|
||||
|
||||
// checking directories to ensure its expected environment is ready
|
||||
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)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
package client
|
||||
@@ -4,9 +4,9 @@ import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
|
||||
"orbits-server/internal/api/middleware"
|
||||
"orbits-server/internal/api/routes"
|
||||
"orbits-server/internal/utility"
|
||||
"orbits-server/internal/server/api/middleware"
|
||||
"orbits-server/internal/server/api/routes"
|
||||
"orbits-server/internal/server/bootstrap"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
// All error messages from slog must have an error field with the golang error
|
||||
// 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)
|
||||
|
||||
// For a nice looking logger:
|
||||
+1
-1
@@ -3,7 +3,7 @@ package middleware
|
||||
import (
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"orbits-server/internal/api/response"
|
||||
"orbits-server/internal/server/api/response"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -3,8 +3,8 @@ package routes
|
||||
import (
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"orbits-server/internal/api/response"
|
||||
"orbits-server/internal/database"
|
||||
"orbits-server/internal/server/api/response"
|
||||
"orbits-server/internal/server/database"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
@@ -4,16 +4,16 @@ import (
|
||||
"errors"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"orbits-server/internal/api/response"
|
||||
"orbits-server/internal/database"
|
||||
"orbits-server/internal/utility"
|
||||
"orbits-server/internal/server/api/response"
|
||||
"orbits-server/internal/server/bootstrap"
|
||||
"orbits-server/internal/server/database"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"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.GET("/:filename", func(c *gin.Context) {
|
||||
f := c.Param("filename")
|
||||
@@ -1,12 +1,10 @@
|
||||
package utility
|
||||
package bootstrap
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Environment struct {
|
||||
@@ -98,18 +96,3 @@ func GrabEnvironment() Environment {
|
||||
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 (
|
||||
"os"
|
||||
@@ -21,12 +21,3 @@ func EnsureOperation(workDir string) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func RemoveFile(p string) error {
|
||||
err := os.Remove(p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"orbits-server/internal/utility"
|
||||
"orbits-server/internal/server/bootstrap"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
@@ -43,7 +43,7 @@ func KickoffDatabase(workDir string) (*gorm.DB, error) {
|
||||
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)
|
||||
ticker := time.NewTicker(timeInterval)
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"log/slog"
|
||||
"orbits-server/internal/utility"
|
||||
"orbits-server/internal/shared/utility"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/google/uuid"
|
||||
@@ -3,14 +3,15 @@ package database
|
||||
import (
|
||||
"errors"
|
||||
"log/slog"
|
||||
"orbits-server/internal/utility"
|
||||
"orbits-server/internal/server/bootstrap"
|
||||
"orbits-server/internal/shared/utility"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"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)
|
||||
if err != nil {
|
||||
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
|
||||
}
|
||||
|
||||
func watchdog(env utility.Environment, db *gorm.DB) {
|
||||
func watchdog(env bootstrap.Environment, db *gorm.DB) {
|
||||
slog.Debug("performing the watchdog cycle")
|
||||
|
||||
fsSet, err := filesystemGather(env)
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user