wormhole-explorer/fly/internal/sqs/sqs_producer.go

34 lines
832 B
Go

package sqs
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
aws_sqs "github.com/aws/aws-sdk-go/service/sqs"
"github.com/aws/aws-sdk-go/service/sqs/sqsiface"
)
type Producer struct {
api sqsiface.SQSAPI
url string
}
// New instances of a client to connect SQS.
func NewProducer(sess *session.Session, url string) (*Producer, error) {
return &Producer{
api: aws_sqs.New(sess),
url: url,
}, nil
}
// SendMessage sends messages to SQS.
func (p *Producer) SendMessage(groupID, deduplicationID, body string) error {
_, err := p.api.SendMessage(
&aws_sqs.SendMessageInput{
MessageGroupId: aws.String(groupID),
MessageDeduplicationId: aws.String(deduplicationID),
MessageBody: aws.String(body),
QueueUrl: aws.String(p.url),
})
return err
}