server.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // package server -- главный тип приложения, содержит бота, интерфейсы и т.п.
  2. package server
  3. import (
  4. "fmt"
  5. "wartank/pkg/components/kernel"
  6. "wartank/pkg/store"
  7. "wartank/pkg/types"
  8. "wartank/server/serv_bots"
  9. serv_web "wartank/server/serv_http"
  10. // "wartank/server/serv_desktop"
  11. )
  12. // Сервер -- главный тип приложения
  13. type Сервер struct {
  14. *kernel.Kernel
  15. хранилище types.IStore
  16. ботоФерма *serv_bots.БотоФерма
  17. // gui *serv_desktop.СерверДесктоп
  18. сервВеб *serv_web.СервВеб
  19. }
  20. // НовСервер -- возвращает новый объект приложения
  21. func НовСервер() (*Сервер, error) {
  22. kernel, ош := kernel.NewKernel()
  23. if ош != nil {
  24. return nil, fmt.Errorf("НовСервер(): in make IKernel, err=\n\t%w", ош)
  25. }
  26. сам := &Сервер{
  27. Kernel: kernel,
  28. }
  29. сам.хранилище, ош = store.NewStore(сам)
  30. if ош != nil {
  31. return nil, fmt.Errorf("НовСервер(): in open store, err=\n\t%w", ош)
  32. }
  33. сам.ботоФерма, ош = serv_bots.NewServBots(сам)
  34. if ош != nil {
  35. return nil, fmt.Errorf("НовСервер(): in create ServBots, err=\n\t%w", ош)
  36. }
  37. /*
  38. sf.gui, err = serv_desktop.НовСерверДесктоп(sf)
  39. if err != nil {
  40. return nil, fmt.Errorf("НовСервер(): in make Gui, err=\n\t%w", err)
  41. }
  42. */
  43. сам.сервВеб, ош = serv_web.НовСервВеб(сам)
  44. if ош != nil {
  45. return nil, fmt.Errorf("НовСервер(): при создании СервВеб, ош=\n\t%w", ош)
  46. }
  47. return сам, nil
  48. }
  49. // Store -- возвращает хранилище
  50. func (sf *Сервер) Store() types.IStore {
  51. return sf.хранилище
  52. }
  53. // Run -- запускает сервер бота в работу
  54. func (сам *Сервер) Run() error {
  55. // go sf.bot.Run()
  56. // sf.gui.Run()
  57. сам.сервВеб.Пуск()
  58. <-сам.Done()
  59. // if err := sf._erverWeb.Error(); err != nil {
  60. // return fmt.Errorf("Server.Run(): in work IServHttp, err=\n\t%w", err)
  61. // }
  62. // if err := sf.bot.Error(); err != nil {
  63. // return fmt.Errorf("Server.Run(): in work IBot, err=\n\t%w", err)
  64. // }
  65. return nil
  66. }
  67. // ServBots -- возвращает словарь ботов
  68. func (sf *Сервер) ServBots() types.IServBots {
  69. return sf.ботоФерма
  70. }
  71. // Gui -- возвращает графику фермы-ботов
  72. func (sf *Сервер) Gui() types.ИГуи {
  73. return nil // sf.gui
  74. }