package com.fireworksdk.bridge.models import org.json.JSONObject object FWTrackPurchaseModelSerializer { private const val ORDER_ID_KEY = "orderId" private const val VALUE_KEY = "value" private const val CURRENCY_CODE_KEY = "currencyCode" private const val COUNTRY_KEY = "countryCode" private const val ADDITIONAL_INFO_KEY = "additionalInfo" private const val SHIPPING_PRICE_KEY = "shippingPrice" private const val SUB_TOTAL_KEY = "subtotal" private const val TOTAL_DISCOUNTS_KEY = "totalDiscounts" private const val PRODUCTS_KEY = "products" fun serialize(model: FWTrackPurchaseModel?): JSONObject? { model ?: return null val jsonObject = JSONObject() jsonObject.put(ORDER_ID_KEY, model.orderId) jsonObject.put(VALUE_KEY, model.value) jsonObject.put(CURRENCY_CODE_KEY, model.currencyCode) jsonObject.put(COUNTRY_KEY, model.countryCode) jsonObject.put(SHIPPING_PRICE_KEY, model.shippingPrice) jsonObject.put(SUB_TOTAL_KEY, model.subtotal) jsonObject.put(TOTAL_DISCOUNTS_KEY, model.totalDiscounts) jsonObject.put(PRODUCTS_KEY, FWTrackPurchaseProductSerializer.serializeArray(model.products)) if (model.additionalInfo != null) { val additionalInfoJsonObject = JSONObject() val keys = model.additionalInfo.keys for (key in keys) { val value = model.additionalInfo[key] additionalInfoJsonObject.put(key, value); } jsonObject.put(ADDITIONAL_INFO_KEY, additionalInfoJsonObject) } return jsonObject } }