From 27ee9bd7fb0113fb0a7e281e38dce6e5fa046514 Mon Sep 17 00:00:00 2001
From: Hans Kristian Hoel <hanskhoe@stud.ntnu.no>
Date: Wed, 30 Oct 2019 16:52:06 +0100
Subject: [PATCH] i have sortet the languages fro a map in to a struckt so that
 i displays the languag used the most

---
 assignment2/go.mod      |  2 +-
 assignment2/language.go | 19 +++++++++++++++----
 assignment2/structs.go  |  5 +++++
 3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/assignment2/go.mod b/assignment2/go.mod
index 8474802..4f590dc 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 d67a947..4597513 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 1ec5356..a3433df 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"`
-- 
GitLab