/
ReadingListServerMetadata.swift
40 lines (34 loc) · 1.33 KB
/
ReadingListServerMetadata.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import Foundation
public struct ReadingListServerMetadata: Equatable {
public var guid: String
public var lastModified: ReadingListTimestamp
init(guid: String, lastModified: ReadingListTimestamp) {
self.guid = guid
self.lastModified = lastModified
}
/// Initialize from server record.
init?(json: AnyObject) {
let guid = json.valueForKeyPath("id") as? String
let lastModified = json.valueForKeyPath("last_modified") as? NSNumber
if guid == nil || lastModified == nil {
return nil
}
self.guid = guid!
self.lastModified = lastModified!.longLongValue
}
init?(row: AnyObject) {
let guid = row.valueForKeyPath("id") as? String
let lastModified = row.valueForKeyPath("last_modified") as? NSNumber
if guid == nil || lastModified == nil {
return nil
}
self.guid = guid!
self.lastModified = lastModified!.longLongValue
}
}
public func ==(lhs: ReadingListServerMetadata, rhs: ReadingListServerMetadata) -> Bool {
return lhs.guid == rhs.guid && lhs.lastModified == rhs.lastModified
}