Skip to content

Commit

Permalink
Merge pull request #581 from SourcePointUSA/DIA-4457_remove_metadata_…
Browse files Browse the repository at this point in the history
…fallback

DIA-4457 remove legacy fallback metadata call
  • Loading branch information
andresilveirah authored Sep 11, 2024
2 parents 38fcfaf + 8d9b009 commit 5510630
Show file tree
Hide file tree
Showing 9 changed files with 115 additions and 261 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/swift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- run: sudo xcode-select -s /Applications/Xcode_15.3.app
- name: Building Swift Package
run: xcodebuild clean build -scheme SPMBuild -workspace ConsentViewController.xcworkspace -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
name: Upload Swift Package build results
with:
Expand All @@ -41,7 +41,7 @@ jobs:
- run: sudo xcode-select -s /Applications/Xcode_15.3.app
- name: ObjC-ExampleApp testing -> iPhone 15 (iOS 17.4)
run: xcodebuild test -scheme ObjC-ExampleApp -workspace ConsentViewController.xcworkspace -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
name: Upload ObjCExampleApp tests results
with:
Expand All @@ -53,7 +53,7 @@ jobs:
- run: sudo xcode-select -s /Applications/Xcode_15.3.app
- name: ConsentViewController testing -> iPhone 15 (iOS 17.4)
run: xcodebuild test -scheme ConsentViewController_Example -workspace ConsentViewController.xcworkspace -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
name: Upload ConsentViewController tests results
with:
Expand All @@ -65,7 +65,7 @@ jobs:
- run: sudo xcode-select -s /Applications/Xcode_15.3.app
- name: ConsentViewController testing -> iPhone 15 (iOS 17.4)
run: xcodebuild test -scheme AuthExample -workspace ConsentViewController.xcworkspace -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
name: Upload ConsentViewController tests results
with:
Expand All @@ -77,7 +77,7 @@ jobs:
- run: sudo xcode-select -s /Applications/Xcode_15.3.app
- name: ConsentViewController testing -> Apple TV (tvOS 17.4)
run: xcodebuild test -scheme TVOSExampleApp -workspace ConsentViewController.xcworkspace -destination 'platform=tvOS Simulator,name=Apple TV,OS=17.4'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
if: failure()
name: Upload TVOSExampleApp tests results
with:
Expand Down
40 changes: 0 additions & 40 deletions ConsentViewController/Classes/SourcePointClient/Adapters.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,49 +8,9 @@
import Foundation
import SPMobileCore

// swiftlint:disable force_unwrapping

extension SPDate {
init(string: String) {
originalDateString = string
date = Self.format.date(from: originalDateString) ?? Date()
}
}

extension MetaDataQueryParam {
func toCore() -> MetaDataRequest.Campaigns {
.init(
gdpr: gdpr != nil ? .init(groupPmId: gdpr?.groupPmId) : nil,
usnat: usnat != nil ? .init(groupPmId: usnat?.groupPmId) : nil,
ccpa: ccpa != nil ? .init(groupPmId: ccpa?.groupPmId) : nil
)
}
}

extension SPMobileCore.MetaDataResponse {
func toNative() -> MetaDataResponse {
.init(
ccpa: ccpa != nil ? .init(
applies: ccpa!.applies,
sampleRate: ccpa!.sampleRate
) : nil,
gdpr: gdpr != nil ? .init(
additionsChangeDate: SPDate(string: gdpr!.additionsChangeDate),
legalBasisChangeDate: SPDate(string: gdpr!.legalBasisChangeDate),
vendorListId: gdpr!.vendorListId,
childPmId: gdpr!.childPmId,
applies: gdpr!.applies,
sampleRate: gdpr!.sampleRate
) : nil,
usnat: usnat != nil ? .init(
vendorListId: usnat!.vendorListId,
additionsChangeDate: SPDate(string: usnat!.additionsChangeDate),
applies: usnat!.applies,
sampleRate: usnat!.sampleRate,
applicableSections: usnat!.applicableSections.map { Int(truncating: $0) }
) : nil
)
}
}

// swiftlint:enable force_unwrapping

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ typealias AddOrDeleteCustomConsentHandler = (Result<AddOrDeleteCustomConsentResp
typealias ConsentStatusHandler = (Result<ConsentStatusResponse, SPError>) -> Void
typealias MessagesHandler = (Result<MessagesResponse, SPError>) -> Void
typealias PvDataHandler = (Result<PvDataResponse, SPError>) -> Void
typealias MetaDataHandler = (Result<MetaDataResponse, SPError>) -> Void
typealias MetaDataHandler = (Result<SPMobileCore.MetaDataResponse, SPError>) -> Void
typealias ChoiceHandler = (Result<ChoiceAllResponse, SPError>) -> Void

protocol SourcePointProtocol {
Expand Down Expand Up @@ -156,7 +156,7 @@ protocol SourcePointProtocol {
func metaData(
accountId: Int,
propertyId: Int,
metadata: MetaDataQueryParam,
campaigns: SPMobileCore.MetaDataRequest.Campaigns,
handler: @escaping MetaDataHandler
)

Expand Down Expand Up @@ -462,55 +462,17 @@ extension SourcePointClient {
}
}

func metaDataURLWithParams(
accountId: Int,
propertyId: Int,
metadata: MetaDataQueryParam
) -> URL? {
let url = Constants.Urls.META_DATA_URL.appendQueryItems([
"accountId": String(accountId),
"propertyId": String(propertyId),
"metadata": metadata.stringified()
])
return url
}

func fallbackMetaData(
accountId: Int,
propertyId: Int,
metadata: MetaDataQueryParam,
handler: @escaping MetaDataHandler
) {
guard let url = metaDataURLWithParams(
accountId: accountId,
propertyId: propertyId,
metadata: metadata
) else {
handler(Result.failure(InvalidMetaDataQueryParamsError()))
return
}

client.get(urlString: url.absoluteString, apiCode: .META_DATA) {
Self.parseResponse($0, InvalidMetaDataResponseError(), handler)
}
}

func metaData(
accountId: Int,
propertyId: Int,
metadata: MetaDataQueryParam,
campaigns: SPMobileCore.MetaDataRequest.Campaigns,
handler: @escaping MetaDataHandler
) {
coreClient.getMetaData(campaigns: metadata.toCore()) { response, error in
coreClient.getMetaData(campaigns: campaigns) { response, error in
if error != nil || response == nil {
self.fallbackMetaData(
accountId: accountId,
propertyId: propertyId,
metadata: metadata,
handler: handler
)
handler(Result.failure(InvalidMetaDataResponseError()))
} else {
handler(Result.success(response!.toNative())) // swiftlint:disable:this force_unwrapping
handler(Result.success(response!)) // swiftlint:disable:this force_unwrapping
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
// swiftlint:disable type_body_length file_length

import Foundation
import SPMobileCore

typealias ErrorHandler = (SPError) -> Void
typealias LoadMessagesReturnType = ([MessageToDisplay], SPUserData)
Expand Down Expand Up @@ -235,21 +236,21 @@ class SourcepointClientCoordinator: SPClientCoordinator {
campaigns.usnat != nil
}

var metaDataParamsFromState: MetaDataQueryParam {
var metaDataParamsFromState: SPMobileCore.MetaDataRequest.Campaigns {
.init(
gdpr: campaigns.gdpr != nil ?
.init(
groupPmId: campaigns.gdpr?.groupPmId
) :
nil,
ccpa: campaigns.ccpa != nil ?
usnat: campaigns.usnat != nil ?
.init(
groupPmId: campaigns.ccpa?.groupPmId
groupPmId: campaigns.usnat?.groupPmId
) :
nil,
usnat: campaigns.usnat != nil ?
ccpa: campaigns.ccpa != nil ?
.init(
groupPmId: campaigns.usnat?.groupPmId
groupPmId: campaigns.ccpa?.groupPmId
) :
nil
)
Expand Down Expand Up @@ -500,14 +501,14 @@ class SourcepointClientCoordinator: SPClientCoordinator {
}
}

func handleMetaDataResponse(_ response: MetaDataResponse) {
func handleMetaDataResponse(_ response: SPMobileCore.MetaDataResponse) {
if let gdprMetaData = response.gdpr {
state.gdpr?.applies = gdprMetaData.applies
state.gdprMetaData?.additionsChangeDate = gdprMetaData.additionsChangeDate
state.gdprMetaData?.legalBasisChangeDate = gdprMetaData.legalBasisChangeDate
state.gdprMetaData?.additionsChangeDate = SPDate(string: gdprMetaData.additionsChangeDate)
state.gdprMetaData?.legalBasisChangeDate = SPDate(string: gdprMetaData.legalBasisChangeDate)
state.gdprMetaData?.updateSampleFields(gdprMetaData.sampleRate)
if campaigns.gdpr?.groupPmId != gdprMetaData.childPmId {
storage.gdprChildPmId = gdprMetaData.childPmId ?? ""
storage.gdprChildPmId = gdprMetaData.childPmId
}
}
if let ccpaMetaData = response.ccpa {
Expand All @@ -518,9 +519,11 @@ class SourcepointClientCoordinator: SPClientCoordinator {
let previousApplicableSections = state.usNatMetaData?.applicableSections ?? []
state.usnat?.applies = usnatMetaData.applies
state.usNatMetaData?.vendorListId = usnatMetaData.vendorListId
state.usNatMetaData?.additionsChangeDate = usnatMetaData.additionsChangeDate
state.usNatMetaData?.additionsChangeDate = SPDate(string: usnatMetaData.additionsChangeDate)
state.usNatMetaData?.updateSampleFields(usnatMetaData.sampleRate)
state.usNatMetaData?.applicableSections = usnatMetaData.applicableSections
state.usNatMetaData?.applicableSections = usnatMetaData.applicableSections.map {
Int(truncating: $0)
}
if previousApplicableSections.isNotEmpty() && previousApplicableSections != state.usNatMetaData?.applicableSections {
needsNewUSNatData = true
}
Expand All @@ -532,7 +535,7 @@ class SourcepointClientCoordinator: SPClientCoordinator {
spClient.metaData(
accountId: accountId,
propertyId: propertyId,
metadata: metaDataParamsFromState
campaigns: metaDataParamsFromState
) { result in
switch result {
case .success(let response):
Expand Down
Original file line number Diff line number Diff line change
Expand Up