2017-07-17 04:36:38 +02:00
|
|
|
//
|
2017-07-17 05:51:08 +02:00
|
|
|
// AttachmentsTable.swift
|
2017-07-17 04:36:38 +02:00
|
|
|
// Database
|
|
|
|
//
|
|
|
|
// Created by Brent Simmons on 7/15/17.
|
|
|
|
// Copyright © 2017 Ranchero Software. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
import RSDatabase
|
|
|
|
import Data
|
|
|
|
|
2017-08-21 02:46:15 +02:00
|
|
|
struct AttachmentsTable: DatabaseTable {
|
2017-07-17 04:36:38 +02:00
|
|
|
|
2017-07-29 21:08:10 +02:00
|
|
|
let name: String
|
2017-08-21 02:46:15 +02:00
|
|
|
let databaseIDKey = DatabaseKey.attachmentID
|
|
|
|
private let cache = DatabaseObjectCache()
|
2017-07-29 21:13:38 +02:00
|
|
|
|
2017-08-21 00:56:58 +02:00
|
|
|
init(name: String) {
|
2017-07-29 21:08:10 +02:00
|
|
|
|
|
|
|
self.name = name
|
|
|
|
}
|
2017-07-17 05:51:08 +02:00
|
|
|
|
2017-08-21 02:46:15 +02:00
|
|
|
// MARK: DatabaseTable Methods
|
2017-07-17 05:51:08 +02:00
|
|
|
|
2017-08-21 02:46:15 +02:00
|
|
|
func objectWithRow(_ row: FMResultSet) -> DatabaseObject? {
|
2017-07-29 20:26:19 +02:00
|
|
|
|
2017-08-21 02:46:15 +02:00
|
|
|
return attachmentWithRow(row) as DatabaseObject
|
2017-07-17 04:36:38 +02:00
|
|
|
}
|
2017-08-21 02:46:15 +02:00
|
|
|
}
|
2017-07-17 04:36:38 +02:00
|
|
|
|
2017-08-21 02:46:15 +02:00
|
|
|
private extension AttachmentsTable {
|
2017-07-17 04:36:38 +02:00
|
|
|
|
|
|
|
func attachmentWithRow(_ row: FMResultSet) -> Attachment? {
|
|
|
|
|
2017-08-21 02:46:15 +02:00
|
|
|
let attachmentID = row.string(forColumn: DatabaseKey.attachmentID)
|
|
|
|
if let cachedAttachment = cache(attachmentID) {
|
2017-07-17 04:36:38 +02:00
|
|
|
return cachedAttachment
|
|
|
|
}
|
|
|
|
|
2017-08-21 02:46:15 +02:00
|
|
|
return Attachment(attachmentID: attachmentID, row: row)
|
2017-07-17 04:36:38 +02:00
|
|
|
}
|
|
|
|
}
|