finish setup data insertion, add world insertion
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user