package models import ( "git.andr3h3nriqu3s.com/andr3/fyp/logic/utils" . "git.andr3h3nriqu3s.com/andr3/fyp/logic/utils" ) // Auth level set when path is definied as 1 func handleStats(c *Context) *Error { var b struct { Id string `json:"id" validate:"required"` } if _err := c.ToJSON(&b); _err != nil { return _err; } type Row struct { Name string `db:"mc.name" json:"name"` Training string `db:"count(mdp.id) filter (where mdp.model_mode=1)" json:"training"` Testing string `db:"count(mdp.id) filter (where mdp.model_mode=2)" json:"testing"` } rows, err := GetDbMultitple[Row](c, "model_data_point as mdp inner join model_classes as mc on mc.id=mdp.class_id where mc.model_id=$1 group by mc.name order by mc.name asc;", b.Id) if err != nil { return c.Error500(err) } c.ShowMessage = false return c.SendJSON(rows) } func handleList(handle *Handle) { handle.Get("/models", func(c *Context) *Error { if !c.CheckAuthLevel(1) { return nil } type Row struct { Name string `json:"name"` Id string `json:"id"` } got, err := utils.GetDbMultitple[Row](c, "models where user_id=$1", c.User.Id) if err != nil { return c.Error500(nil) } c.ShowMessage = true return c.SendJSON(got) }) handle.PostAuth("/models/class/stats", 1, handleStats) }