Mercurial > public > simoleon
view Simoleon/Jobs/CurrenciesController.swift @ 154:8afba86ab8dd
Refactor code
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Wed, 25 Aug 2021 10:43:12 +0100 |
parents | |
children |
line wrap: on
line source
// // GetCompatibleCurrencies.swift // Simoleon // // Created by Dennis Concepción Martín on 24/8/21. // import Foundation class CurrenciesController { let fileController = FileController() func get(currenciesCompatibleWith currencySymbol: String?, currencies: Bool?) -> [String] { // If currencies not false -> return all currencies guard currencies == false else { return allCurrencies() } // This block won't be executed if the previous check fails return compatibleCurrencies(with: currencySymbol!) } /* * Input all currencies supported by vendor * Return individual currency symbols without duplicates */ private func allCurrencies() -> [String] { let currencyPairsSupported: [String] = try! fileController.read(json: "CurrencyPairsSupported.json") var currencies = Set<String>() for currencyPairSupported in currencyPairsSupported { let currency = currencyPairSupported.components(separatedBy: "/")[0] currencies.insert(currency) } return Array(currencies) } /* * Given the first symbol of the currency pair * Return all compatible symbols */ private func compatibleCurrencies(with currencySymbol: String) -> [String] { let currencyPairsSupported: [String] = try! fileController.read(json: "CurrencyPairsSupported.json") var currencies = [String]() for currencyPairSupported in currencyPairsSupported { if currencyPairSupported.hasPrefix(currencySymbol) { let compatibleCurrency = currencyPairSupported.components(separatedBy: "/")[1] currencies.append(compatibleCurrency) } } return currencies } }