Skip to content

Commit

Permalink
Merge pull request #8 from nurigo/impr/send-method
Browse files Browse the repository at this point in the history
Release Nurigo Java SDK 4.2.6
  • Loading branch information
Palbahngmiyine authored Nov 22, 2022
2 parents d7351c5 + 677bc67 commit 39cf253
Show file tree
Hide file tree
Showing 5 changed files with 148 additions and 4 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ plugins {
}

group = "net.nurigo"
version = "4.2.5"
version = "4.2.6"

repositories {
mavenCentral()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ import kotlinx.serialization.Serializable

@Serializable
data class DefaultAgent(
val sdkVersion: String = "java/4.2.5",
val sdkVersion: String = "java/4.2.6",
val osPlatform: String = "${System.getProperty("os.name")} | ${System.getProperty("java.version")}"
)
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ import net.nurigo.sdk.message.model.Message
data class MultipleDetailMessageSendingRequest(
var messages: List<Message> = emptyList(),
var scheduledDate: Instant? = null,
var showMessageList: Boolean = false
) : AbstractDefaultMessageRequest()
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,13 @@ import net.nurigo.sdk.message.model.FailedMessage
@Serializable
data class MultipleDetailMessageSentResponse(
var failedMessageList: List<FailedMessage> = emptyList(),
var groupInfo: MultipleMessageSentResponse? = null
)
var groupInfo: MultipleMessageSentResponse? = null,
var messageList: List<MessageList>? = null
) {
@Serializable
data class MessageList(
var messageId: String? = null,
var statusCode: String? = null,
var customFields: Map<String, String>? = null
)
}
135 changes: 135 additions & 0 deletions src/main/java/net/nurigo/sdk/message/service/DefaultMessageService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,51 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
}
}

/**
* 다중 메시지(2건 이상) 발송 API
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
)
fun send(
messages: List<Message>,
allowDuplicates: Boolean,
showMessageList: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages = messages,
scheduledDate = null,
showMessageList = showMessageList,
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()

if (response.isSuccessful) {
val responseBody = response.body()
if (responseBody != null) {
val count: Count = responseBody.groupInfo?.count ?: Count()
val failedMessageList = responseBody.failedMessageList

if (failedMessageList.isNotEmpty() && count.total == failedMessageList.count()) {
// TODO: i18n needed
val messageNotReceivedException = NurigoMessageNotReceivedException("메시지 발송 접수에 실패했습니다.")
messageNotReceivedException.failedMessageList = failedMessageList
throw messageNotReceivedException
}

return responseBody
}
throw NurigoEmptyResponseException("서버로부터 아무 응답을 받지 못했습니다.")
} else {
val errorString = response.errorBody()?.string() ?: "Server error encountered"
throw NurigoUnknownException(errorString)
}
}


/**
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
Expand Down Expand Up @@ -516,6 +561,51 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
}
}

/**
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
)
fun send(
messages: List<Message>,
scheduledDateTime: java.time.Instant,
allowDuplicates: Boolean,
showMessageList: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages = messages,
scheduledDate = scheduledDateTime.toKotlinInstant(),
showMessageList = showMessageList
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()

if (response.isSuccessful) {
val responseBody = response.body()
if (responseBody != null) {
val count: Count = responseBody.groupInfo?.count ?: Count()
val failedMessageList = responseBody.failedMessageList

if (failedMessageList.isNotEmpty() && count.total == failedMessageList.count()) {
// TODO: i18n needed
val messageNotReceivedException = NurigoMessageNotReceivedException("메시지 발송 접수에 실패했습니다.")
messageNotReceivedException.failedMessageList = failedMessageList
throw messageNotReceivedException
}

return responseBody
}
throw NurigoEmptyResponseException("서버로부터 아무 응답을 받지 못했습니다.")
} else {
val errorString = response.errorBody()?.string() ?: "Server error encountered"
throw NurigoUnknownException(errorString)
}
}

/**
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
Expand Down Expand Up @@ -559,6 +649,51 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
}
}

/**
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
)
fun send(
messages: List<Message>,
scheduledDateTime: Instant,
allowDuplicates: Boolean,
showMessageList: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages = messages,
scheduledDate = scheduledDateTime,
showMessageList = showMessageList
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()

if (response.isSuccessful) {
val responseBody = response.body()
if (responseBody != null) {
val count: Count = responseBody.groupInfo?.count ?: Count()
val failedMessageList = responseBody.failedMessageList

if (failedMessageList.isNotEmpty() && count.total == failedMessageList.count()) {
// TODO: i18n needed
val messageNotReceivedException = NurigoMessageNotReceivedException("메시지 발송 접수에 실패했습니다.")
messageNotReceivedException.failedMessageList = failedMessageList
throw messageNotReceivedException
}

return responseBody
}
throw NurigoEmptyResponseException("서버로부터 아무 응답을 받지 못했습니다.")
} else {
val errorString = response.errorBody()?.string() ?: "Server error encountered"
throw NurigoUnknownException(errorString)
}
}

/**
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
Expand Down

0 comments on commit 39cf253

Please sign in to comment.