Skip to content

Commit 39cf253

Browse files
Merge pull request #8 from nurigo/impr/send-method
Release Nurigo Java SDK 4.2.6
2 parents d7351c5 + 677bc67 commit 39cf253

File tree

5 files changed

+148
-4
lines changed

5 files changed

+148
-4
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ plugins {
1313
}
1414

1515
group = "net.nurigo"
16-
version = "4.2.5"
16+
version = "4.2.6"
1717

1818
repositories {
1919
mavenCentral()

src/main/java/net/nurigo/sdk/message/request/DefaultAgent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ import kotlinx.serialization.Serializable
44

55
@Serializable
66
data class DefaultAgent(
7-
val sdkVersion: String = "java/4.2.5",
7+
val sdkVersion: String = "java/4.2.6",
88
val osPlatform: String = "${System.getProperty("os.name")} | ${System.getProperty("java.version")}"
99
)

src/main/java/net/nurigo/sdk/message/request/MultipleDetailMessageSendingRequest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ import net.nurigo.sdk.message.model.Message
88
data class MultipleDetailMessageSendingRequest(
99
var messages: List<Message> = emptyList(),
1010
var scheduledDate: Instant? = null,
11+
var showMessageList: Boolean = false
1112
) : AbstractDefaultMessageRequest()

src/main/java/net/nurigo/sdk/message/response/MultipleDetailMessageSentResponse.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,13 @@ import net.nurigo.sdk.message.model.FailedMessage
66
@Serializable
77
data class MultipleDetailMessageSentResponse(
88
var failedMessageList: List<FailedMessage> = emptyList(),
9-
var groupInfo: MultipleMessageSentResponse? = null
10-
)
9+
var groupInfo: MultipleMessageSentResponse? = null,
10+
var messageList: List<MessageList>? = null
11+
) {
12+
@Serializable
13+
data class MessageList(
14+
var messageId: String? = null,
15+
var statusCode: String? = null,
16+
var customFields: Map<String, String>? = null
17+
)
18+
}

src/main/java/net/nurigo/sdk/message/service/DefaultMessageService.kt

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,51 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
435435
}
436436
}
437437

438+
/**
439+
* 다중 메시지(2건 이상) 발송 API
440+
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
441+
*/
442+
@Throws(
443+
NurigoMessageNotReceivedException::class,
444+
NurigoEmptyResponseException::class,
445+
NurigoUnknownException::class
446+
)
447+
fun send(
448+
messages: List<Message>,
449+
allowDuplicates: Boolean,
450+
showMessageList: Boolean
451+
): MultipleDetailMessageSentResponse {
452+
val parameter = MultipleDetailMessageSendingRequest(
453+
messages = messages,
454+
scheduledDate = null,
455+
showMessageList = showMessageList,
456+
)
457+
parameter.allowDuplicates = allowDuplicates
458+
val response = this.messageHttpService.sendManyDetail(parameter).execute()
459+
460+
if (response.isSuccessful) {
461+
val responseBody = response.body()
462+
if (responseBody != null) {
463+
val count: Count = responseBody.groupInfo?.count ?: Count()
464+
val failedMessageList = responseBody.failedMessageList
465+
466+
if (failedMessageList.isNotEmpty() && count.total == failedMessageList.count()) {
467+
// TODO: i18n needed
468+
val messageNotReceivedException = NurigoMessageNotReceivedException("메시지 발송 접수에 실패했습니다.")
469+
messageNotReceivedException.failedMessageList = failedMessageList
470+
throw messageNotReceivedException
471+
}
472+
473+
return responseBody
474+
}
475+
throw NurigoEmptyResponseException("서버로부터 아무 응답을 받지 못했습니다.")
476+
} else {
477+
val errorString = response.errorBody()?.string() ?: "Server error encountered"
478+
throw NurigoUnknownException(errorString)
479+
}
480+
}
481+
482+
438483
/**
439484
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
440485
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
@@ -516,6 +561,51 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
516561
}
517562
}
518563

564+
/**
565+
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
566+
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
567+
*/
568+
@Throws(
569+
NurigoMessageNotReceivedException::class,
570+
NurigoEmptyResponseException::class,
571+
NurigoUnknownException::class
572+
)
573+
fun send(
574+
messages: List<Message>,
575+
scheduledDateTime: java.time.Instant,
576+
allowDuplicates: Boolean,
577+
showMessageList: Boolean
578+
): MultipleDetailMessageSentResponse {
579+
val parameter = MultipleDetailMessageSendingRequest(
580+
messages = messages,
581+
scheduledDate = scheduledDateTime.toKotlinInstant(),
582+
showMessageList = showMessageList
583+
)
584+
parameter.allowDuplicates = allowDuplicates
585+
val response = this.messageHttpService.sendManyDetail(parameter).execute()
586+
587+
if (response.isSuccessful) {
588+
val responseBody = response.body()
589+
if (responseBody != null) {
590+
val count: Count = responseBody.groupInfo?.count ?: Count()
591+
val failedMessageList = responseBody.failedMessageList
592+
593+
if (failedMessageList.isNotEmpty() && count.total == failedMessageList.count()) {
594+
// TODO: i18n needed
595+
val messageNotReceivedException = NurigoMessageNotReceivedException("메시지 발송 접수에 실패했습니다.")
596+
messageNotReceivedException.failedMessageList = failedMessageList
597+
throw messageNotReceivedException
598+
}
599+
600+
return responseBody
601+
}
602+
throw NurigoEmptyResponseException("서버로부터 아무 응답을 받지 못했습니다.")
603+
} else {
604+
val errorString = response.errorBody()?.string() ?: "Server error encountered"
605+
throw NurigoUnknownException(errorString)
606+
}
607+
}
608+
519609
/**
520610
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
521611
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
@@ -559,6 +649,51 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
559649
}
560650
}
561651

652+
/**
653+
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
654+
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
655+
*/
656+
@Throws(
657+
NurigoMessageNotReceivedException::class,
658+
NurigoEmptyResponseException::class,
659+
NurigoUnknownException::class
660+
)
661+
fun send(
662+
messages: List<Message>,
663+
scheduledDateTime: Instant,
664+
allowDuplicates: Boolean,
665+
showMessageList: Boolean
666+
): MultipleDetailMessageSentResponse {
667+
val parameter = MultipleDetailMessageSendingRequest(
668+
messages = messages,
669+
scheduledDate = scheduledDateTime,
670+
showMessageList = showMessageList
671+
)
672+
parameter.allowDuplicates = allowDuplicates
673+
val response = this.messageHttpService.sendManyDetail(parameter).execute()
674+
675+
if (response.isSuccessful) {
676+
val responseBody = response.body()
677+
if (responseBody != null) {
678+
val count: Count = responseBody.groupInfo?.count ?: Count()
679+
val failedMessageList = responseBody.failedMessageList
680+
681+
if (failedMessageList.isNotEmpty() && count.total == failedMessageList.count()) {
682+
// TODO: i18n needed
683+
val messageNotReceivedException = NurigoMessageNotReceivedException("메시지 발송 접수에 실패했습니다.")
684+
messageNotReceivedException.failedMessageList = failedMessageList
685+
throw messageNotReceivedException
686+
}
687+
688+
return responseBody
689+
}
690+
throw NurigoEmptyResponseException("서버로부터 아무 응답을 받지 못했습니다.")
691+
} else {
692+
val errorString = response.errorBody()?.string() ?: "Server error encountered"
693+
throw NurigoUnknownException(errorString)
694+
}
695+
}
696+
562697
/**
563698
* 다중 메시지(2건 이상) 발송 및 예약 발송 API
564699
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.

0 commit comments

Comments
 (0)