From eb1d57d0803cb88c99b8a63a3db7ac8ce3704783 Mon Sep 17 00:00:00 2001 From: Emile Date: Mon, 4 Nov 2019 19:19:18 +0100 Subject: moved the getChallenges function --- src/companion.go | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'src/companion.go') diff --git a/src/companion.go b/src/companion.go index 521df80..8852dfa 100644 --- a/src/companion.go +++ b/src/companion.go @@ -6,13 +6,44 @@ running containers and starting and stopping challenge containers. package main -import "net/http" +import ( + "encoding/json" + "fmt" + "log" + "net/http" +) // getChallenges returns some json containing a list of all challenges // // .../api/companion/getChallenges func getChallenges(w http.ResponseWriter, r *http.Request) { + challenges := dbGetAllChallenges() + var strippedChallenges []StrippedChallenge + categories := map[string]int{} + + // build the strippedChallenges list + for _, challenge := range challenges { + strippedChallenges = append(strippedChallenges, stripChallenge(challenge)) + + categories[challenge.Category]++ + } + + // marshal the challenges to json + marshalled, marshalError := json.Marshal(map[string]interface{}{ + "challenges": strippedChallenges, + "categories": categories, + }) + if marshalError != nil { + log.Println(marshalError) + return + } + + // set the json header and write the marshaled challenges to the response + // writer + w.Header().Set("Content-Type", "application/json") + w.Header().Set("Access-Control-Allow-Origin", "*") + fmt.Fprintf(w, string(marshalled)) } // getRunningContainers returns a list of all running containers in the network -- cgit 1.4.1