NetNewsWire/Frameworks/Database/Extensions/ArticleStatus+Database.swift

53 lines
1.4 KiB
Swift
Raw Normal View History

2017-07-04 00:04:31 +02:00
//
// ArticleStatus+Database.swift
// Database
//
// Created by Brent Simmons on 7/3/17.
// Copyright © 2017 Ranchero Software. All rights reserved.
//
import Foundation
import RSDatabase
import Data
extension ArticleStatus {
convenience init?(row: FMResultSet) {
let articleID = row.string(forColumn: DatabaseKey.articleID)
if (articleID == nil) {
return nil
}
let read = row.bool(forColumn: DatabaseKey.read)
let starred = row.bool(forColumn: DatabaseKey.starred)
let userDeleted = row.bool(forColumn: DatabaseKey.userDeleted)
var dateArrived = row.date(forColumn: DatabaseKey.dateArrived)
if (dateArrived == nil) {
dateArrived = NSDate.distantPast
}
let accountInfoPlist = PropertyListTransformer.accountInfoWithRow(row)
self.init(articleID: articleID!, read: read, starred: starred, userDeleted: userDeleted, dateArrived: dateArrived!, accountInfo: accountInfoPlist)
}
func databaseDictionary() -> NSDictionary {
let d = NSMutableDictionary()
d[DatabaseKey.articleID] = articleID
d[DatabaseKey.read] = read
d[DatabaseKey.starred] = starred
d[DatabaseKey.userDeleted] = userDeleted
d[DatabaseKey.dateArrived] = dateArrived
if let accountInfo = accountInfo, let data = PropertyListTransformer.data(withPropertyList: accountInfo) {
d[DatabaseKey.accountInfo] = data
}
return d.copy() as! NSDictionary
}
}