service.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // package service -- главный тип сервиса
  2. package service
  3. import (
  4. "fmt"
  5. "log"
  6. "adt/pkg/types"
  7. )
  8. // Service -- главный тип приложения
  9. type Service struct {
  10. store types.IStore // Хранилище сервиса
  11. servHttp types.IServHttp // Веб-сервер сервиса
  12. }
  13. // NewService -- возвращает новый объект сервиса
  14. func NewService(store types.IStore,
  15. servHttp types.IServHttp) (*Service, error) {
  16. log.Println("NewService()")
  17. { // Предусловия
  18. if store == nil {
  19. return nil, fmt.Errorf("NewService(): IStore==nil")
  20. }
  21. if servHttp == nil {
  22. return nil, fmt.Errorf("NewService(): IServHttp==nil")
  23. }
  24. }
  25. sf := &Service{
  26. store: store,
  27. servHttp: servHttp,
  28. }
  29. return sf, nil
  30. }
  31. // Run -- запускает сервис в работу
  32. func (sf *Service) Run() error {
  33. log.Println("Service.Run()")
  34. if err := sf.servHttp.Run(); err != nil {
  35. return fmt.Errorf("Service.Run(): in IServHttp.Run, err=\n\t%w", err)
  36. }
  37. return nil
  38. }