finish setup data insertion, add world insertion

This commit is contained in:
lbenedar
2026-04-22 18:18:43 +03:00
parent 21abe68858
commit f46ff8333e
66 changed files with 2257 additions and 676 deletions

View File

@@ -1,6 +1,7 @@
package json
import (
"encoding/json"
"sync"
"gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/temp_models/db"
@@ -22,6 +23,19 @@ type Setup struct {
Worlds []*World `json:"worlds"`
}
func ParseSetup(data []byte) (*Setup, error) {
var modelSetup []Setup
err := json.Unmarshal(data, &modelSetup)
if err != nil {
return nil, err
}
if len(modelSetup) > 1 {
return nil, ErrorSetupMoreThanOne
}
return &modelSetup[0], nil
}
func (s *Setup) ToDB(dest *db.Setup) bool {
if dest == nil {
return false
@@ -39,11 +53,11 @@ func (s *Setup) ToDB(dest *db.Setup) bool {
PackageWarningsToDB(&dest.PackageWarnings, s.PackageWarnings)
wg := sync.WaitGroup{}
go CopySliceToDBParallel(&wg, &dest.Languages, s.Languages)
go CopySliceToDBParallel(&wg, &dest.Modules, s.Modules)
go CopySliceToDBParallel(&wg, &dest.News, s.News)
go CopySliceToDBParallel(&wg, &dest.Systems, s.Systems)
go CopySliceToDBParallel(&wg, &dest.Worlds, s.Worlds)
CopySliceToDBParallel(&wg, &dest.Languages, s.Languages)
CopySliceToDBParallel(&wg, &dest.Modules, s.Modules)
CopySliceToDBParallel(&wg, &dest.News, s.News)
CopySliceToDBParallel(&wg, &dest.Systems, s.Systems)
CopySliceToDBParallel(&wg, &dest.Worlds, s.Worlds)
wg.Wait()
return true