Skip to content

Commit 516844d

Browse files
committed
fix: use correct configured ObjectMapper for resources hydration
1 parent 2846cc5 commit 516844d

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/main/kotlin/com/ctrlhub/core/datacapture/resource/FormSubmissionVersion.kt

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
package com.ctrlhub.core.datacapture.resource
22

3-
import com.ctrlhub.core.datacapture.response.FormSchema
43
import com.ctrlhub.core.datacapture.response.Form
4+
import com.ctrlhub.core.datacapture.response.FormSchema
55
import com.ctrlhub.core.datacapture.response.FormSubmission
66
import com.ctrlhub.core.geo.Property
77
import com.ctrlhub.core.iam.response.User
8+
import com.ctrlhub.core.json.JsonConfig
89
import com.ctrlhub.core.media.response.Image
910
import com.ctrlhub.core.projects.operations.response.Operation
1011
import com.ctrlhub.core.projects.schemes.response.Scheme
1112
import com.ctrlhub.core.projects.workorders.response.WorkOrder
1213
import com.fasterxml.jackson.annotation.JsonCreator
1314
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
1415
import com.fasterxml.jackson.annotation.JsonProperty
15-
import com.fasterxml.jackson.databind.DeserializationFeature
1616
import com.fasterxml.jackson.databind.ObjectMapper
17-
import com.fasterxml.jackson.module.kotlin.kotlinModule
1817
import com.github.jasminb.jsonapi.StringIdHandler
1918
import com.github.jasminb.jsonapi.annotations.Id
2019
import com.github.jasminb.jsonapi.annotations.Meta
@@ -74,14 +73,14 @@ class FormSubmissionVersion @JsonCreator constructor(
7473
val rawPayload: String?
7574
get() = payload?.let {
7675
try {
77-
mapper.writeValueAsString(it)
76+
resourceMapper().writeValueAsString(it)
7877
} catch (e: Exception) {
7978
null
8079
}
8180
}
8281

8382
// shared Jackson mapper configured to ignore unknown properties when hydrating attribute maps
84-
private fun resourceMapper(): ObjectMapper = mapper
83+
private fun resourceMapper(): ObjectMapper = JsonConfig.getMapper()
8584

8685
/**
8786
* Convert the raw resources list (List<Map<...>>) into typed JsonApiEnvelope objects.
@@ -126,7 +125,7 @@ class FormSubmissionVersion @JsonCreator constructor(
126125
fun autoHydrateById(id: String): Any? {
127126
val env = findResourceEnvelopeById(id) ?: return null
128127
val type = env.data?.type ?: return null
129-
val clazz = Companion.getRegisteredClass(type) ?: return null
128+
val clazz = getRegisteredClass(type) ?: return null
130129
return hydrateResourceAttributesById(id, clazz)
131130
}
132131

@@ -154,10 +153,6 @@ class FormSubmissionVersion @JsonCreator constructor(
154153
}
155154

156155
companion object {
157-
private val mapper: ObjectMapper = ObjectMapper()
158-
.registerModule(kotlinModule())
159-
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
160-
161156
// simple type registry mapping jsonapi resource "type" -> Class
162157
private val typeRegistry: MutableMap<String, Class<*>> = mutableMapOf()
163158

0 commit comments

Comments
 (0)