diff --git a/assignment2/go.mod b/assignment2/go.mod index 84748024ada69011abc930473141cd00cae75922..4f590dcf844845cb3c8f2fbbe49568e18f463b35 100644 --- a/assignment2/go.mod +++ b/assignment2/go.mod @@ -2,4 +2,4 @@ module assignment2 go 1.13 -// +heroku goVersion go1.13 \ No newline at end of file +// +heroku goVersion go1.13 diff --git a/assignment2/language.go b/assignment2/language.go index d67a947e3742e6e865d9be97379e38467f197473..45975135937386a7892b71b67a54a2dc5f070486 100644 --- a/assignment2/language.go +++ b/assignment2/language.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "net/http" + "sort" "strconv" ) @@ -96,12 +97,22 @@ func HandlerLanguages(w http.ResponseWriter, r *http.Request) { } - for CodeLang, NumCount := range Counter(Code) { - fmt.Println(CodeLang, "=", NumCount) + var Lang []TestLang // making a temp struckt + + CodeTypes := Counter(Code) // make a map[string]int that have codelanguag counted + fmt.Println("test: ", CodeTypes) //********************************************* + + for k, v := range CodeTypes { // loops over map + Lang = append(Lang, TestLang{k, v}) // sets map values in to struct } - // fmt.Println(Code) - L.Languages = append(L.Languages, Code...) + sort.Slice(Lang, func(i, j int) bool { return Lang[i].Count > Lang[j].Count }) //sort struct from highest to lovest int + + fmt.Println(Lang) //**************************************************************** + + for i := range Lang { // loops over struct + L.Languages = append(L.Languages, Lang[i].Lang) // sets string from struct inn to L.Languages + } limit := QueryGet("limit", "5", r) // gets limit for localhost link diff --git a/assignment2/structs.go b/assignment2/structs.go index 1ec53562a019ca93d69f3aefd2bdf39d71d8dd51..a3433df6fab9b8c5f9d3f35d21a42e4b1665be8e 100644 --- a/assignment2/structs.go +++ b/assignment2/structs.go @@ -27,6 +27,11 @@ type IDLang struct { ID int `json:"id"` } +type TestLang struct { + Lang string + Count int +} + type Language struct { Languages []string `json:"lagnguages"` Auth bool `json:"auth"`