47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package sync
|
|
|
|
import (
|
|
"encoding/json"
|
|
"log"
|
|
"os"
|
|
|
|
"srs.epita.fr/fic-server/libfic"
|
|
"srs.epita.fr/fic-server/settings"
|
|
)
|
|
|
|
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)
|
|
}
|
|
|
|
return errs
|
|
}
|