package http import ( "encoding/json" db "infra-dashboard/Database" "log" "net/http" "strconv" "time" "github.com/gorilla/mux" ) func GetServersList(w http.ResponseWriter, r *http.Request) { var list []db.Server var err error t := time.Now() status := 200 dbConn := db.GetDatabaseConnection() defer dbConn.Close() list, err = db.GetServersList(dbConn) if err != nil { log.Println("Error getting OS list") status = 500 } logRequest(t, r, status) w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(list) } func GetServersbyID(w http.ResponseWriter, r *http.Request) { var server db.Server var err error t := time.Now() status := 200 params := mux.Vars(r) id, err := strconv.ParseInt(params["id"], 10, 32) if err != nil { log.Println("Error converting ID", err) status = 500 } dbConn := db.GetDatabaseConnection() defer dbConn.Close() server = db.GetServersbyID(dbConn, int64(id)) logRequest(t, r, status) w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(server) } func GetServersbyOS(w http.ResponseWriter, r *http.Request) { var servers []db.Server var err error t := time.Now() status := 200 params := mux.Vars(r) osId, err := strconv.ParseInt(params["os_id"], 10, 32) if err != nil { log.Println("Error converting ID", err) status = 500 } dbConn := db.GetDatabaseConnection() defer dbConn.Close() servers, err = db.GetServersbyOS(dbConn, int64(osId)) if err != nil { log.Println("Error getting servers by OS", err) status = 500 } logRequest(t, r, status) w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(servers) }