This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
adlin/token-validator/grades.go

111 lines
2.4 KiB
Go
Raw Normal View History

package main
import (
"github.com/julienschmidt/httprouter"
2020-03-27 13:57:14 +00:00
2021-10-31 15:43:43 +00:00
"git.nemunai.re/srs/adlin/libadlin"
)
func init() {
router.GET("/api/grades/", remoteValidatorHandler(apiHandler(computeGrades)))
}
func computeGrades(_ httprouter.Params, _ []byte) (interface{}, error) {
2020-03-27 13:57:14 +00:00
if stds, err := adlin.GetStudents(); err != nil {
return nil, err
} else {
res := map[string]map[string]float32{}
for _, std := range stds {
res[std.Login] = map[string]float32{
"TP1": 0,
"TP2": 0,
"TP3": 0,
}
2020-03-27 13:57:14 +00:00
if states, err := std.GetStatesByChallenge(); err != nil {
return nil, err
} else {
for _, st := range states {
if st.Challenge >= 200 {
switch st.Challenge {
case 200:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP3"] += 3
case 201:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP3"] += 2
case 203:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP3"] += 2
case 204:
2022-07-05 08:13:38 +00:00
res[std.Login]["TP3"] += 2
2022-04-21 12:05:00 +00:00
case 205:
res[std.Login]["TP3"] += 2
2022-07-05 08:13:38 +00:00
case 206:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP3"] += 1
2022-07-05 08:13:38 +00:00
case 207:
res[std.Login]["TP3"] += 2
2022-04-21 12:05:00 +00:00
case 208:
res[std.Login]["TP3"] += 2
case 209:
res[std.Login]["TP3"] += 2
case 210:
res[std.Login]["TP3"] += 2
}
} else if st.Challenge >= 100 {
switch st.Challenge {
case 100:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP2"] += 2
case 101:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP2"] += 2
case 102:
2023-05-16 17:18:21 +00:00
res[std.Login]["TP2"] += 1
case 103:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP2"] += 3
case 104:
2023-05-16 17:18:21 +00:00
res[std.Login]["TP2"] += 3
2022-04-21 12:05:00 +00:00
case 105:
2023-05-16 17:18:21 +00:00
res[std.Login]["TP2"] += 2
2022-04-21 12:05:00 +00:00
case 106:
2023-05-16 17:18:21 +00:00
res[std.Login]["TP2"] += 2
2022-04-21 12:05:00 +00:00
case 107:
res[std.Login]["TP2"] += 3
2023-05-16 17:18:21 +00:00
case 110:
2022-04-21 12:05:00 +00:00
res[std.Login]["TP2"] += 2
}
} else {
switch st.Challenge {
2023-02-28 21:23:58 +00:00
case 0:
res[std.Login]["TP1"] += 1
case 1:
res[std.Login]["TP1"] += 3
case 2:
res[std.Login]["TP1"] += 3
case 3:
2022-07-05 08:13:38 +00:00
res[std.Login]["TP1"] += 3
case 4:
res[std.Login]["TP1"] += 2
case 5:
res[std.Login]["TP1"] += 2
case 6:
res[std.Login]["TP1"] += 1
case 7:
2022-07-05 08:13:38 +00:00
res[std.Login]["TP1"] += 1
case 8:
res[std.Login]["TP1"] += 1
case 9:
res[std.Login]["TP1"] += 1
case 10:
2022-07-05 08:13:38 +00:00
res[std.Login]["TP1"] += 2
case 11:
res[std.Login]["TP1"] += 1
2023-02-28 21:23:58 +00:00
case 12:
res[std.Login]["TP1"] += 1
}
}
}
}
}
return res, nil
}
}