mirror of
https://github.com/grassrootseconomics/farmstar-survey-backend.git
synced 2024-11-19 00:16:45 +01:00
40 lines
653 B
Go
40 lines
653 B
Go
|
package worker
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"github.com/grassrootseconomics/farmstar-survey-backend/pkg/telegram"
|
||
|
"github.com/riverqueue/river"
|
||
|
)
|
||
|
|
||
|
type TgMessage string
|
||
|
|
||
|
type (
|
||
|
TelegramArgs struct {
|
||
|
Msg string `json:"msg"`
|
||
|
}
|
||
|
|
||
|
TelegramWorker struct {
|
||
|
river.WorkerDefaults[TelegramArgs]
|
||
|
|
||
|
TgClient *telegram.TelegramClient
|
||
|
ChatID string
|
||
|
}
|
||
|
)
|
||
|
|
||
|
func (TelegramArgs) Kind() string {
|
||
|
return "telegram"
|
||
|
}
|
||
|
|
||
|
func (w *TelegramWorker) Work(ctx context.Context, job *river.Job[TelegramArgs]) error {
|
||
|
_, err := w.TgClient.SendMessage(ctx, telegram.MessageInput{
|
||
|
ChatID: w.ChatID,
|
||
|
Text: job.Args.Msg,
|
||
|
})
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|