package main import ( "encoding/json" "fmt" "log" "io/ioutil" "os" "srs.epita.fr/fic-server/libfic" ) type askOpenHint struct { HintId int64 `json:"id"` } func treatOpeningHint(pathname string, team fic.Team) { var ask askOpenHint if cnt_raw, err := ioutil.ReadFile(pathname); err != nil { log.Println("[ERR]", err) } else if err := json.Unmarshal(cnt_raw, &ask); err != nil { log.Println("[ERR]", err) } else if ask.HintId == 0 { log.Println("[WRN] Invalid content in hint file: ", pathname) os.Remove(pathname) } else if hint, err := fic.GetHint(ask.HintId); err != nil { log.Println("[ERR]", err) } else if err := team.OpenHint(hint); err != nil { log.Println("[ERR]", err) } else { // Write event if exercice, err := hint.GetExercice(); err != nil { log.Println("[WRN]", err) } else if lvl, err := exercice.GetLevel(); err != nil { log.Println("[WRN]", err) } else if theme, err := exercice.GetTheme(); err != nil { log.Println("[WRN]", err) } else if _, err := fic.NewEvent(fmt.Sprintf("L'équipe %s a dévoilé un indice pour le %de challenge %s !", team.Name, lvl, theme.Name), "alert-info"); err != nil { log.Println("[WRN] Unable to create event:", err) } if err := genTeamMyFile(team); err != nil { log.Println("my-", team.Id, ".json generation error: ", err) } if err := genEventsFile(); err != nil { log.Println("events.json generation error: ", err) } if err := os.Remove(pathname); err != nil { log.Println("[ERR]", err) } } }