diff --git a/android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt b/android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt index 4a1cb2dd..8f546a95 100644 --- a/android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt +++ b/android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt @@ -88,7 +88,8 @@ internal object GetCMPDataMock { domain = "domain", description = "description", ) - ) + ), + sdks = listOf() ), isHidden = false, ) @@ -628,17 +629,20 @@ internal object GetCMPDataMock { "isDeactivated" to false, "disableLegalBasis" to false, "technologyUsed" to listOf("Cookies", "Pixel Tags"), - "deviceStorage" to listOf( - mapOf( - "identifier" to "identifier", - "type" to 2, - "name" to "name", - "maxAgeSeconds" to 123123L, - "cookieRefresh" to true, - "purposes" to listOf(1, 2, 3), - "domain" to "domain", - "description" to "description", - ) + "deviceStorage" to mapOf( + "disclosures" to listOf( + mapOf( + "identifier" to "identifier", + "type" to 2, + "name" to "name", + "maxAgeSeconds" to 123123L, + "cookieRefresh" to true, + "purposes" to listOf(1, 2, 3), + "domain" to "domain", + "description" to "description", + ) + ), + "sdks" to emptyList>() ), "isHidden" to false, ) diff --git a/android/src/main/java/com/usercentrics/reactnative/extensions/ConsentDisclosureSerializer.kt b/android/src/main/java/com/usercentrics/reactnative/extensions/ConsentDisclosureSerializer.kt index f5a5a4bd..16619254 100644 --- a/android/src/main/java/com/usercentrics/reactnative/extensions/ConsentDisclosureSerializer.kt +++ b/android/src/main/java/com/usercentrics/reactnative/extensions/ConsentDisclosureSerializer.kt @@ -2,12 +2,23 @@ package com.usercentrics.reactnative.extensions import com.usercentrics.sdk.v2.settings.data.ConsentDisclosure import com.usercentrics.sdk.v2.settings.data.ConsentDisclosureObject +import com.usercentrics.sdk.v2.settings.data.ConsentDisclosureSDK internal fun ConsentDisclosureObject?.serialize(): Any? { if (this == null) { return null } - return disclosures.map { it.serialize() } + return mapOf( + "disclosures" to disclosures.map { it.serialize() }, + "sdks" to sdks.map { it.serialize() } + ) +} + +private fun ConsentDisclosureSDK.serialize(): Map { + return mapOf( + "name" to name, + "use" to use + ) } internal fun ConsentDisclosure.serialize(): Any { diff --git a/example/ios/exampleTests/Mock/CMPData+Mock.swift b/example/ios/exampleTests/Mock/CMPData+Mock.swift index 409ae2df..2cddb33b 100644 --- a/example/ios/exampleTests/Mock/CMPData+Mock.swift +++ b/example/ios/exampleTests/Mock/CMPData+Mock.swift @@ -234,7 +234,7 @@ extension SecondLayer { extension ConsentDisclosureObject { static func mock() -> ConsentDisclosureObject { - return .init(disclosures: [.mock()]) + return .init(disclosures: [.mock()], sdks: []) } } diff --git a/ios/Extensions/UsercentricsCMPData+Dict.swift b/ios/Extensions/UsercentricsCMPData+Dict.swift index 0a54b18f..11765cbd 100644 --- a/ios/Extensions/UsercentricsCMPData+Dict.swift +++ b/ios/Extensions/UsercentricsCMPData+Dict.swift @@ -364,7 +364,10 @@ extension UsercentricsService { extension ConsentDisclosureObject { func toDictionary() -> Any { - return self.disclosures.map { $0.toDictionary() } + return [ + "disclosures": self.disclosures.map { $0.toDictionary() }, + "sdks": self.sdks.map { ["name": $0.name, "use": $0.use] } + ] } } diff --git a/sample/ios/sampleTests/Mock/CMPData+Mock.swift b/sample/ios/sampleTests/Mock/CMPData+Mock.swift index 5a2ff64b..ec12eb93 100644 --- a/sample/ios/sampleTests/Mock/CMPData+Mock.swift +++ b/sample/ios/sampleTests/Mock/CMPData+Mock.swift @@ -234,7 +234,7 @@ extension SecondLayer { extension ConsentDisclosureObject { static func mock() -> ConsentDisclosureObject { - return .init(disclosures: [.mock()]) + return .init(disclosures: [.mock()], sdks: []) } } diff --git a/src/__tests__/mocks.ts b/src/__tests__/mocks.ts index 6a649883..c290e231 100644 --- a/src/__tests__/mocks.ts +++ b/src/__tests__/mocks.ts @@ -268,7 +268,8 @@ const disclosure: ConsentDisclosure = { } const consentDisclosureObject: ConsentDisclosureObject = { - disclosures: [disclosure] + disclosures: [disclosure], + sdks: [], } const ucService: UsercentricsService = { diff --git a/src/models/ConsentDisclosureObject.tsx b/src/models/ConsentDisclosureObject.tsx index 9307f0dc..08f50243 100644 --- a/src/models/ConsentDisclosureObject.tsx +++ b/src/models/ConsentDisclosureObject.tsx @@ -1,9 +1,21 @@ +export class ConsentDisclosureSDK { + name: string + use: string + + constructor(name: string, use: string) { + this.name = name + this.use = use + } +} + export class ConsentDisclosureObject { disclosures: [ConsentDisclosure] + sdks: ConsentDisclosureSDK[] - constructor(disclosures: [ConsentDisclosure]) { + constructor(disclosures: [ConsentDisclosure], sdks?: ConsentDisclosureSDK[]) { this.disclosures = disclosures + this.sdks = sdks ?? [] } }