From 52c2a1732c4f9d2b646d723a523efe98886c26b4 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Tue, 30 Aug 2022 20:22:29 +0100 Subject: [PATCH] Remove JSONHelpers --- Sources/XXClient/Helpers/JSONHelpers.swift | 85 --------- Sources/XXClient/Models/DHKey.swift | 6 +- Sources/XXClient/Models/GroupMember.swift | 12 +- .../Helpers/JSONHelpersTests.swift | 163 ------------------ 4 files changed, 6 insertions(+), 260 deletions(-) delete mode 100644 Sources/XXClient/Helpers/JSONHelpers.swift delete mode 100644 Tests/XXClientTests/Helpers/JSONHelpersTests.swift diff --git a/Sources/XXClient/Helpers/JSONHelpers.swift b/Sources/XXClient/Helpers/JSONHelpers.swift deleted file mode 100644 index 7527ac9a..00000000 --- a/Sources/XXClient/Helpers/JSONHelpers.swift +++ /dev/null @@ -1,85 +0,0 @@ -import Foundation - -/// Replaces all numbers at provided key with string equivalents -/// -/// Example input: -/// { -/// "key": 123, -/// "object": { -/// "hello": "world", -/// "key": 321 -/// } -/// } -/// -/// Example output: -/// { -/// "key": "123", -/// "object": { -/// "hello": "world", -/// "key": "321" -/// } -/// } -/// -/// - Parameters: -/// - input: JSON data -/// - key: the key which values should be converted -/// - Returns: JSON data -func convertJsonNumberToString( - in input: Data, - at key: String -) -> Data { - guard var string = String(data: input, encoding: .utf8) else { - return input - } - string = string.replacingOccurrences( - of: #""\#(key)"( *):( *)([0-9]+)( *)(,*)"#, - with: #""\#(key)"$1:$2"$3"$4$5"#, - options: [.regularExpression] - ) - guard let output = string.data(using: .utf8) else { - return input - } - return output -} - -/// Replaces all strings at provided key with number equivalents -/// -/// Example input: -/// { -/// "key": "123", -/// "object": { -/// "hello": "world", -/// "key": "321" -/// } -/// } -/// -/// Example output: -/// { -/// "key": 123, -/// "object": { -/// "hello": "world", -/// "key": 321 -/// } -/// } -/// -/// - Parameters: -/// - input: JSON data -/// - key: the key which values should be converted -/// - Returns: JSON data -func convertJsonStringToNumber( - in input: Data, - at key: String -) -> Data { - guard var string = String(data: input, encoding: .utf8) else { - return input - } - string = string.replacingOccurrences( - of: #""\#(key)"( *):( *)"([0-9]+)"( *)(,*)"#, - with: #""\#(key)"$1:$2$3$4$5"#, - options: [.regularExpression] - ) - guard let output = string.data(using: .utf8) else { - return input - } - return output -} diff --git a/Sources/XXClient/Models/DHKey.swift b/Sources/XXClient/Models/DHKey.swift index 5dc94983..9ca08dfc 100644 --- a/Sources/XXClient/Models/DHKey.swift +++ b/Sources/XXClient/Models/DHKey.swift @@ -17,12 +17,10 @@ extension DHKey: Codable { } public static func decode(_ data: Data) throws -> Self { - let data = convertJsonNumberToString(in: data, at: "Value") - return try JSONDecoder().decode(Self.self, from: data) + try JSONDecoder().decode(Self.self, from: data) } public func encode() throws -> Data { - let data = try JSONEncoder().encode(self) - return convertJsonStringToNumber(in: data, at: "Value") + try JSONEncoder().encode(self) } } diff --git a/Sources/XXClient/Models/GroupMember.swift b/Sources/XXClient/Models/GroupMember.swift index cb5d9843..8b8c2b75 100644 --- a/Sources/XXClient/Models/GroupMember.swift +++ b/Sources/XXClient/Models/GroupMember.swift @@ -17,24 +17,20 @@ extension GroupMember: Codable { } public static func decode(_ data: Data) throws -> Self { - let data = convertJsonNumberToString(in: data, at: "Value") - return try JSONDecoder().decode(Self.self, from: data) + try JSONDecoder().decode(Self.self, from: data) } public func encode() throws -> Data { - let data = try JSONEncoder().encode(self) - return convertJsonStringToNumber(in: data, at: "Value") + try JSONEncoder().encode(self) } } extension Array where Element == GroupMember { public static func decode(_ data: Data) throws -> Self { - let data = convertJsonNumberToString(in: data, at: "Value") - return try JSONDecoder().decode(Self.self, from: data) + try JSONDecoder().decode(Self.self, from: data) } public func encode() throws -> Data { - let data = try JSONEncoder().encode(self) - return convertJsonStringToNumber(in: data, at: "Value") + try JSONEncoder().encode(self) } } diff --git a/Tests/XXClientTests/Helpers/JSONHelpersTests.swift b/Tests/XXClientTests/Helpers/JSONHelpersTests.swift deleted file mode 100644 index 2ebe8530..00000000 --- a/Tests/XXClientTests/Helpers/JSONHelpersTests.swift +++ /dev/null @@ -1,163 +0,0 @@ -import CustomDump -import XCTest -@testable import XXClient - -final class JSONHelpersTests: XCTestCase { - func testConvertingNumberToStringByKey() { - assertConvertingJsonNumberToString( - input: #"{"number":1234567890,"text":"hello"}"#, - key: "number", - expected: #"{"number":"1234567890","text":"hello"}"# - ) - - assertConvertingJsonNumberToString( - input: #"{"text":"hello","number":1234567890}"#, - key: "number", - expected: #"{"text":"hello","number":"1234567890"}"# - ) - - assertConvertingJsonNumberToString( - input: #"{ "number" : 1234567890 , "text" : "hello" }"#, - key: "number", - expected: #"{ "number" : "1234567890" , "text" : "hello" }"# - ) - - assertConvertingJsonNumberToString( - input: #"{ "text" : "hello" , "number" : 1234567890 }"#, - key: "number", - expected: #"{ "text" : "hello" , "number" : "1234567890" }"# - ) - - assertConvertingJsonNumberToString( - input: """ - { - "number": 1234567890, - "text": "hello" - } - """, - key: "number", - expected: """ - { - "number": "1234567890", - "text": "hello" - } - """ - ) - - assertConvertingJsonNumberToString( - input: """ - { - "text": "hello", - "number": 1234567890 - } - """, - key: "number", - expected: """ - { - "text": "hello", - "number": "1234567890" - } - """ - ) - } - - func testConvertingStringToNumber() { - assertConvertingJsonStringToNumber( - input: #"{"number":"1234567890","text":"hello"}"#, - key: "number", - expected: #"{"number":1234567890,"text":"hello"}"# - ) - - assertConvertingJsonStringToNumber( - input: #"{"text":"hello","number":"1234567890"}"#, - key: "number", - expected: #"{"text":"hello","number":1234567890}"# - ) - - assertConvertingJsonStringToNumber( - input: #"{ "number" : "1234567890" , "text" : "hello" }"#, - key: "number", - expected: #"{ "number" : 1234567890 , "text" : "hello" }"# - ) - - assertConvertingJsonStringToNumber( - input: #"{ "text" : "hello" , "number" : "1234567890" }"#, - key: "number", - expected: #"{ "text" : "hello" , "number" : 1234567890 }"# - ) - - assertConvertingJsonStringToNumber( - input: """ - { - "number": "1234567890", - "text": "hello" - } - """, - key: "number", - expected: """ - { - "number": 1234567890, - "text": "hello" - } - """ - ) - - assertConvertingJsonStringToNumber( - input: """ - { - "text": "hello", - "number": "1234567890" - } - """, - key: "number", - expected: """ - { - "text": "hello", - "number": 1234567890 - } - """ - ) - } -} - -private func assertConvertingJsonNumberToString( - input: String, - key: String, - expected: String, - file: StaticString = #file, - line: UInt = #line -) { - XCTAssertNoDifference( - String( - data: convertJsonNumberToString( - in: input.data(using: .utf8)!, - at: key - ), - encoding: .utf8 - )!, - expected, - file: file, - line: line - ) -} - -private func assertConvertingJsonStringToNumber( - input: String, - key: String, - expected: String, - file: StaticString = #file, - line: UInt = #line -) { - XCTAssertNoDifference( - String( - data: convertJsonStringToNumber( - in: input.data(using: .utf8)!, - at: key - ), - encoding: .utf8 - )!, - expected, - file: file, - line: line - ) -} -- GitLab