Как я могу сохранить orderId и получить с диска и отправить второй запрос
ответ из базы:
{"orderId" : 241,"fullName" : "Поесть"}
SearchResponse.swift
struct SearchResponse: Codable {
var orderId: Int
var fullName: String
var retailId: Int
private enum CodingKeys: String, CodingKey {
case orderId
case fullName
case retailId
}
}
после поискового запроса я пытаюсь сохранить orderId на диске, как это в статусе == 200 (service.swift):
if let value = result.value {
var code = 0;
do {
if let responseDictionary = try JSONSerialization.jsonObject(with: value.data, options: .allowFragments) as? [String:Any] {
code = responseDictionary["status"] as? Int ?? 0;
}
} catch {
if let e = try? JSONDecoder().decode(ErrorResponse.self, from: value.data) {
observer.onError(e);
}
}
if (value.response?.statusCode == 200) {
do{
let response = try JSONDecoder().decode(SearchResponse.self, from: value.data);
try Disk.save(response.retailId, to: .caches, as: FileName.retailName);
try Disk.save(response.orderId, to: .caches, as: FileName.orderId);
} catch {
if let e = try? JSONDecoder().decode(ErrorResponse.self, from: value.data) {
observer.onError(e);
}
}
observer.onNext(true)
} else {
if let e = try? JSONDecoder().decode(ErrorResponse.self, from: value.data) {
observer.onError(e);
}
}
}
viewmodel.swift
private var orderId: String {
let orderId = try? Disk.retrieve(FileName.orderId, from: .caches, as: SearchResponse.self).orderId
return String(orderId!) <-- there error "Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value"
}