Skip to main content

Exchange Service

Exchange Service is responsible with fetching and saving Exchanges on DataSapien Mobile Backend.

Exchanges are created and managed on Orchestrator.

info

Mobile SDK performs background network access to download Exchanges from DataSapien Mobile Backend.

What is Exchange

Exchanges

Exchange Service Functions

To access ExchangeService functions; get its instance from DataSapien object: DataSapien.getExchangeService().

Fetch Exchanges

Fetches and saves Exchange list from the backend.

Exchange Fetch
// Signature
public func fetchExchanges(onSuccess: @escaping ([Exchange]) -> Void, onError: ((Error) -> Void)? = nil)

// Usage
DataSapien.getExchangeService().fetchExchanges { exchanges in

} onError: { error in

}

Get Exchanges

Gets exchanges that already saved in the app

Exchange Get
// Signature
public func getAllExchanges() -> [Exchange]?

// Usage
let exchanges = DataSapien.getExchangeService().getAllExchanges()

Gets exchanges with tag.

Exchange Get by tag
// Signature
public func getExchagesByTag(tag: String) -> [Exchange]?

// Usage
let exchanges = DataSapien.getExchangeService().getExchagesByTag(tag: "test")

Exchange Items

Every exchange has exchange items. 1- QA Based MeData 2- Native MeData 3- Script Based MeData 4- QA Based (Survey) Questions

1- QA Based Medata

Qa Based MeData
// Signature
public func getQaBasedMeDataCollector(exchange: Exchange) -> [Question]?

// Usage
let qaMedataQuestions = DataSapien.getExchangeService().getQaBasedMeDataCollector(exchange:exchange)

2- Native MeData

Native MeData
// Signature
public func getNativeMeDataCollector(exchange: Exchange) -> [any MeDataValueCollector]?

// Usage
let nativeCollectors = DataSapien.getExchangeService().getNativeMeDataCollector(exchange: exchange)
nativeCollectors[0].collectData()

3- Script MeData

4- QA Based NonMeData

QA Based Survey Questions
// Signature
public func getSurveyQuestions(exchange: Exchange) -> [Question]?

// Usage
let questions = DataSapien.getExchangeService().getNativeMeDataCollector(exchange: exchange)
questions[0].text
questions[0].description
questions[0].valueDef.multivalued