// // ServerDatabase.swift // CapCollector // // Created by Christoph on 27.04.20. // Copyright © 2020 CH. All rights reserved. // import Foundation import SQLite final class ServerDatabase { let db: Connection var table: Table { Table("caps") } let rowId = Expression("id") let rowName = Expression("name") let rowCount = Expression("count") init?(downloadedTo url: URL) { guard let db = try? Connection(url.path) else { return nil } self.db = db log("Server database loaded with \(capCount) caps") } /// The number of caps currently in the database var capCount: Int { (try? db.scalar(table.count)) ?? 0 } var caps: [(id: Int, count: Int, name: String)] { guard let rows = try? db.prepare(table) else { return [] } return rows.map { ($0[rowId], $0[rowCount], $0[rowName]) } } } extension ServerDatabase: Logger { }