Я пытаюсь создать функцию в Swift, которая принимает целое число в качестве параметра и возвращает двойное число в валюте региона, например:
ввод: 1250
вывод: £ 12.50
ввод: 12500
вывод: £ 125,00
Я заметил, что есть сторонняя библиотека, которая поддерживает это, но, к сожалению, репозиторий заархивирован. Тип используемых единиц - это наименьший тип валюты, который является minorUnits.
Сетевой вызов
/// GET - Retrive a feed of transactions during a certain period
static func get(accountUID: String, categoryUID: String, queryStartDate: String, queryEndDate: String , completionHandler: @escaping ([FeedItem], Error?) -> Void) {
let sessionObject : URLSession = URLSession.shared
let taskObject = sessionObject.dataTask(with: URLS().feedURLObject(accountUID,categoryUID,queryStartDate,queryEndDate)) { (Data, Response, Error) in
guard Error == nil else {
return
}
guard let Data = Data else {
return
}
do {
let feed = try JSONDecoder().decode(Feed.self, from: Data).feedItems.filter({ (item) -> Bool in
item.direction == Direction.out
})
completionHandler(feed, nil)
} catch let error {
print(error.localizedDescription)
}
}
taskObject.resume()
}
Сумма структуры подачи модели
struct Amount: Codable {
let currency: Currency
let minorUnits: Int}
Отдельный элемент JSON ответ
FeedItem(feedItemUid: "0651afe9-f568-4623-ad26-31974e26015c", categoryUid: "a68f9445-4d59-44e5-9c3f-dce2df0f53d2", amount: Banking_App.Amount(currency: Banking_App.Currency.gbp, minorUnits: 551), sourceAmount: Banking_App.Amount(currency: Banking_App.Currency.gbp, minorUnits: 551), direction: Banking_App.Direction.out, updatedAt: "2020-02-04T14:09:49.072Z", transactionTime: "2020-02-04T14:09:48.743Z", settlementTime: "2020-02-04T14:09:48.992Z", source: Banking_App.Source.fasterPaymentsOut, status: Banking_App.Status.settled, counterPartyType: Banking_App.CounterPartyType.payee, counterPartyUid: Optional("fed4d40b-9ccc-411d-81c7-870164876d04"), counterPartyName: Banking_App.CounterPartyName.mickeyMouse, counterPartySubEntityUid: Optional("d6d444c0-942f-4f85-b076-d30c2f745a6f"), counterPartySubEntityName: Banking_App.CounterPartySubEntityName.ukAccount, counterPartySubEntityIdentifier: "204514", counterPartySubEntitySubIdentifier: "00000825", reference: Banking_App.Reference.externalPayment, country: Banking_App.Country.gb, spendingCategory: Banking_App.SpendingCategory.payments)
Спасибо