add listener service and message module

This commit is contained in:
2023-08-13 15:14:10 +07:00
parent 1871fc7c92
commit 0ccd6f8d73
5 changed files with 98 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
package services
import "context"
type IService interface {
Run(ctx context.Context) (error)
}
+36
View File
@@ -0,0 +1,36 @@
package listener
import (
"context"
"fmt"
"git.3crabs.ru/VLADIMIR/butler/internal/modules/messenger"
"git.3crabs.ru/VLADIMIR/butler/internal/services"
)
type listenerService struct {
messenger messenger.IMessenger
}
func NewListener(
messenger messenger.IMessenger,
) services.IService {
return &listenerService{
messenger: messenger,
}
}
func (s *listenerService) Run(ctx context.Context) error {
for {
msg, err := s.messenger.GetMessage(ctx)
if err != nil {
if err == context.Canceled {
return nil
}
return err
}
if err := s.messenger.SendMessage(ctx, msg); err != nil {
fmt.Println(err)
}
}
}