From c786bcc7409be222ebf3390d01c16d3c02a1ab55 Mon Sep 17 00:00:00 2001 From: Ali Fakih Date: Sun, 19 Apr 2020 01:58:09 +0300 Subject: [PATCH] fixing bugs --- Sources/AFNetworks/Infrastucture/Network/Endpoint.swift | 8 ++++++-- .../Infrastructure/Network/NetworkServiceTests.swift | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Sources/AFNetworks/Infrastucture/Network/Endpoint.swift b/Sources/AFNetworks/Infrastucture/Network/Endpoint.swift index cc8dcff..811f737 100644 --- a/Sources/AFNetworks/Infrastucture/Network/Endpoint.swift +++ b/Sources/AFNetworks/Infrastucture/Network/Endpoint.swift @@ -38,6 +38,7 @@ public class Endpoint: ResponseRequestable { public var queryParameters: [String : Any] public var bodyEncoding: BodyEncoding public var responseDecoder: ResponseDecoder + public var bodyJsonSerializationOption: JSONSerialization.WritingOptions? public init(path: String, isFullPath: Bool = false, @@ -46,7 +47,8 @@ public class Endpoint: ResponseRequestable { bodyParameters: [String: Any] = [:], queryParameters: [String: Any] = [:], bodyEncoding: BodyEncoding = .jsonSerializationData, - responseDecoder: ResponseDecoder = JSONResponseDecoder()) { + responseDecoder: ResponseDecoder = JSONResponseDecoder(), + bodyJsonSerializationOption: JSONSerialization.WritingOptions? = nil) { self.path = path self.isFullPath = isFullPath self.method = method @@ -55,6 +57,7 @@ public class Endpoint: ResponseRequestable { self.queryParameters = queryParameters self.bodyEncoding = bodyEncoding self.responseDecoder = responseDecoder + self.bodyJsonSerializationOption = bodyJsonSerializationOption } } @@ -68,6 +71,7 @@ public protocol Requestable { var bodyParameter: [String: Any] { get } var queryParameters: [String: Any] { get } var bodyEncoding: BodyEncoding { get } + var bodyJsonSerializationOption: JSONSerialization.WritingOptions? { get } func urlRequest(with networkConfig: NetworkConfigurable) throws -> URLRequest } @@ -104,7 +108,7 @@ extension Requestable { headerParameter.forEach { allHeaders.updateValue($0.key, forKey: $0.value) } if !bodyParameter.isEmpty { - urlRequest.httpBody = encodeBody(bodyParameters: bodyParameter, bodyEncoding: bodyEncoding) + urlRequest.httpBody = encodeBody(bodyParameters: bodyParameter, bodyEncoding: bodyEncoding, with: bodyJsonSerializationOption) } urlRequest.httpMethod = method.rawValue urlRequest.allHTTPHeaderFields = allHeaders diff --git a/Tests/AFNetworksTests/Infrastructure/Network/NetworkServiceTests.swift b/Tests/AFNetworksTests/Infrastructure/Network/NetworkServiceTests.swift index 7dc6a4e..2c17ffa 100644 --- a/Tests/AFNetworksTests/Infrastructure/Network/NetworkServiceTests.swift +++ b/Tests/AFNetworksTests/Infrastructure/Network/NetworkServiceTests.swift @@ -20,6 +20,7 @@ class NetworkServiceTests: XCTestCase { var bodyParameter: [String : Any] = [:] var queryParameters: [String : Any] = [:] var bodyEncoding: BodyEncoding = .stringEncodingAscii + var bodyJsonSerializationOption: JSONSerialization.WritingOptions? init(path: String, method: HTTPMethod) { self.path = path