web_gui.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // package web_gui -- веб-сервер для графики
  2. package web_gui
  3. import (
  4. "fmt"
  5. "log"
  6. "github.com/gofiber/fiber/v2"
  7. "wartank/pkg/types"
  8. )
  9. // ВебГип -- веб-сервер для графики
  10. type ВебГуи struct {
  11. серв types.ИСервер
  12. файбер *fiber.App
  13. }
  14. // НовВебГуи -- возвращает новый веб-сервер для графики
  15. func НовВебГуи(вебСервер types.ИВебСервер) (*ВебГуи, error) {
  16. if вебСервер == nil {
  17. return nil, fmt.Errorf("НовВебГуи(): ИВебСервер==nil")
  18. }
  19. сам := &ВебГуи{
  20. серв: вебСервер.Сервер(),
  21. файбер: вебСервер.Файбер(),
  22. }
  23. сам.файбер.Get("/", сам.индекс)
  24. сам.файбер.Get("/gui/list_bot", сам.списокБотов)
  25. return сам, nil
  26. }
  27. // Возвращает страницу со списком ботов
  28. func (сам *ВебГуи) списокБотов(кнт *fiber.Ctx) error {
  29. имя := кнт.Cookies("login")
  30. if имя != "svi" {
  31. return кнт.Render("index", fiber.Map{
  32. "Title": "WarTank",
  33. "err": "Не выполнен вход",
  34. })
  35. }
  36. log.Printf("ВебГуи.списокБотов(): логин=%s\n", имя)
  37. return кнт.Render("list_bot", fiber.Map{
  38. "Title": "WarTank",
  39. })
  40. }
  41. // Возвращает индексную страницу
  42. func (сам *ВебГуи) индекс(кнт *fiber.Ctx) error {
  43. return кнт.Render("index", fiber.Map{
  44. "Title": "WarTank",
  45. })
  46. }