Skip to content

Commit

Permalink
remove legacy fallback metadata call
Browse files Browse the repository at this point in the history
  • Loading branch information
andresilveirah committed Sep 11, 2024
1 parent 38fcfaf commit 38f91b9
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 70 deletions.
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 @@ -462,39 +462,6 @@ 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,
Expand All @@ -503,14 +470,9 @@ extension SourcePointClient {
) {
coreClient.getMetaData(campaigns: metadata.toCore()) { 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 @@ -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 Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@

@testable import ConsentViewController
import Foundation
import SPMobileCore

typealias SPCampaignEnv = ConsentViewController.SPCampaignEnv
typealias MessageRequest = ConsentViewController.MessageRequest
typealias MessagesRequest = ConsentViewController.MessagesRequest
typealias IncludeData = ConsentViewController.IncludeData
typealias SPIDFAStatus = ConsentViewController.SPIDFAStatus
typealias SPCampaignType = ConsentViewController.SPCampaignType
typealias SPMessageLanguage = ConsentViewController.SPMessageLanguage

// swiftlint:disable function_parameter_count force_try

Expand All @@ -20,7 +29,7 @@ class SourcePointClientMock: SourcePointProtocol {
var consentStatusCalledWith, customConsentWasCalledWith, errorMetricsCalledWith, postGDPRActionCalledWith, postCCPAActionCalledWith, postUSNatActionCalledWith: [String: Any?]?
var pvDataCalledWith: PvDataRequestBody?

var metadataResponse = MetaDataResponse(ccpa: nil, gdpr: nil, usnat: nil)
var metadataResponse = SPMobileCore.MetaDataResponse(gdpr: nil, usnat: nil, ccpa: nil)
var messagesResponse = MessagesResponse(
propertyId: 0,
localState: SPJson(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import Foundation
import Nimble
import Quick
import SPMobileCore

// swiftlint:disable force_unwrapping force_try function_body_length file_length type_body_length cyclomatic_complexity

Expand Down Expand Up @@ -140,17 +141,17 @@ class SPClientCoordinatorSpec: QuickSpec {
],
nonKeyedLocalState: SPJson()
)
spClientMock.metadataResponse = MetaDataResponse(
ccpa: nil,
gdpr: MetaDataResponse.GDPR(
additionsChangeDate: .distantFuture(),
legalBasisChangeDate: nil,
vendorListId: "",
childPmId: nil,
spClientMock.metadataResponse = SPMobileCore.MetaDataResponse(
gdpr: SPMobileCore.MetaDataResponse.MetaDataResponseGDPR(
applies: true,
sampleRate: 1.0
sampleRate: 1.0,
additionsChangeDate: SPDate.distantFuture().originalDateString,
legalBasisChangeDate: "",
childPmId: nil,
vendorListId: ""
),
usnat: nil
usnat: nil,
ccpa: nil
)
coordinator = coordinatorFor(
campaigns: SPCampaigns(gdpr: SPCampaign()),
Expand Down Expand Up @@ -857,32 +858,32 @@ class SPClientCoordinatorSpec: QuickSpec {
let clientMock = SourcePointClientMock()
let firstApplicableSection = 1
let differentApplicableSection = 2
clientMock.metadataResponse = MetaDataResponse(
ccpa: nil,
clientMock.metadataResponse = SPMobileCore.MetaDataResponse(
gdpr: nil,
usnat: .init(
vendorListId: "",
additionsChangeDate: .now(),
applies: true,
sampleRate: 1.0,
applicableSections: [firstApplicableSection]
)
additionsChangeDate: SPDate.now().originalDateString,
applicableSections: [KotlinInt(int: Int32(firstApplicableSection))],
vendorListId: ""
),
ccpa: nil
)
coordinator = coordinatorFor(campaigns: SPCampaigns(usnat: SPCampaign()), spClient: clientMock)
waitUntil { done in
coordinator.loadMessages(forAuthId: nil, pubData: nil) { _ in
expect(clientMock.consentStatusCalled).to(beFalse())

clientMock.metadataResponse = MetaDataResponse(
ccpa: nil,
clientMock.metadataResponse = SPMobileCore.MetaDataResponse(
gdpr: nil,
usnat: .init(
vendorListId: "",
additionsChangeDate: .now(),
applies: true,
sampleRate: 1.0,
applicableSections: [differentApplicableSection]
)
additionsChangeDate: SPDate.now().originalDateString,
applicableSections: [KotlinInt(int: Int32(differentApplicableSection))],
vendorListId: ""
),
ccpa: nil
)
coordinator.loadMessages(forAuthId: nil, pubData: nil) { _ in
expect(clientMock.consentStatusCalled).to(beTrue())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import Foundation
import Nimble
import Quick
import SPMobileCore

// swiftlint:disable force_try line_length function_body_length cyclomatic_complexity type_body_length

Expand Down Expand Up @@ -221,7 +222,7 @@ class UnmockedSourcepointClientSpec: QuickSpec {
case .success(let response):
let GDPR = response.gdpr
let CCPA = response.ccpa
expect(response).to(beAnInstanceOf(MetaDataResponse.self))
expect(response).to(beAnInstanceOf(SPMobileCore.MetaDataResponse.self))
expect(GDPR).notTo(beNil())
expect(CCPA).notTo(beNil())

Expand Down

0 comments on commit 38f91b9

Please sign in to comment.