From 901247a9209fbfb68415a218c64888afa2b07831 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Sat, 31 Jan 2026 12:02:23 +0530 Subject: [PATCH] Expose pincode resolver errors in extraction --- .../trisolarisserver/component/DataGovPincodeClient.kt | 4 ++-- .../trisolarisserver/component/DocumentExtractionService.kt | 3 +++ .../trisolarisserver/component/GoogleGeocodingClient.kt | 3 ++- .../android/trisolarisserver/component/PostalPincodeClient.kt | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/component/DataGovPincodeClient.kt b/src/main/kotlin/com/android/trisolarisserver/component/DataGovPincodeClient.kt index c516461..8cbb024 100644 --- a/src/main/kotlin/com/android/trisolarisserver/component/DataGovPincodeClient.kt +++ b/src/main/kotlin/com/android/trisolarisserver/component/DataGovPincodeClient.kt @@ -20,7 +20,7 @@ class DataGovPincodeClient( private val logger = LoggerFactory.getLogger(DataGovPincodeClient::class.java) fun resolve(pinCode: String): PincodeLookupResult { - if (apiKey.isBlank()) return PincodeLookupResult(null, null, "NO_API_KEY", "data.gov.in") + if (apiKey.isBlank()) return PincodeLookupResult(null, null, "NO_API_KEY", "data.gov.in", "Missing API key") return try { val url = UriComponentsBuilder.fromUriString(baseUrl) .queryParam("api-key", apiKey) @@ -34,7 +34,7 @@ class DataGovPincodeClient( PincodeLookupResult(resolved, body, status, "data.gov.in") } catch (ex: Exception) { logger.warn("Data.gov.in lookup failed: {}", ex.message) - PincodeLookupResult(null, null, "ERROR", "data.gov.in") + PincodeLookupResult(null, null, "ERROR", "data.gov.in", ex.message) } } diff --git a/src/main/kotlin/com/android/trisolarisserver/component/DocumentExtractionService.kt b/src/main/kotlin/com/android/trisolarisserver/component/DocumentExtractionService.kt index b225e39..92e871d 100644 --- a/src/main/kotlin/com/android/trisolarisserver/component/DocumentExtractionService.kt +++ b/src/main/kotlin/com/android/trisolarisserver/component/DocumentExtractionService.kt @@ -437,15 +437,18 @@ class DocumentExtractionService( results["geoPrimarySource"] = primary.source primary.status?.let { results["geoPrimaryStatus"] = it } primary.rawResponse?.let { results["geoPrimaryResponse"] = it.take(4000) } + primary.errorMessage?.let { results["geoPrimaryError"] = it.take(300) } resolvedResult.secondary?.let { secondary -> results["geoSecondarySource"] = secondary.source secondary.status?.let { results["geoSecondaryStatus"] = it } secondary.rawResponse?.let { results["geoSecondaryResponse"] = it.take(4000) } + secondary.errorMessage?.let { results["geoSecondaryError"] = it.take(300) } } resolvedResult.tertiary?.let { tertiary -> results["geoTertiarySource"] = tertiary.source tertiary.status?.let { results["geoTertiaryStatus"] = it } tertiary.rawResponse?.let { results["geoTertiaryResponse"] = it.take(4000) } + tertiary.errorMessage?.let { results["geoTertiaryError"] = it.take(300) } } val resolved = resolvedResult.resolved()?.resolvedCityState ?: return results["geoResolved"] = resolved diff --git a/src/main/kotlin/com/android/trisolarisserver/component/GoogleGeocodingClient.kt b/src/main/kotlin/com/android/trisolarisserver/component/GoogleGeocodingClient.kt index edc929a..4f97872 100644 --- a/src/main/kotlin/com/android/trisolarisserver/component/GoogleGeocodingClient.kt +++ b/src/main/kotlin/com/android/trisolarisserver/component/GoogleGeocodingClient.kt @@ -104,5 +104,6 @@ data class PincodeLookupResult( val resolvedCityState: String?, val rawResponse: String?, val status: String?, - val source: String + val source: String, + val errorMessage: String? = null ) diff --git a/src/main/kotlin/com/android/trisolarisserver/component/PostalPincodeClient.kt b/src/main/kotlin/com/android/trisolarisserver/component/PostalPincodeClient.kt index 02b325d..9b53b4c 100644 --- a/src/main/kotlin/com/android/trisolarisserver/component/PostalPincodeClient.kt +++ b/src/main/kotlin/com/android/trisolarisserver/component/PostalPincodeClient.kt @@ -30,7 +30,7 @@ class PostalPincodeClient( PincodeLookupResult(resolved, body, status, "postalpincode.in") } catch (ex: Exception) { logger.warn("Postalpincode lookup failed: {}", ex.message) - PincodeLookupResult(null, null, "ERROR", "postalpincode.in") + PincodeLookupResult(null, null, "ERROR", "postalpincode.in", ex.message) } }