Accept legacy settings payload for Razorpay
All checks were successful
build-and-deploy / build-deploy (push) Successful in 33s
All checks were successful
build-and-deploy / build-deploy (push) Successful in 33s
This commit is contained in:
@@ -59,19 +59,29 @@ class RazorpaySettingsController(
|
|||||||
val property = propertyRepo.findById(propertyId).orElseThrow {
|
val property = propertyRepo.findById(propertyId).orElseThrow {
|
||||||
ResponseStatusException(HttpStatus.NOT_FOUND, "Property not found")
|
ResponseStatusException(HttpStatus.NOT_FOUND, "Property not found")
|
||||||
}
|
}
|
||||||
|
val keyId = request.keyId?.trim()?.ifBlank { null } ?: request.merchantKey?.trim()?.ifBlank { null }
|
||||||
|
val keySecret = request.keySecret?.trim()?.ifBlank { null }
|
||||||
|
?: run {
|
||||||
|
val prefer256 = request.useSalt256 == true
|
||||||
|
val candidate = if (prefer256) request.salt256 else request.salt32
|
||||||
|
candidate?.trim()?.ifBlank { null } ?: request.salt256?.trim()?.ifBlank { null } ?: request.salt32?.trim()?.ifBlank { null }
|
||||||
|
}
|
||||||
|
if (keyId == null || keySecret == null) {
|
||||||
|
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "keyId/keySecret required")
|
||||||
|
}
|
||||||
val existing = settingsRepo.findByPropertyId(propertyId)
|
val existing = settingsRepo.findByPropertyId(propertyId)
|
||||||
val updated = if (existing == null) {
|
val updated = if (existing == null) {
|
||||||
RazorpaySettings(
|
RazorpaySettings(
|
||||||
property = property,
|
property = property,
|
||||||
keyId = request.keyId.trim(),
|
keyId = keyId,
|
||||||
keySecret = request.keySecret.trim(),
|
keySecret = keySecret,
|
||||||
webhookSecret = request.webhookSecret?.trim(),
|
webhookSecret = request.webhookSecret?.trim(),
|
||||||
isTest = request.isTest ?: false,
|
isTest = request.isTest ?: false,
|
||||||
updatedAt = OffsetDateTime.now()
|
updatedAt = OffsetDateTime.now()
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
existing.keyId = request.keyId.trim()
|
existing.keyId = keyId
|
||||||
existing.keySecret = request.keySecret.trim()
|
existing.keySecret = keySecret
|
||||||
existing.webhookSecret = request.webhookSecret?.trim()
|
existing.webhookSecret = request.webhookSecret?.trim()
|
||||||
request.isTest?.let { existing.isTest = it }
|
request.isTest?.let { existing.isTest = it }
|
||||||
existing.updatedAt = OffsetDateTime.now()
|
existing.updatedAt = OffsetDateTime.now()
|
||||||
|
|||||||
@@ -3,10 +3,15 @@ package com.android.trisolarisserver.controller.dto
|
|||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
data class RazorpaySettingsUpsertRequest(
|
data class RazorpaySettingsUpsertRequest(
|
||||||
val keyId: String,
|
val keyId: String? = null,
|
||||||
val keySecret: String,
|
val keySecret: String? = null,
|
||||||
val webhookSecret: String? = null,
|
val webhookSecret: String? = null,
|
||||||
val isTest: Boolean? = null
|
val isTest: Boolean? = null,
|
||||||
|
// Backward-compatible aliases (older clients sending PayU-shaped payloads)
|
||||||
|
val merchantKey: String? = null,
|
||||||
|
val salt32: String? = null,
|
||||||
|
val salt256: String? = null,
|
||||||
|
val useSalt256: Boolean? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
data class RazorpaySettingsResponse(
|
data class RazorpaySettingsResponse(
|
||||||
|
|||||||
Reference in New Issue
Block a user