45 lines
1.4 KiB
Go
45 lines
1.4 KiB
Go
|
package stats
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
|
||
|
. "git.andr3h3nriqu3s.com/andr3/fyp/logic/db_types"
|
||
|
. "git.andr3h3nriqu3s.com/andr3/fyp/logic/tasks/utils"
|
||
|
. "git.andr3h3nriqu3s.com/andr3/fyp/logic/utils"
|
||
|
)
|
||
|
|
||
|
func HandlePublicStats(handle *Handle) {
|
||
|
handle.Post("/stats/public/main", func(c *Context) *Error {
|
||
|
if handle.DataMap["PublicMainLastUpdate"] != nil && handle.DataMap["PublicMainLastUpdate"].(int64) > time.Now().UnixMilli() {
|
||
|
c.ShowMessage = false
|
||
|
return c.SendJSON(handle.DataMap["PublicMain"])
|
||
|
}
|
||
|
number_of_models, err := GetDbVar[int](c, "count(*)", "models")
|
||
|
if err != nil {
|
||
|
return c.E500M("Could not get statistics", err)
|
||
|
}
|
||
|
number_of_classfications, err := GetDbVar[int](c, "count(*)", "tasks where task_type=$1", TASK_TYPE_CLASSIFICATION)
|
||
|
if err != nil {
|
||
|
return c.E500M("Could not get statistics", err)
|
||
|
}
|
||
|
number_of_images_processed, err := GetDbVar[int](c, "count(*)", "model_data_point")
|
||
|
if err != nil {
|
||
|
return c.E500M("Could not get statistics", err)
|
||
|
}
|
||
|
|
||
|
handle.DataMap["PublicMainLastUpdate"] = time.Now().UnixNano() + 60*60*1000*1000
|
||
|
handle.DataMap["PublicMain"] = struct {
|
||
|
NumberOfModels int `json:"number_of_models"`
|
||
|
NumberOfClassfications int `json:"number_of_classfications"`
|
||
|
NumberOfImagesProcessed int `json:"number_of_images_processed"`
|
||
|
}{
|
||
|
*number_of_models,
|
||
|
*number_of_classfications,
|
||
|
*number_of_images_processed,
|
||
|
}
|
||
|
|
||
|
c.ShowMessage = false
|
||
|
return c.SendJSON(handle.DataMap["PublicMain"])
|
||
|
})
|
||
|
}
|