Refactor flags
[fic/server.git] / backend / choices.go
1 package main
2
3 import (
4         "encoding/json"
5         "log"
6         "io/ioutil"
7         "os"
8
9         "srs.epita.fr/fic-server/libfic"
10 )
11
12 type wantChoices struct {
13         FlagId       int64 `json:"id"`
14 }
15
16 func treatWantChoices(pathname string, team fic.Team) {
17         var ask wantChoices
18
19         if cnt_raw, err := ioutil.ReadFile(pathname); err != nil {
20                 log.Println("[ERR]", err)
21         } else if err := json.Unmarshal(cnt_raw, &ask); err != nil {
22                 log.Println("[ERR]", err)
23         } else if ask.FlagId == 0 {
24                 log.Println("[WRN] Invalid content in wantChoices file: ", pathname)
25                 os.Remove(pathname)
26         } else if flag, err := fic.GetFlagKey(ask.FlagId); err != nil {
27                 log.Println("[ERR]", err)
28         } else if err := team.DisplayChoices(flag); err != nil {
29                 log.Println("[ERR]", err)
30         } else {
31                 if err := genTeamMyFile(team); err != nil {
32                         log.Println("my-", team.Id, ".json generation error: ", err)
33                 }
34                 if err := os.Remove(pathname); err != nil {
35                         log.Println("[ERR]", err)
36                 }
37         }
38 }