Skip to content
Snippets Groups Projects
Commit 7aeba636 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Update BackupReport model

parent c9c4efcd
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
...@@ -2,14 +2,14 @@ import Foundation ...@@ -2,14 +2,14 @@ import Foundation
public struct BackupReport: Equatable { public struct BackupReport: Equatable {
public init( public init(
ids: Data, ids: [Data],
params: Data params: Data
) { ) {
self.ids = ids self.ids = ids
self.params = params self.params = params
} }
public var ids: Data public var ids: [Data]
public var params: Data public var params: Data
} }
...@@ -26,4 +26,18 @@ extension BackupReport: Codable { ...@@ -26,4 +26,18 @@ extension BackupReport: Codable {
public func encode() throws -> Data { public func encode() throws -> Data {
try JSONEncoder().encode(self) try JSONEncoder().encode(self)
} }
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
let idsData = try container.decode(Data.self, forKey: .ids)
ids = try JSONDecoder().decode([Data].self, from: idsData)
params = try container.decode(Data.self, forKey: .params)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
let idsData = try JSONEncoder().encode(ids)
try container.encode(idsData, forKey: .ids)
try container.encode(params, forKey: .params)
}
} }
...@@ -4,7 +4,12 @@ import XCTest ...@@ -4,7 +4,12 @@ import XCTest
final class BackupReportTests: XCTestCase { final class BackupReportTests: XCTestCase {
func testCoding() throws { func testCoding() throws {
let idsB64 = "WyJPRHRRTTA4ZERpV3lXaE0wWUhjanRHWnZQcHRSa1JOZ1pHR2FkTG10dE9BRCJd" let ids: [Data] = [
"id1".data(using: .utf8)!,
"id2".data(using: .utf8)!,
"id3".data(using: .utf8)!,
]
let idsB64 = try JSONEncoder().encode(ids).base64EncodedString()
let paramsB64 = "cGFyYW1z" let paramsB64 = "cGFyYW1z"
let jsonString = """ let jsonString = """
{ {
...@@ -16,7 +21,7 @@ final class BackupReportTests: XCTestCase { ...@@ -16,7 +21,7 @@ final class BackupReportTests: XCTestCase {
let model = try BackupReport.decode(jsonData) let model = try BackupReport.decode(jsonData)
XCTAssertNoDifference(model, BackupReport( XCTAssertNoDifference(model, BackupReport(
ids: Data(base64Encoded: idsB64)!, ids: ids,
params: Data(base64Encoded: paramsB64)! params: Data(base64Encoded: paramsB64)!
)) ))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment