diff --git a/admin/api/settings.go b/admin/api/settings.go new file mode 100644 index 00000000..9a7bc638 --- /dev/null +++ b/admin/api/settings.go @@ -0,0 +1,34 @@ +package api + +import ( + "encoding/json" + "path" + + "srs.epita.fr/fic-server/settings" + + "github.com/julienschmidt/httprouter" +) + +var TeamsDir string + +func init() { + router.GET("/api/settings.json", apiHandler(getSettings)) + router.PUT("/api/settings.json", apiHandler(saveSettings)) +} + +func getSettings(_ httprouter.Params, body []byte) (interface{}, error) { + return settings.ReadSettings(path.Join(TeamsDir, settings.SettingsFile)) +} + +func saveSettings(_ httprouter.Params, body []byte) (interface{}, error) { + var config settings.FICSettings + if err := json.Unmarshal(body, &config); err != nil { + return nil, err + } + + if err := settings.SaveSettings(path.Join(TeamsDir, settings.SettingsFile), config); err != nil { + return nil, err + } else { + return config, err + } +} diff --git a/admin/index.go b/admin/index.go index 4e097ed1..a7b2b457 100644 --- a/admin/index.go +++ b/admin/index.go @@ -24,6 +24,7 @@ const indextpl = `
  • Thèmes
  • Exercices
  • Événements
  • +
  • Paramètres
  • Thèmes
  • Exercices
  • Événements
  • +
  • Paramètres
  • Paramètres

    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    + +
    +
    +
    + +
    min
    +
    +
    +
    + +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    + +
    +