dashboard.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package api
  2. import (
  3. "net/http"
  4. "gogs.carducci-dante.gov.it/karmen/core/orm"
  5. )
  6. func dashboardHandler() http.Handler {
  7. fn := func(w http.ResponseWriter, r *http.Request) {
  8. var (
  9. teachers []orm.Teacher
  10. classes []orm.Class
  11. subjects []orm.Subject
  12. activities []orm.Activity
  13. data struct {
  14. NumOfTeachers int
  15. NumOfSubjects int
  16. NumOfClasses int
  17. NumOfActivities int
  18. Issues []orm.Issue
  19. }
  20. )
  21. if err := orm.DB().Preload("Teacher").Find(&data.Issues).Error; err != nil {
  22. panic(err)
  23. }
  24. if err := orm.DB().Find(&teachers).Error; err != nil {
  25. panic(err)
  26. }
  27. if err := orm.DB().Find(&classes).Error; err != nil {
  28. panic(err)
  29. }
  30. if err := orm.DB().Find(&activities).Error; err != nil {
  31. panic(err)
  32. }
  33. if err := orm.DB().Find(&subjects).Error; err != nil {
  34. panic(err)
  35. }
  36. data.NumOfTeachers = len(teachers)
  37. data.NumOfActivities = len(activities)
  38. data.NumOfSubjects = len(subjects)
  39. data.NumOfClasses = len(classes)
  40. }
  41. return http.HandlerFunc(fn)
  42. }