2016-12-09 10:49:29 +00:00
package main
import (
"encoding/json"
2017-01-24 01:20:20 +00:00
"fmt"
2016-12-09 10:49:29 +00:00
"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 {
2017-01-24 01:20:20 +00:00
// 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 <strong>%d<sup>e</sup></strong> challenge %s !" , team . Name , lvl , theme . Name ) , "alert-info" ) ; err != nil {
log . Println ( "[WRN] Unable to create event:" , err )
}
2016-12-09 10:49:29 +00:00
genTeamMyFile ( team )
if err := os . Remove ( pathname ) ; err != nil {
log . Println ( "[ERR]" , err )
}
}
}