backend: treat file found in directory discovered + handle multiple keys + generate my.json

This commit is contained in:
nemunaire 2016-01-23 12:28:31 +01:00
commit 70b6b30067
3 changed files with 63 additions and 26 deletions

View file

@ -150,7 +150,7 @@ func (e Exercice) SolvedCount() int64 {
}
}
func (e Exercice) CheckResponse(response string, t Team) (bool, error) {
func (e Exercice) CheckResponse(resps map[string]string, t Team) (bool, error) {
s, _, _ := t.HasSolved(e)
if s {
return true, nil
@ -165,12 +165,18 @@ func (e Exercice) CheckResponse(response string, t Team) (bool, error) {
return true, errors.New("Exercice with no key registered")
}
for _, k := range keys {
if !k.Check(response) {
return false, nil
valid := true
for _, key := range keys {
if _, ok := resps[key.Type]; !ok {
valid = false
break
}
if !key.Check(resps[key.Type]) {
valid = false
break
}
}
return true, nil
return valid, nil
}
}