controller.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package controller
  2. import (
  3. "fmt"
  4. "log"
  5. "git.aetherial.dev/aeth/keiji/pkg/helpers"
  6. )
  7. type Controller struct{
  8. WebRoot string
  9. Domain string
  10. RedisConfig helpers.RedisConf
  11. Cache *helpers.AllCache
  12. }
  13. func (c *Controller) Headers() *helpers.HeaderCollection {
  14. headers, err := helpers.GetHeaders(c.RedisConfig)
  15. if err != nil {
  16. log.Fatal(err, "Headers couldnt be loaded. Exiting.")
  17. }
  18. return headers
  19. }
  20. func (c *Controller) Menu() *helpers.MenuElement {
  21. links, err := helpers.GetMenuLinks(c.RedisConfig)
  22. if err != nil {
  23. log.Fatal(err, "Menu links couldnt be couldnt be loaded. Exiting.")
  24. }
  25. return links
  26. }
  27. func (c *Controller) AdminTables() *helpers.AdminTables {
  28. tables, err := helpers.GetAdminTables(c.RedisConfig)
  29. if err != nil {
  30. log.Fatal(err, "Administrator tables couldnt be couldnt be loaded. Exiting.")
  31. }
  32. return tables
  33. }
  34. func (c *Controller) FormatDocTable() *helpers.AdminTables {
  35. var postTables helpers.AdminTables
  36. for i := range helpers.Topics {
  37. docs, err := helpers.GetAllDocuments(helpers.Topics[i], c.RedisConfig)
  38. if err != nil {
  39. log.Fatal(err, "Post tables couldnt be couldnt be loaded. Exiting.")
  40. }
  41. var categoryTable helpers.Table
  42. categoryTable.TableName = helpers.Topics[i]
  43. for idx := range docs {
  44. categoryTable.TableData = append(categoryTable.TableData, helpers.TableData{
  45. DisplayName: docs[idx].Ident,
  46. Link: fmt.Sprintf("/admin/posts/%s", docs[idx].Ident),
  47. })
  48. }
  49. postTables.Tables = append(postTables.Tables, categoryTable)
  50. }
  51. return &postTables
  52. }
  53. func NewController(root string, domain string, redisPort string, redisAddr string) *Controller {
  54. return &Controller{WebRoot: root, Cache: helpers.NewCache(),
  55. Domain: domain, RedisConfig: helpers.RedisConf{
  56. Port: redisPort,
  57. Addr: redisAddr,
  58. },
  59. }
  60. }