QueueClient.kt
- /*
- * This file is part of the pl.wrzasq.commons.
- *
- * @license http://mit-license.org/ The MIT license
- * @copyright 2020 - 2022 © by Rafał Wrzeszcz - Wrzasq.pl.
- */
- package pl.wrzasq.commons.aws.messaging.sqs
- import kotlinx.serialization.json.Json
- import pl.wrzasq.commons.aws.messaging.MessageDispatcher
- import software.amazon.awssdk.services.sqs.SqsClient
- import software.amazon.awssdk.services.sqs.model.SendMessageResponse
- /**
- * Queue-bound AWS SQS client.
- *
- * @param json JSON handler.
- * @param sqs SQS client.
- * @param queueUrl Target queue URL.
- */
- class QueueClient(
- json: Json = Json.Default,
- sqs: SqsClient = SqsClient.create(),
- queueUrl: String
- ) : MessageDispatcher<SendMessageResponse>(
- json,
- { payload -> sqs.sendMessage { it.queueUrl(queueUrl).messageBody(payload) }}
- )