PG 수정

- 헥토 검증 API 추가
This commit is contained in:
klaus 2024-06-29 18:59:51 +09:00
parent 888674b776
commit ac7124a7e6
4 changed files with 77 additions and 16 deletions

View File

@ -36,6 +36,12 @@ interface CanApi {
@Header("Authorization") authHeader: String
): Single<ApiResponse<Any>>
@POST("/charge/verify/hecto")
fun verifyChargeHecto(
@Body request: VerifyRequest,
@Header("Authorization") authHeader: String
): Single<ApiResponse<Any>>
@GET("/can")
fun getCans(
@Header("Authorization") authHeader: String

View File

@ -22,6 +22,11 @@ class CanRepository(private val api: CanApi) {
token: String
) = api.verifyCharge(request, authHeader = token)
fun verifyHecto(
request: VerifyRequest,
token: String
) = api.verifyChargeHecto(request, authHeader = token)
fun getCans(token: String) = api.getCans(authHeader = token)
fun getCanStatus(token: String) = api.getCanStatus(authHeader = token)

View File

@ -219,22 +219,42 @@ class CanPaymentActivity : BaseActivity<ActivityCanPaymentBinding>(
val bootpayResponse = Gson().fromJson(data, BootpayResponse::class.java)
val request = VerifyRequest(bootpayResponse.data.receiptId, bootpayResponse.data.orderId)
viewModel.verify(
request,
onSuccess = {
Toast.makeText(applicationContext, "캔이 충전되었습니다", Toast.LENGTH_LONG).show()
SharedPreferenceManager.can += (canResponse!!.rewardCan + canResponse!!.can)
if (gotoPrevPage) {
setResult(RESULT_OK)
} else {
val intent = Intent(applicationContext, CanStatusActivity::class.java)
startActivity(intent)
if (viewModel.paymentMethodLiveData.value!! == PaymentMethod.PHONE) {
viewModel.verify(
request,
onSuccess = {
Toast.makeText(applicationContext, "캔이 충전되었습니다", Toast.LENGTH_LONG).show()
SharedPreferenceManager.can += (canResponse!!.rewardCan + canResponse!!.can)
if (gotoPrevPage) {
setResult(RESULT_OK)
} else {
val intent = Intent(applicationContext, CanStatusActivity::class.java)
startActivity(intent)
}
finish()
},
onFailure = {
Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show()
}
finish()
},
onFailure = {
Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show()
}
)
)
} else {
viewModel.verifyHecto(
request,
onSuccess = {
Toast.makeText(applicationContext, "캔이 충전되었습니다", Toast.LENGTH_LONG).show()
SharedPreferenceManager.can += (canResponse!!.rewardCan + canResponse!!.can)
if (gotoPrevPage) {
setResult(RESULT_OK)
} else {
val intent = Intent(applicationContext, CanStatusActivity::class.java)
startActivity(intent)
}
finish()
},
onFailure = {
Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show()
}
)
}
}
}

View File

@ -87,6 +87,36 @@ class CanPaymentViewModel(private val repository: CanRepository) : BaseViewModel
)
}
fun verifyHecto(request: VerifyRequest, onSuccess: () -> Unit, onFailure: (String) -> Unit) {
_isLoading.value = true
compositeDisposable.add(
repository.verifyHecto(
request = request,
"Bearer ${SharedPreferenceManager.token}"
).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
_isLoading.value = false
if (it.success) {
onSuccess()
} else {
if (it.message != null) {
onFailure(it.message)
} else {
onFailure("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
}
}
},
{
_isLoading.value = false
it.message?.let { message -> Logger.e(message) }
onFailure("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
}
)
)
}
fun setPaymentMethod(paymentMethod: CanPaymentActivity.PaymentMethod) {
_paymentMethodLiveData.value = paymentMethod
}