package api import ( "net/http" "gogs.carducci-dante.gov.it/karmen/core/orm" ) func dashboardHandler() http.Handler { fn := func(w http.ResponseWriter, r *http.Request) { var ( teachers []orm.Teacher classes []orm.Class subjects []orm.Subject activities []orm.Activity data struct { NumOfTeachers int NumOfSubjects int NumOfClasses int NumOfActivities int Issues []orm.Issue } ) if err := orm.DB().Preload("Teacher").Find(&data.Issues).Error; err != nil { panic(err) } if err := orm.DB().Find(&teachers).Error; err != nil { panic(err) } if err := orm.DB().Find(&classes).Error; err != nil { panic(err) } if err := orm.DB().Find(&activities).Error; err != nil { panic(err) } if err := orm.DB().Find(&subjects).Error; err != nil { panic(err) } data.NumOfTeachers = len(teachers) data.NumOfActivities = len(activities) data.NumOfSubjects = len(subjects) data.NumOfClasses = len(classes) } return http.HandlerFunc(fn) }