| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // package server -- главный тип приложения, содержит бота, интерфейсы и т.п.
- package server
- import (
- "fmt"
- "wartank/pkg/components/kernel"
- "wartank/pkg/store"
- "wartank/pkg/types"
- "wartank/server/serv_bots"
- "wartank/server/serv_pwa"
- "wartank/server/serv_rpc"
- )
- // Server -- главный тип приложения
- type Server struct {
- *kernel.Kernel
- store types.IStore
- servRpc *serv_rpc.ServRpc
- servBots *serv_bots.ServBots
- servPwa *serv_pwa.ServPwa
- }
- // NewServer -- возвращает новый объект приложения
- func NewServer() (sf *Server, err error) {
- kernel, err := kernel.NewKernel()
- if err != nil {
- return nil, fmt.Errorf("NewServer(): in make IKernel, err=\n\t%w", err)
- }
- sf = &Server{
- Kernel: kernel,
- servPwa: serv_pwa.NewServPwa(),
- }
- sf.store, err = store.NewStore(sf)
- if err != nil {
- return nil, fmt.Errorf("NewServer(): in open store, err=%w", err)
- }
- sf.servBots, err = serv_bots.NewServBots(sf)
- if err != nil {
- return nil, fmt.Errorf("NewServer(): in create ServBots, err=%w", err)
- }
- // sf.servRpc, err = serv_rpc.NewServRpc(sf)
- // if err != nil {
- // return nil, fmt.Errorf("NewServer(): in make IServRpc, err=\n\t%w", err)
- // }
- return sf, nil
- }
- // Store -- возвращает хранилище
- func (sf *Server) Store() types.IStore {
- return sf.store
- }
- // Run -- запускает сервер бота в работу
- func (sf *Server) Run() error {
- // go sf.bot.Run()
- if err := sf.servBots.Load(); err != nil {
- return fmt.Errorf("Server.Run(): in load bots, err=\n\t%w", err)
- }
- // go sf.servRpc.Run()
- go sf.servPwa.Run()
- <-sf.Done()
- // if err := sf._erverWeb.Error(); err != nil {
- // return fmt.Errorf("Server.Run(): in work IServHttp, err=\n\t%w", err)
- // }
- // if err := sf.bot.Error(); err != nil {
- // return fmt.Errorf("Server.Run(): in work IBot, err=\n\t%w", err)
- // }
- return nil
- }
- // ServBots -- возвращает словарь ботов
- func (sf *Server) ServBots() types.IServBots {
- return sf.servBots
- }
|