Too much things

This commit is contained in:
nemunaire 2016-01-25 03:09:22 +01:00
parent d35bdca3b1
commit f3a15b00e9
15 changed files with 640 additions and 17 deletions

View file

@ -15,6 +15,7 @@ type DispatchFunction func([]string, []byte) (interface{}, error)
var apiRoutes = map[string]*(map[string]DispatchFunction){
"version": &ApiVersionRouting,
"ca": &ApiCARouting,
"events": &ApiEventsRouting,
"themes": &ApiThemesRouting,
"teams": &ApiTeamsRouting,
}

17
admin/api_events.go Normal file
View file

@ -0,0 +1,17 @@
package main
import (
"srs.epita.fr/fic-server/libfic"
)
var ApiEventsRouting = map[string]DispatchFunction{
"GET": getEvents,
}
func getEvents(args []string, body []byte) (interface{}, error) {
if evts, err := fic.GetEvents(); err != nil {
return nil, err
} else {
return evts, nil
}
}

View file

@ -12,7 +12,7 @@ type uploadedExercice struct {
Title string
Statement string
Hint string
Depend *int
Depend *int64
Gain int
VideoURI string
}

43
admin/api_stats.go Normal file
View file

@ -0,0 +1,43 @@
package main
import (
"fmt"
"srs.epita.fr/fic-server/libfic"
)
type statsTheme struct {
SolvedByLevel []int `json:"solvedByLevel"`
}
type stats struct {
Themes map[string]statsTheme `json:"themes"`
TryRank []int64 `json:"tryRank"`
}
func genStats() (interface{}, error) {
ret := map[string]statsTheme{}
if themes, err := fic.GetThemes(); err != nil {
return nil, err
} else {
for _, theme := range themes {
if exercices, err := theme.GetExercices(); err != nil {
return nil, err
} else {
exos := map[string]exportedExercice{}
for _, exercice := range exercices {
exos[fmt.Sprintf("%d", exercice.Id)] = exportedExercice{
exercice.Title,
exercice.Gain,
exercice.SolvedCount(),
exercice.TriedTeamCount(),
}
}
ret[fmt.Sprintf("%d", theme.Id)] = statsTheme{}
}
}
return ret, nil
}
}