init
This commit is contained in:
61
back/server/server.go
Normal file
61
back/server/server.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user