From 306e66a3b2c53b96cce1308337b90829faf73826 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Mon, 24 Jan 2022 18:14:37 -0500 Subject: [PATCH] review changes --- MVMCore/MVMCore/Models/JSON/JSONHelper.swift | 28 ++++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/MVMCore/MVMCore/Models/JSON/JSONHelper.swift b/MVMCore/MVMCore/Models/JSON/JSONHelper.swift index 5f4494f..71dc813 100644 --- a/MVMCore/MVMCore/Models/JSON/JSONHelper.swift +++ b/MVMCore/MVMCore/Models/JSON/JSONHelper.swift @@ -20,11 +20,11 @@ public enum JSONError: Error { extension JSONDictionary { - public func toJSONString(options: JSONSerialization.WritingOptions = []) -> String? { - guard let data = try? JSONSerialization.data(withJSONObject: self, options: options), - let string = String(data: data, encoding: .utf8) else { - return nil - } + public func toJSONString(options: JSONSerialization.WritingOptions = []) throws -> String { + let data = try JSONSerialization.data(withJSONObject: self, options: options) + guard let string = String(data: data, encoding: .utf8) else { + throw JSONError.error(message: "Failed to convert data to string") + } return string } @@ -32,10 +32,10 @@ extension JSONDictionary { var queryItems: [URLQueryItem] = [] for (key, value) in self { var valueString: String - if let value = value as? JSONDictionary, let jsonString = value.toJSONString() { - valueString = jsonString - } else if let value = value as? [AnyHashable], let jsonString = value.toJSONString() { - valueString = jsonString + if let value = value as? JSONDictionary { + valueString = try value.toJSONString() + } else if let value = value as? [AnyHashable] { + valueString = try value.toJSONString() } else { guard let baseValueString = String(describing: value.base).removingPercentEncoding else { throw JSONError.error(message: "query item failed: \(key) value \(value.base)") @@ -51,11 +51,11 @@ extension JSONDictionary { extension Array where Element == AnyHashable { - public func toJSONString(options: JSONSerialization.WritingOptions = []) -> String? { - guard let data = try? JSONSerialization.data(withJSONObject: self, options: options), - let string = String(data: data, encoding: .utf8) else { - return nil - } + public func toJSONString(options: JSONSerialization.WritingOptions = []) throws -> String { + let data = try JSONSerialization.data(withJSONObject: self, options: options) + guard let string = String(data: data, encoding: .utf8) else { + throw JSONError.error(message: "Failed to convert data to string") + } return string } }