server/admin/sync/full.go

47 lines
1.0 KiB
Go
Raw Normal View History

2017-12-09 09:54:16 +00:00
package sync
import (
"encoding/json"
"log"
"os"
2017-12-09 09:54:16 +00:00
"srs.epita.fr/fic-server/libfic"
"srs.epita.fr/fic-server/settings"
2017-12-09 09:54:16 +00:00
)
func SyncDeep(i Importer) map[string][]string {
errs := map[string][]string{}
errs["_themes"] = SyncThemes(i)
if themes, err := fic.GetThemes(); err == nil {
for _, theme := range themes {
errs[theme.Name] = SyncExercices(i, theme)
if exercices, err := theme.GetExercices(); err == nil {
for _, exercice := range exercices {
errs[theme.Name] = append(errs[theme.Name], SyncExerciceFiles(i, exercice)...)
errs[theme.Name] = append(errs[theme.Name], SyncExerciceHints(i, exercice)...)
errs[theme.Name] = append(errs[theme.Name], SyncExerciceKeys(i, exercice)...)
}
}
}
}
if fdto, err := os.Create("../htdocs-admin/full_import_report.json"); err == nil {
defer fdto.Close()
fdto.Write([]byte("disp("))
if out, err := json.Marshal(errs); err == nil {
fdto.Write(out)
} else {
log.Println(err)
}
fdto.Write([]byte(");"))
} else {
log.Println(err)
}
2017-12-09 09:54:16 +00:00
return errs
}