This commit is contained in:
Hadi
2025-09-24 17:20:03 +02:00
commit b9fbed9a54
83 changed files with 6241 additions and 0 deletions

61
back/server/server.go Normal file
View File

@@ -0,0 +1,61 @@
package server
import (
"database/sql"
"sync"
"time"
"github.com/charmbracelet/log"
"github.com/gin-gonic/gin"
_ "github.com/marcboeker/go-duckdb"
)
type Server struct {
Settings ServerSettings
Dataleaks *[]Dataleak
TotalRows *uint64
TotalDataleaks *uint64
TotalSize *uint64 // MB
Router *gin.Engine
Duckdb *sql.DB
Mu *sync.RWMutex
}
func NewServer() *Server {
zero := uint64(0)
emptyDataleak := []Dataleak{}
s := &Server{
Settings: LoadServerSettings(),
Mu: &sync.RWMutex{},
TotalDataleaks: &zero,
TotalRows: &zero,
TotalSize: &zero,
Dataleaks: &emptyDataleak,
}
var err error
s.Duckdb, err = sql.Open("duckdb", "")
if err != nil {
panic(err)
}
err = Cache(s)
if err != nil {
panic(err)
}
go func() {
for {
time.Sleep(s.Settings.ReloadDataleaksInterval)
err := Cache(s)
if err != nil {
log.Error(err)
}
}
}()
return s
}