Move private helper structs out of WFClient file

This commit is contained in:
Angelo Stavrow 2021-05-04 16:07:50 -04:00
parent f1246c26ef
commit 208786dd3c
No known key found for this signature in database
GPG Key ID: 1A49C7064E060EEE
2 changed files with 36 additions and 35 deletions

View File

@ -0,0 +1,36 @@
import Foundation
struct ServerData<T: Decodable>: Decodable {
enum CodingKeys: String, CodingKey {
case code
case data
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
code = try container.decode(Int.self, forKey: .code)
data = try container.decode(T.self, forKey: .data)
}
let code: Int
let data: T
}
struct NestedPostsJson: Decodable {
enum CodingKeys: String, CodingKey {
case code
case data
enum PostKeys: String, CodingKey {
case posts
}
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
let postsContainer = try container.nestedContainer(keyedBy: CodingKeys.PostKeys.self, forKey: .data)
data = try postsContainer.decode([WFPost].self, forKey: .posts)
}
let data: [WFPost]
}

View File

@ -1,40 +1,5 @@
import Foundation import Foundation
struct ServerData<T: Decodable>: Decodable {
enum CodingKeys: String, CodingKey {
case code
case data
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
code = try container.decode(Int.self, forKey: .code)
data = try container.decode(T.self, forKey: .data)
}
let code: Int
let data: T
}
struct NestedPostsJson: Decodable {
enum CodingKeys: String, CodingKey {
case code
case data
enum PostKeys: String, CodingKey {
case posts
}
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
let postsContainer = try container.nestedContainer(keyedBy: CodingKeys.PostKeys.self, forKey: .data)
data = try postsContainer.decode([WFPost].self, forKey: .posts)
}
let data: [WFPost]
}
public class WFClient { public class WFClient {
let decoder = JSONDecoder() let decoder = JSONDecoder()