Skip to content

Commit

Permalink
Merge pull request #10 from hosysy/main
Browse files Browse the repository at this point in the history
getQuota 예제추가
  • Loading branch information
hosysy authored Dec 8, 2022
2 parents 77b2244 + 7a3abac commit ff29042
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 95 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@
build/*
.gradle/*
gradle.properties
secring.gpg
secring.gpg
signing.gpg
main.kt
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.8"
version = "4.2.9"

repositories {
mavenCentral()
Expand Down
31 changes: 31 additions & 0 deletions src/main/java/net/nurigo/sdk/message/model/Quota.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package net.nurigo.sdk.message.model

import kotlinx.serialization.Serializable

@Serializable
data class Quota(
/**
* 계정 아이디
*/
var accountId: String? = null,

/**
* 발송량 자동 조정 여부
*/
var autoAdjustment: Boolean? = null,

/**
* 일일 발송량
*/
var quota: Int? = null,

/**
* 최소 일일 발송량
*/
var min: Int? = null,

/**
* 최대 일일 발송량
*/
var max: Int? = null
)
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.8",
val sdkVersion: String = "java/4.2.9",
val osPlatform: String = "${System.getProperty("os.name")} | ${System.getProperty("java.version")}"
)
142 changes: 50 additions & 92 deletions src/main/java/net/nurigo/sdk/message/service/DefaultMessageService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
private var messageHttpService: MessageHttpService

init {
val client = OkHttpClient.Builder()
.addInterceptor { chain ->
val authInfo = Authenticator(apiKey, apiSecretKey).generateAuthInfo()
val request: Request = chain.request()
.newBuilder()
.addHeader("Authorization", authInfo)
.build()
chain.proceed(request)
}
.build()
val client = OkHttpClient.Builder().addInterceptor { chain ->
val authInfo = Authenticator(apiKey, apiSecretKey).generateAuthInfo()
val request: Request = chain.request().newBuilder().addHeader("Authorization", authInfo).build()
chain.proceed(request)
}.build()
val contentType = "application/json".toMediaType()
val jsonConfig = Json {
coerceInputValues = true
Expand All @@ -44,12 +39,9 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
ignoreUnknownKeys = true
}

messageHttpService = Retrofit.Builder()
.baseUrl(domain)
.addConverterFactory(jsonConfig.asConverterFactory(contentType))
.client(client)
.build()
.create(MessageHttpService::class.java)
messageHttpService =
Retrofit.Builder().baseUrl(domain).addConverterFactory(jsonConfig.asConverterFactory(contentType))
.client(client).build().create(MessageHttpService::class.java)
}

/**
Expand All @@ -69,9 +61,7 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
}
val encodedFile = String(Base64.encodeBase64(imageByte))
val fileRequest = FileUploadRequest(
file = encodedFile,
type = fileType,
link = link
file = encodedFile, type = fileType, link = link
)
val response = this.messageHttpService.uploadFile(fileRequest).execute()
if (response.isSuccessful) {
Expand Down Expand Up @@ -247,14 +237,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(message: Message): MultipleDetailMessageSentResponse {
val multipleParameter = MultipleDetailMessageSendingRequest(
messages = listOf(message),
scheduledDate = null
messages = listOf(message), scheduledDate = null
)

val response = this.messageHttpService.sendManyDetail(multipleParameter).execute()
Expand Down Expand Up @@ -286,14 +273,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(message: Message, scheduledDateTime: java.time.Instant): MultipleDetailMessageSentResponse {
val multipleParameter = MultipleDetailMessageSendingRequest(
messages = listOf(message),
scheduledDate = scheduledDateTime.toKotlinInstant()
messages = listOf(message), scheduledDate = scheduledDateTime.toKotlinInstant()
)
val response = this.messageHttpService.sendManyDetail(multipleParameter).execute()

Expand Down Expand Up @@ -324,14 +308,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(message: Message, scheduledDate: Instant): MultipleDetailMessageSentResponse {
val multipleParameter = MultipleDetailMessageSendingRequest(
messages = listOf(message),
scheduledDate = scheduledDate
messages = listOf(message), scheduledDate = scheduledDate
)

val response = this.messageHttpService.sendManyDetail(multipleParameter).execute()
Expand Down Expand Up @@ -363,14 +344,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(messages: List<Message>): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages,
null
messages, null
)
val response = this.messageHttpService.sendManyDetail(parameter).execute()

Expand Down Expand Up @@ -401,14 +379,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(messages: List<Message>, allowDuplicates: Boolean): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages,
null
messages, null
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()
Expand Down Expand Up @@ -440,14 +415,10 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(
messages: List<Message>,
allowDuplicates: Boolean,
showMessageList: Boolean
messages: List<Message>, allowDuplicates: Boolean, showMessageList: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages = messages,
Expand Down Expand Up @@ -485,14 +456,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(messages: List<Message>, scheduledDateTime: java.time.Instant): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages,
scheduledDateTime.toKotlinInstant()
messages, scheduledDateTime.toKotlinInstant()
)
val response = this.messageHttpService.sendManyDetail(parameter).execute()

Expand Down Expand Up @@ -523,18 +491,13 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(
messages: List<Message>,
scheduledDateTime: java.time.Instant,
allowDuplicates: Boolean
messages: List<Message>, scheduledDateTime: java.time.Instant, allowDuplicates: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages,
scheduledDateTime.toKotlinInstant()
messages, scheduledDateTime.toKotlinInstant()
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()
Expand Down Expand Up @@ -566,9 +529,7 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(
messages: List<Message>,
Expand All @@ -577,9 +538,7 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
showMessageList: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages = messages,
scheduledDate = scheduledDateTime.toKotlinInstant(),
showMessageList = showMessageList
messages = messages, scheduledDate = scheduledDateTime.toKotlinInstant(), showMessageList = showMessageList
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()
Expand Down Expand Up @@ -611,18 +570,13 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(
messages: List<Message>,
scheduledDateTime: Instant,
allowDuplicates: Boolean
messages: List<Message>, scheduledDateTime: Instant, allowDuplicates: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages,
scheduledDateTime
messages, scheduledDateTime
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()
Expand Down Expand Up @@ -654,20 +608,13 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(
messages: List<Message>,
scheduledDateTime: Instant,
allowDuplicates: Boolean,
showMessageList: Boolean
messages: List<Message>, scheduledDateTime: Instant, allowDuplicates: Boolean, showMessageList: Boolean
): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages = messages,
scheduledDate = scheduledDateTime,
showMessageList = showMessageList
messages = messages, scheduledDate = scheduledDateTime, showMessageList = showMessageList
)
parameter.allowDuplicates = allowDuplicates
val response = this.messageHttpService.sendManyDetail(parameter).execute()
Expand Down Expand Up @@ -699,14 +646,11 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
* sendOne 및 sendMany 보다 더 개선된 오류 및 데이터 정보를 반환합니다.
*/
@Throws(
NurigoMessageNotReceivedException::class,
NurigoEmptyResponseException::class,
NurigoUnknownException::class
NurigoMessageNotReceivedException::class, NurigoEmptyResponseException::class, NurigoUnknownException::class
)
fun send(messages: List<Message>, scheduledDateTime: Instant): MultipleDetailMessageSentResponse {
val parameter = MultipleDetailMessageSendingRequest(
messages,
scheduledDateTime
messages, scheduledDateTime
)
val response = this.messageHttpService.sendManyDetail(parameter).execute()

Expand Down Expand Up @@ -766,4 +710,18 @@ class DefaultMessageService(apiKey: String, apiSecretKey: String, domain: String
throw NurigoUnknownException("${errorResponse.errorCode}: ${errorResponse.errorMessage}")
}
}

/**
* 일일 발송량 한도 조회 API
*/
@Throws
fun getQuota(): Quota {
val response = this.messageHttpService.getQuota().execute()
if (response.isSuccessful) {
return response.body() ?: throw NurigoUnknownException("일일 발송량 조회에 실패하였습니다.")
} else {
val errorResponse: ErrorResponse = Json.decodeFromString(response.errorBody()?.string() ?: "")
throw NurigoUnknownException("${errorResponse.errorCode}: ${errorResponse.errorMessage}")
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.nurigo.sdk.message.service

import net.nurigo.sdk.message.model.Balance
import net.nurigo.sdk.message.model.Quota
import net.nurigo.sdk.message.request.FileUploadRequest
import net.nurigo.sdk.message.request.MultipleDetailMessageSendingRequest
import net.nurigo.sdk.message.request.MultipleMessageSendingRequest
Expand Down Expand Up @@ -29,4 +30,7 @@ interface MessageHttpService : MessageService {

@GET("/cash/v1/balance")
fun getBalance(): Call<Balance>

@GET("/quota/v1/me")
fun getQuota(): Call<Quota>
}

0 comments on commit ff29042

Please sign in to comment.