add listener service and message module
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
package services
|
||||
|
||||
import "context"
|
||||
|
||||
type IService interface {
|
||||
Run(ctx context.Context) (error)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user