Skip to content

Commit 0106e75

Browse files
committed
Merge branch release/0.8.3
2 parents 92b2802 + c7b0496 commit 0106e75

3 files changed

Lines changed: 31 additions & 3 deletions

File tree

RaAPIWrapper.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Pod::Spec.new do |s|
55

66
s.name = 'RaAPIWrapper'
77

8-
s.version = '0.8.2'
8+
s.version = '0.8.3'
99

1010
s.summary = 'Wrappers for requesting api.'
1111

Sources/RequestInfo/APIParameter.swift

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ extension Array: APIParameter {
2626
(self as [Any?])
2727
.lazy
2828
.compactMap {
29+
if let value = $0 as? Encodable { return value }
2930
if let value = $0 as? APIParameter { return value.toParameters }
30-
return $0 as? Encodable
31+
return mapAnyObjectToEncodable($0 as? AnyObject)
3132
}
3233
.map { AnyEncodable($0) }
3334
}
@@ -39,9 +40,28 @@ extension Dictionary: APIParameter where Key == String {
3940
public var toParameters: Encodable {
4041
(self as [String: Any?])
4142
.compactMapValues {
43+
if let value = $0 as? Encodable { return value }
4244
if let value = $0 as? APIParameter { return value.toParameters }
43-
return $0 as? Encodable
45+
return mapAnyObjectToEncodable($0 as? AnyObject)
4446
}
4547
.mapValues { AnyEncodable($0) }
4648
}
4749
}
50+
51+
// MARK: - Tools
52+
53+
fileprivate extension APIParameter {
54+
func mapAnyObjectToEncodable(_ value: AnyObject?) -> Encodable? {
55+
guard let _value = value else { return nil }
56+
57+
if let result = _value as? String { return result }
58+
if let result = _value as? Int { return result }
59+
if let result = _value as? Double { return result }
60+
if let result = _value as? Bool { return result }
61+
if let result = _value as? Data { return result }
62+
if let result = _value as? [String: Any] { return result.toParameters }
63+
if let result = _value as? [Any] { return result.toParameters }
64+
65+
return nil
66+
}
67+
}

Sources/RequestInfo/APIRequestInfo.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,11 @@ extension APIRequestInfo: Hashable {
5858
hasher.combine(ObjectIdentifier(self))
5959
}
6060
}
61+
62+
// MARK: - CustomStringConvertible
63+
64+
extension APIRequestInfo: CustomStringConvertible {
65+
public var description: String {
66+
"specialBaseURL: \(specialBaseURL?.absoluteString ?? "nil"); path: \(path); method: \(method.rawValue); header: \(header?.description ?? "nil"); parameters: \(String(describing: parameters)); parameterEncoding: \(String(describing: parameterEncoding))"
67+
}
68+
}

0 commit comments

Comments
 (0)