@@ -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