38 lines
844 B
Go
38 lines
844 B
Go
|
package http
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"io"
|
||
|
"net/http"
|
||
|
"os"
|
||
|
"text/template"
|
||
|
)
|
||
|
|
||
|
var GoodAvailablityTemplate string
|
||
|
|
||
|
func tempProcent(value, max int) int {
|
||
|
return value * 100 / max
|
||
|
}
|
||
|
|
||
|
func tempProcessRadius(value, max, radius int) float64 {
|
||
|
return (1 - float64(value)/float64(max)) * float64(radius) * 2 * 3.14
|
||
|
}
|
||
|
|
||
|
func getGoodAvailablitySVG(w http.ResponseWriter, count int) {
|
||
|
|
||
|
t := template.New("some")
|
||
|
t = t.Funcs(template.FuncMap{"procent": tempProcent,
|
||
|
"process_radius": tempProcessRadius,
|
||
|
})
|
||
|
buf := bytes.NewBuffer(nil)
|
||
|
f, _ := os.Open(GoodAvailablityTemplate) // Error handling elided for brevity.
|
||
|
io.Copy(buf, f) // Error handling elided for brevity.
|
||
|
f.Close()
|
||
|
|
||
|
s := string(buf.Bytes())
|
||
|
t.Parse(s)
|
||
|
|
||
|
w.Header().Set("Content-Type", "image/svg+xml")
|
||
|
t.Execute(w, map[string]interface{}{"Count": count})
|
||
|
}
|