admin: Fix marshal of error in SyncReport
This commit is contained in:
parent
86d9a039c8
commit
95c992555c
@ -52,8 +52,11 @@ func declareSyncRoutes(router *gin.RouterGroup) {
|
|||||||
apiSyncDeepRoutes.POST("", func(c *gin.Context) {
|
apiSyncDeepRoutes.POST("", func(c *gin.Context) {
|
||||||
theme := c.MustGet("theme").(*fic.Theme)
|
theme := c.MustGet("theme").(*fic.Theme)
|
||||||
|
|
||||||
st := sync.SyncThemeDeep(sync.GlobalImporter, theme, 0, 250)
|
var st []string
|
||||||
sync.EditDeepReport(&sync.SyncReport{Themes: map[string][]error{theme.Name: st}}, false)
|
for _, se := range sync.SyncThemeDeep(sync.GlobalImporter, theme, 0, 250) {
|
||||||
|
st = append(st, se.Error())
|
||||||
|
}
|
||||||
|
sync.EditDeepReport(&sync.SyncReport{Themes: map[string][]string{theme.Name: st}}, false)
|
||||||
sync.DeepSyncProgress = 255
|
sync.DeepSyncProgress = 255
|
||||||
c.JSON(http.StatusOK, st)
|
c.JSON(http.StatusOK, st)
|
||||||
})
|
})
|
||||||
@ -211,8 +214,11 @@ func autoSync(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
st := sync.SyncThemeDeep(sync.GlobalImporter, theme, 0, 250)
|
var st []string
|
||||||
sync.EditDeepReport(&sync.SyncReport{Themes: map[string][]error{theme.Name: st}}, false)
|
for _, se := range sync.SyncThemeDeep(sync.GlobalImporter, theme, 0, 250) {
|
||||||
|
st = append(st, se.Error())
|
||||||
|
}
|
||||||
|
sync.EditDeepReport(&sync.SyncReport{Themes: map[string][]string{theme.Name: st}}, false)
|
||||||
sync.DeepSyncProgress = 255
|
sync.DeepSyncProgress = 255
|
||||||
|
|
||||||
settings.ForceRegeneration()
|
settings.ForceRegeneration()
|
||||||
|
@ -30,11 +30,11 @@ type SyncReport struct {
|
|||||||
DateStart time.Time `json:"_started"`
|
DateStart time.Time `json:"_started"`
|
||||||
DateEnd time.Time `json:"_ended"`
|
DateEnd time.Time `json:"_ended"`
|
||||||
DateUpdated []time.Time `json:"_updated"`
|
DateUpdated []time.Time `json:"_updated"`
|
||||||
Regeneration []error `json:"_regeneration"`
|
Regeneration []string `json:"_regeneration"`
|
||||||
SyncError error `json:"_sync,omitempty"`
|
SyncError error `json:"_sync,omitempty"`
|
||||||
SyncId string `json:"_id,omitempty"`
|
SyncId string `json:"_id,omitempty"`
|
||||||
ThemesSync []error `json:"_themes,omitempty"`
|
ThemesSync []string `json:"_themes,omitempty"`
|
||||||
Themes map[string][]error `json:"themes"`
|
Themes map[string][]string `json:"themes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// SpeedySyncDeep performs a recursive synchronisation without importing files.
|
// SpeedySyncDeep performs a recursive synchronisation without importing files.
|
||||||
@ -48,7 +48,7 @@ func SpeedySyncDeep(i Importer) (errs SyncReport) {
|
|||||||
}()
|
}()
|
||||||
DeepSyncProgress = 1
|
DeepSyncProgress = 1
|
||||||
|
|
||||||
errs.Themes = map[string][]error{}
|
errs.Themes = map[string][]string{}
|
||||||
|
|
||||||
startTime := time.Now()
|
startTime := time.Now()
|
||||||
|
|
||||||
@ -60,7 +60,10 @@ func SpeedySyncDeep(i Importer) (errs SyncReport) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
errs.DateStart = startTime
|
errs.DateStart = startTime
|
||||||
errs.ThemesSync = SyncThemes(i)
|
sterrs := SyncThemes(i)
|
||||||
|
for _, sterr := range sterrs {
|
||||||
|
errs.ThemesSync = append(errs.ThemesSync, sterr.Error())
|
||||||
|
}
|
||||||
|
|
||||||
if themes, err := fic.GetThemes(); err == nil {
|
if themes, err := fic.GetThemes(); err == nil {
|
||||||
DeepSyncProgress = 2
|
DeepSyncProgress = 2
|
||||||
@ -68,7 +71,10 @@ func SpeedySyncDeep(i Importer) (errs SyncReport) {
|
|||||||
|
|
||||||
for tid, theme := range themes {
|
for tid, theme := range themes {
|
||||||
DeepSyncProgress = 3 + uint8(tid)*themeStep
|
DeepSyncProgress = 3 + uint8(tid)*themeStep
|
||||||
errs.Themes[theme.Name] = SyncExercices(i, theme)
|
seerrs := SyncExercices(i, theme)
|
||||||
|
for _, seerr := range seerrs {
|
||||||
|
errs.Themes[theme.Name] = append(errs.Themes[theme.Name], seerr.Error())
|
||||||
|
}
|
||||||
|
|
||||||
if exercices, err := theme.GetExercices(); err == nil {
|
if exercices, err := theme.GetExercices(); err == nil {
|
||||||
if len(exercices) == 0 {
|
if len(exercices) == 0 {
|
||||||
@ -80,11 +86,15 @@ func SpeedySyncDeep(i Importer) (errs SyncReport) {
|
|||||||
|
|
||||||
DeepSyncProgress = 3 + uint8(tid)*themeStep + uint8(eid)*exerciceStep
|
DeepSyncProgress = 3 + uint8(tid)*themeStep + uint8(eid)*exerciceStep
|
||||||
flagsBindings, ferrs := SyncExerciceFlags(i, exercice)
|
flagsBindings, ferrs := SyncExerciceFlags(i, exercice)
|
||||||
errs.Themes[theme.Name] = append(errs.Themes[theme.Name], ferrs...)
|
for _, ferr := range ferrs {
|
||||||
|
errs.Themes[theme.Name] = append(errs.Themes[theme.Name], ferr.Error())
|
||||||
|
}
|
||||||
|
|
||||||
DeepSyncProgress += exerciceStep / 2
|
DeepSyncProgress += exerciceStep / 2
|
||||||
_, herrs := SyncExerciceHints(i, exercice, flagsBindings)
|
_, herrs := SyncExerciceHints(i, exercice, flagsBindings)
|
||||||
errs.Themes[theme.Name] = append(errs.Themes[theme.Name], herrs...)
|
for _, herr := range herrs {
|
||||||
|
errs.Themes[theme.Name] = append(errs.Themes[theme.Name], herr.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,7 +119,7 @@ func SyncDeep(i Importer) (errs SyncReport) {
|
|||||||
}()
|
}()
|
||||||
DeepSyncProgress = 1
|
DeepSyncProgress = 1
|
||||||
|
|
||||||
errs.Themes = map[string][]error{}
|
errs.Themes = map[string][]string{}
|
||||||
|
|
||||||
startTime := time.Now()
|
startTime := time.Now()
|
||||||
|
|
||||||
@ -118,14 +128,20 @@ func SyncDeep(i Importer) (errs SyncReport) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
errs.DateStart = startTime
|
errs.DateStart = startTime
|
||||||
errs.ThemesSync = SyncThemes(i)
|
sterrs := SyncThemes(i)
|
||||||
|
for _, sterr := range sterrs {
|
||||||
|
errs.ThemesSync = append(errs.ThemesSync, sterr.Error())
|
||||||
|
}
|
||||||
|
|
||||||
if themes, err := fic.GetThemes(); err == nil && len(themes) > 0 {
|
if themes, err := fic.GetThemes(); err == nil && len(themes) > 0 {
|
||||||
DeepSyncProgress = 2
|
DeepSyncProgress = 2
|
||||||
var themeStep uint8 = uint8(250) / uint8(len(themes))
|
var themeStep uint8 = uint8(250) / uint8(len(themes))
|
||||||
|
|
||||||
for tid, theme := range themes {
|
for tid, theme := range themes {
|
||||||
errs.Themes[theme.Name] = SyncThemeDeep(i, theme, tid, themeStep)
|
stderrs := SyncThemeDeep(i, theme, tid, themeStep)
|
||||||
|
for _, stderr := range stderrs {
|
||||||
|
errs.Themes[theme.Name] = append(errs.Themes[theme.Name], stderr.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +150,7 @@ func SyncDeep(i Importer) (errs SyncReport) {
|
|||||||
EditDeepReport(&errs, true)
|
EditDeepReport(&errs, true)
|
||||||
|
|
||||||
if err := settings.ForceRegeneration(); err != nil {
|
if err := settings.ForceRegeneration(); err != nil {
|
||||||
errs.Regeneration = append(errs.Regeneration, err)
|
errs.Regeneration = append(errs.Regeneration, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
DeepSyncProgress = 255
|
DeepSyncProgress = 255
|
||||||
@ -159,11 +175,11 @@ func readDeepReport() (ret *SyncReport, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func EditDeepReport(errs *SyncReport, erase bool) {
|
func EditDeepReport(errs *SyncReport, erase bool) {
|
||||||
errs.Regeneration = []error{}
|
errs.Regeneration = []string{}
|
||||||
|
|
||||||
if !erase {
|
if !erase {
|
||||||
if in, err := readDeepReport(); err != nil {
|
if in, err := readDeepReport(); err != nil {
|
||||||
errs.Regeneration = append(errs.Regeneration, err)
|
errs.Regeneration = append(errs.Regeneration, err.Error())
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
} else {
|
} else {
|
||||||
for k, v := range errs.Themes {
|
for k, v := range errs.Themes {
|
||||||
@ -182,11 +198,11 @@ func EditDeepReport(errs *SyncReport, erase bool) {
|
|||||||
if out, err := json.Marshal(errs); err == nil {
|
if out, err := json.Marshal(errs); err == nil {
|
||||||
fdto.Write(out)
|
fdto.Write(out)
|
||||||
} else {
|
} else {
|
||||||
errs.Regeneration = append(errs.Regeneration, err)
|
errs.Regeneration = append(errs.Regeneration, err.Error())
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
errs.Regeneration = append(errs.Regeneration, err)
|
errs.Regeneration = append(errs.Regeneration, err.Error())
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user