package io.tryrook.rook.sdk import com.getcapacitor.JSArray import com.getcapacitor.JSObject import io.tryrook.sdk.samsung.domain.model.SHHeartRate import io.tryrook.sdk.samsung.domain.model.granular.HrGranularData import io.tryrook.sdk.samsung.domain.model.granular.HrvRmssdGranularData import io.tryrook.sdk.samsung.domain.model.granular.HrvSdnnGranularData object SHHeartRateMapper { fun map(event: SHHeartRate): JSObject { val js: JSObject = JSObject() js.putOpt("hrMaximumBPM", event.hrMaximumBpm) js.putOpt("hrMinimumBPM", event.hrMinimumBpm) js.putOpt("hrAverageBPM", event.hrAvgBpm) js.putOpt("hrRestingBPM", event.hrRestingBpm) js.putOpt("hrvAverageRMSSD", event.hrvAvgRmssd) js.putOpt("hrvAverageSDNN", event.hrvAvgSdnn) js.putOpt("hrGranularData", getJSArrayHrGranular(event.hrGranularData)) js.putOpt("hrvSDNNGranularData", getJSArrayHRVSdnnGranular(event.hrvSdnnGranularData) ) js.putOpt("hrvRMSSDGranularData", getJSArrayHRVRmssGranular(event.hrvRmssdGranularData) ) return js } private fun getJSArrayHrGranular(list: List?): JSArray? { if (list != null) { val jsonArray: JSArray = JSArray() for (item in list) { val js: JSObject = JSObject() js.putOpt("dateTime", item.dateTime.toISODateString()) js.putOpt("hrBPM", item.hrBpm) jsonArray.put(js) } return jsonArray } else { return null } } private fun getJSArrayHRVSdnnGranular(list: List??): JSArray? { if (list != null) { val jsonArray: JSArray = JSArray() for (item in list) { val js: JSObject = JSObject() js.putOpt("dateTime", item.dateTime.toISODateString()) js.putOpt("hrvSDNN", item.hrvSdnn) jsonArray.put(js) } return jsonArray } else { return null } } private fun getJSArrayHRVRmssGranular(list: List?): JSArray? { if (list != null) { val jsonArray: JSArray = JSArray() for (item in list) { val js: JSObject = JSObject() js.putOpt("dateTime", item.dateTime.toISODateString()) js.putOpt("hrvRmssd", item.hrvRmssd) jsonArray.put(js) } return jsonArray } else { return null } } }