Require paymentId for Razorpay refunds
All checks were successful
build-and-deploy / build-deploy (push) Successful in 34s
All checks were successful
build-and-deploy / build-deploy (push) Successful in 34s
This commit is contained in:
@@ -53,15 +53,9 @@ class RazorpayRefundsController(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val paymentId = request.paymentId
|
val paymentId = request.paymentId
|
||||||
val razorpayPaymentId = request.razorpayPaymentId?.trim()?.ifBlank { null }
|
?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "paymentId is required")
|
||||||
if ((paymentId == null && razorpayPaymentId == null) || (paymentId != null && razorpayPaymentId != null)) {
|
|
||||||
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Provide exactly one of paymentId or razorpayPaymentId")
|
|
||||||
}
|
|
||||||
|
|
||||||
val gatewayPaymentId = if (razorpayPaymentId != null) {
|
val payment = paymentRepo.findById(paymentId).orElseThrow {
|
||||||
razorpayPaymentId
|
|
||||||
} else {
|
|
||||||
val payment = paymentRepo.findById(paymentId!!).orElseThrow {
|
|
||||||
ResponseStatusException(HttpStatus.NOT_FOUND, "Payment not found")
|
ResponseStatusException(HttpStatus.NOT_FOUND, "Payment not found")
|
||||||
}
|
}
|
||||||
if (payment.booking.id != bookingId || payment.property.id != propertyId) {
|
if (payment.booking.id != bookingId || payment.property.id != propertyId) {
|
||||||
@@ -72,8 +66,10 @@ class RazorpayRefundsController(
|
|||||||
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "amount must be <= payment amount")
|
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "amount must be <= payment amount")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
payment.gatewayPaymentId
|
val gatewayPaymentId = payment.gatewayPaymentId
|
||||||
?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Payment is missing gateway id")
|
?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Payment is missing gateway id")
|
||||||
|
if (!gatewayPaymentId.startsWith("pay_")) {
|
||||||
|
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Payment is not a Razorpay payment")
|
||||||
}
|
}
|
||||||
|
|
||||||
val settings = settingsRepo.findByPropertyId(propertyId)
|
val settings = settingsRepo.findByPropertyId(propertyId)
|
||||||
|
|||||||
@@ -109,7 +109,6 @@ data class RazorpayPaymentRequestCloseResponse(
|
|||||||
|
|
||||||
data class RazorpayRefundRequest(
|
data class RazorpayRefundRequest(
|
||||||
val paymentId: UUID? = null,
|
val paymentId: UUID? = null,
|
||||||
val razorpayPaymentId: String? = null,
|
|
||||||
val amount: Long? = null,
|
val amount: Long? = null,
|
||||||
val notes: String? = null
|
val notes: String? = null
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user