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 )
2019-01-17 15:55:54 +00:00
} else if err = json . Unmarshal ( cnt_raw , & ask ) ; err != nil {
2016-12-09 10:49:29 +00:00
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 )
2019-01-17 15:55:54 +00:00
} else if err = team . OpenHint ( hint ) ; err != nil {
2016-12-09 10:49:29 +00:00
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 )
2018-12-08 20:17:04 +00:00
} else if theme , err := fic . GetTheme ( exercice . IdTheme ) ; err != nil {
2017-01-24 01:20:20 +00:00
log . Println ( "[WRN]" , err )
2019-01-17 18:50:16 +00:00
} else if _ , err = fic . NewEvent ( fmt . Sprintf ( "L'équipe %s a dévoilé un indice pour le <strong>%d<sup>e</sup></strong> défi %s !" , team . Name , lvl , theme . Name ) , "info" ) ; err != nil {
2017-01-24 01:20:20 +00:00
log . Println ( "[WRN] Unable to create event:" , err )
}
2018-01-23 00:16:25 +00:00
2019-01-17 15:55:54 +00:00
if err = genTeamMyFile ( team ) ; err != nil {
2018-01-23 00:16:25 +00:00
log . Println ( "my-" , team . Id , ".json generation error: " , err )
}
2019-01-17 15:55:54 +00:00
if err = genEventsFile ( ) ; err != nil {
2018-01-23 00:16:25 +00:00
log . Println ( "events.json generation error: " , err )
}
2019-01-17 15:55:54 +00:00
if err = os . Remove ( pathname ) ; err != nil {
2016-12-09 10:49:29 +00:00
log . Println ( "[ERR]" , err )
}
}
}