chore: reorder part two
This commit is contained in:
+6
-5
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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:
|
||||||
+1
-1
@@ -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)
|
||||||
@@ -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