From 934593072280d8ebe71acc8d05ce9687c959e5a9 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Fri, 30 Jan 2026 06:07:49 +0530 Subject: [PATCH] Return empty PayU settings when not configured --- .../controller/PayuSettingsController.kt | 13 ++++++++++++- .../trisolarisserver/controller/dto/PayuDtos.kt | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/PayuSettingsController.kt b/src/main/kotlin/com/android/trisolarisserver/controller/PayuSettingsController.kt index e2e17e7..f566fe9 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/PayuSettingsController.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/PayuSettingsController.kt @@ -35,7 +35,17 @@ class PayuSettingsController( ): PayuSettingsResponse { requireRole(propertyAccess, propertyId, principal, Role.ADMIN, Role.MANAGER) val settings = payuSettingsRepo.findByPropertyId(propertyId) - ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, "PayU settings not configured") + if (settings == null) { + return PayuSettingsResponse( + propertyId = propertyId, + configured = false, + merchantKey = null, + isTest = false, + useSalt256 = true, + hasSalt32 = false, + hasSalt256 = false + ) + } return settings.toResponse() } @@ -88,6 +98,7 @@ private fun PayuSettings.toResponse(): PayuSettingsResponse { val propertyId = property.id ?: throw ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, "Property id missing") return PayuSettingsResponse( propertyId = propertyId, + configured = true, merchantKey = merchantKey, isTest = isTest, useSalt256 = useSalt256, diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/dto/PayuDtos.kt b/src/main/kotlin/com/android/trisolarisserver/controller/dto/PayuDtos.kt index 9dbd913..685cdcf 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/dto/PayuDtos.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/dto/PayuDtos.kt @@ -12,7 +12,8 @@ data class PayuSettingsUpsertRequest( data class PayuSettingsResponse( val propertyId: UUID, - val merchantKey: String, + val configured: Boolean, + val merchantKey: String?, val isTest: Boolean, val useSalt256: Boolean, val hasSalt32: Boolean,