Update to the latest RSCore
This commit is contained in:
parent
cf73fb5bd3
commit
91ce7ff189
@ -11,7 +11,7 @@ let package = Package(
|
|||||||
targets: ["Account"]),
|
targets: ["Account"]),
|
||||||
],
|
],
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSCore.git", .upToNextMajor(from: "1.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSCore.git", .upToNextMajor(from: "1.0.0")),
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSDatabase.git", .upToNextMajor(from: "1.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSDatabase.git", .upToNextMajor(from: "1.0.0-beta1")),
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSParser.git", .upToNextMajor(from: "2.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSParser.git", .upToNextMajor(from: "2.0.0-beta1")),
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSWeb.git", .upToNextMajor(from: "1.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSWeb.git", .upToNextMajor(from: "1.0.0-beta1")),
|
||||||
|
@ -21,9 +21,7 @@ enum CloudKitAccountZoneError: LocalizedError {
|
|||||||
}
|
}
|
||||||
final class CloudKitAccountZone: CloudKitZone {
|
final class CloudKitAccountZone: CloudKitZone {
|
||||||
|
|
||||||
static var zoneID: CKRecordZone.ID {
|
var zoneID: CKRecordZone.ID
|
||||||
return CKRecordZone.ID(zoneName: "Account", ownerName: CKCurrentUserDefaultName)
|
|
||||||
}
|
|
||||||
|
|
||||||
var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "CloudKit")
|
var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "CloudKit")
|
||||||
|
|
||||||
@ -53,6 +51,7 @@ final class CloudKitAccountZone: CloudKitZone {
|
|||||||
init(container: CKContainer) {
|
init(container: CKContainer) {
|
||||||
self.container = container
|
self.container = container
|
||||||
self.database = container.privateCloudDatabase
|
self.database = container.privateCloudDatabase
|
||||||
|
self.zoneID = CKRecordZone.ID(zoneName: "Account", ownerName: CKCurrentUserDefaultName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func importOPML(rootExternalID: String, items: [RSOPMLItem], completion: @escaping (Result<Void, Error>) -> Void) {
|
func importOPML(rootExternalID: String, items: [RSOPMLItem], completion: @escaping (Result<Void, Error>) -> Void) {
|
||||||
@ -91,7 +90,7 @@ final class CloudKitAccountZone: CloudKitZone {
|
|||||||
|
|
||||||
/// Persist a web feed record to iCloud and return the external key
|
/// Persist a web feed record to iCloud and return the external key
|
||||||
func createWebFeed(url: String, name: String?, editedName: String?, homePageURL: String?, container: Container, completion: @escaping (Result<String, Error>) -> Void) {
|
func createWebFeed(url: String, name: String?, editedName: String?, homePageURL: String?, container: Container, completion: @escaping (Result<String, Error>) -> Void) {
|
||||||
let recordID = CKRecord.ID(recordName: url.md5String, zoneID: Self.zoneID)
|
let recordID = CKRecord.ID(recordName: url.md5String, zoneID: zoneID)
|
||||||
let record = CKRecord(recordType: CloudKitWebFeed.recordType, recordID: recordID)
|
let record = CKRecord(recordType: CloudKitWebFeed.recordType, recordID: recordID)
|
||||||
record[CloudKitWebFeed.Fields.url] = url
|
record[CloudKitWebFeed.Fields.url] = url
|
||||||
record[CloudKitWebFeed.Fields.name] = name
|
record[CloudKitWebFeed.Fields.name] = name
|
||||||
@ -125,7 +124,7 @@ final class CloudKitAccountZone: CloudKitZone {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let recordID = CKRecord.ID(recordName: externalID, zoneID: Self.zoneID)
|
let recordID = CKRecord.ID(recordName: externalID, zoneID: zoneID)
|
||||||
let record = CKRecord(recordType: CloudKitWebFeed.recordType, recordID: recordID)
|
let record = CKRecord(recordType: CloudKitWebFeed.recordType, recordID: recordID)
|
||||||
record[CloudKitWebFeed.Fields.editedName] = editedName
|
record[CloudKitWebFeed.Fields.editedName] = editedName
|
||||||
|
|
||||||
@ -252,7 +251,7 @@ final class CloudKitAccountZone: CloudKitZone {
|
|||||||
let predicate = NSPredicate(format: "isAccount = \"1\"")
|
let predicate = NSPredicate(format: "isAccount = \"1\"")
|
||||||
let ckQuery = CKQuery(recordType: CloudKitContainer.recordType, predicate: predicate)
|
let ckQuery = CKQuery(recordType: CloudKitContainer.recordType, predicate: predicate)
|
||||||
|
|
||||||
database?.perform(ckQuery, inZoneWith: Self.zoneID) { [weak self] records, error in
|
database?.perform(ckQuery, inZoneWith: zoneID) { [weak self] records, error in
|
||||||
guard let self = self else { return }
|
guard let self = self else { return }
|
||||||
|
|
||||||
switch CloudKitZoneResult.resolve(error) {
|
switch CloudKitZoneResult.resolve(error) {
|
||||||
@ -296,7 +295,7 @@ final class CloudKitAccountZone: CloudKitZone {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let recordID = CKRecord.ID(recordName: externalID, zoneID: Self.zoneID)
|
let recordID = CKRecord.ID(recordName: externalID, zoneID: zoneID)
|
||||||
let record = CKRecord(recordType: CloudKitContainer.recordType, recordID: recordID)
|
let record = CKRecord(recordType: CloudKitContainer.recordType, recordID: recordID)
|
||||||
record[CloudKitContainer.Fields.name] = name
|
record[CloudKitContainer.Fields.name] = name
|
||||||
|
|
||||||
|
@ -17,9 +17,7 @@ import SyncDatabase
|
|||||||
|
|
||||||
final class CloudKitArticlesZone: CloudKitZone {
|
final class CloudKitArticlesZone: CloudKitZone {
|
||||||
|
|
||||||
static var zoneID: CKRecordZone.ID {
|
var zoneID: CKRecordZone.ID
|
||||||
return CKRecordZone.ID(zoneName: "Articles", ownerName: CKCurrentUserDefaultName)
|
|
||||||
}
|
|
||||||
|
|
||||||
var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "CloudKit")
|
var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "CloudKit")
|
||||||
|
|
||||||
@ -58,6 +56,7 @@ final class CloudKitArticlesZone: CloudKitZone {
|
|||||||
init(container: CKContainer) {
|
init(container: CKContainer) {
|
||||||
self.container = container
|
self.container = container
|
||||||
self.database = container.privateCloudDatabase
|
self.database = container.privateCloudDatabase
|
||||||
|
self.zoneID = CKRecordZone.ID(zoneName: "Articles", ownerName: CKCurrentUserDefaultName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func refreshArticles(completion: @escaping ((Result<Void, Error>) -> Void)) {
|
func refreshArticles(completion: @escaping ((Result<Void, Error>) -> Void)) {
|
||||||
@ -124,10 +123,10 @@ final class CloudKitArticlesZone: CloudKitZone {
|
|||||||
newRecords.append(self.makeStatusRecord(statusUpdate))
|
newRecords.append(self.makeStatusRecord(statusUpdate))
|
||||||
newRecords.append(self.makeArticleRecord(statusUpdate.article!))
|
newRecords.append(self.makeArticleRecord(statusUpdate.article!))
|
||||||
case .delete:
|
case .delete:
|
||||||
deleteRecordIDs.append(CKRecord.ID(recordName: self.statusID(statusUpdate.articleID), zoneID: Self.zoneID))
|
deleteRecordIDs.append(CKRecord.ID(recordName: self.statusID(statusUpdate.articleID), zoneID: zoneID))
|
||||||
case .statusOnly:
|
case .statusOnly:
|
||||||
modifyRecords.append(self.makeStatusRecord(statusUpdate))
|
modifyRecords.append(self.makeStatusRecord(statusUpdate))
|
||||||
deleteRecordIDs.append(CKRecord.ID(recordName: self.articleID(statusUpdate.articleID), zoneID: Self.zoneID))
|
deleteRecordIDs.append(CKRecord.ID(recordName: self.articleID(statusUpdate.articleID), zoneID: zoneID))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +175,7 @@ private extension CloudKitArticlesZone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func makeStatusRecord(_ article: Article) -> CKRecord {
|
func makeStatusRecord(_ article: Article) -> CKRecord {
|
||||||
let recordID = CKRecord.ID(recordName: statusID(article.articleID), zoneID: Self.zoneID)
|
let recordID = CKRecord.ID(recordName: statusID(article.articleID), zoneID: zoneID)
|
||||||
let record = CKRecord(recordType: CloudKitArticleStatus.recordType, recordID: recordID)
|
let record = CKRecord(recordType: CloudKitArticleStatus.recordType, recordID: recordID)
|
||||||
if let webFeedExternalID = article.webFeed?.externalID {
|
if let webFeedExternalID = article.webFeed?.externalID {
|
||||||
record[CloudKitArticleStatus.Fields.webFeedExternalID] = webFeedExternalID
|
record[CloudKitArticleStatus.Fields.webFeedExternalID] = webFeedExternalID
|
||||||
@ -187,7 +186,7 @@ private extension CloudKitArticlesZone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func makeStatusRecord(_ statusUpdate: CloudKitArticleStatusUpdate) -> CKRecord {
|
func makeStatusRecord(_ statusUpdate: CloudKitArticleStatusUpdate) -> CKRecord {
|
||||||
let recordID = CKRecord.ID(recordName: statusID(statusUpdate.articleID), zoneID: Self.zoneID)
|
let recordID = CKRecord.ID(recordName: statusID(statusUpdate.articleID), zoneID: zoneID)
|
||||||
let record = CKRecord(recordType: CloudKitArticleStatus.recordType, recordID: recordID)
|
let record = CKRecord(recordType: CloudKitArticleStatus.recordType, recordID: recordID)
|
||||||
|
|
||||||
if let webFeedExternalID = statusUpdate.article?.webFeed?.externalID {
|
if let webFeedExternalID = statusUpdate.article?.webFeed?.externalID {
|
||||||
@ -201,10 +200,10 @@ private extension CloudKitArticlesZone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func makeArticleRecord(_ article: Article) -> CKRecord {
|
func makeArticleRecord(_ article: Article) -> CKRecord {
|
||||||
let recordID = CKRecord.ID(recordName: articleID(article.articleID), zoneID: Self.zoneID)
|
let recordID = CKRecord.ID(recordName: articleID(article.articleID), zoneID: zoneID)
|
||||||
let record = CKRecord(recordType: CloudKitArticle.recordType, recordID: recordID)
|
let record = CKRecord(recordType: CloudKitArticle.recordType, recordID: recordID)
|
||||||
|
|
||||||
let articleStatusRecordID = CKRecord.ID(recordName: statusID(article.articleID), zoneID: Self.zoneID)
|
let articleStatusRecordID = CKRecord.ID(recordName: statusID(article.articleID), zoneID: zoneID)
|
||||||
record[CloudKitArticle.Fields.articleStatus] = CKRecord.Reference(recordID: articleStatusRecordID, action: .deleteSelf)
|
record[CloudKitArticle.Fields.articleStatus] = CKRecord.Reference(recordID: articleStatusRecordID, action: .deleteSelf)
|
||||||
record[CloudKitArticle.Fields.webFeedURL] = article.webFeed?.url
|
record[CloudKitArticle.Fields.webFeedURL] = article.webFeed?.url
|
||||||
record[CloudKitArticle.Fields.uniqueID] = article.uniqueID
|
record[CloudKitArticle.Fields.uniqueID] = article.uniqueID
|
||||||
|
@ -11,7 +11,7 @@ let package = Package(
|
|||||||
targets: ["Articles"]),
|
targets: ["Articles"]),
|
||||||
],
|
],
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSCore.git", .upToNextMajor(from: "1.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSCore.git", .upToNextMajor(from: "1.0.0")),
|
||||||
],
|
],
|
||||||
targets: [
|
targets: [
|
||||||
.target(
|
.target(
|
||||||
|
@ -13,7 +13,7 @@ let package = Package(
|
|||||||
targets: ["ArticlesDatabase"]),
|
targets: ["ArticlesDatabase"]),
|
||||||
],
|
],
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSCore.git", .upToNextMajor(from: "1.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSCore.git", .upToNextMajor(from: "1.0.0")),
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSDatabase.git", .upToNextMajor(from: "1.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSDatabase.git", .upToNextMajor(from: "1.0.0-beta1")),
|
||||||
.package(url: "https://github.com/Ranchero-Software/RSParser.git", .upToNextMajor(from: "2.0.0-beta1")),
|
.package(url: "https://github.com/Ranchero-Software/RSParser.git", .upToNextMajor(from: "2.0.0-beta1")),
|
||||||
.package(url: "../Articles", .upToNextMajor(from: "1.0.0")),
|
.package(url: "../Articles", .upToNextMajor(from: "1.0.0")),
|
||||||
|
@ -6104,7 +6104,7 @@
|
|||||||
repositoryURL = "https://github.com/Ranchero-Software/RSCore.git";
|
repositoryURL = "https://github.com/Ranchero-Software/RSCore.git";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = upToNextMajorVersion;
|
kind = upToNextMajorVersion;
|
||||||
minimumVersion = "1.0.0-beta1";
|
minimumVersion = 1.0.0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
510ECA4024D1DCD0001C31A6 /* XCRemoteSwiftPackageReference "RSTree" */ = {
|
510ECA4024D1DCD0001C31A6 /* XCRemoteSwiftPackageReference "RSTree" */ = {
|
||||||
|
@ -60,8 +60,8 @@
|
|||||||
"repositoryURL": "https://github.com/Ranchero-Software/RSCore.git",
|
"repositoryURL": "https://github.com/Ranchero-Software/RSCore.git",
|
||||||
"state": {
|
"state": {
|
||||||
"branch": null,
|
"branch": null,
|
||||||
"revision": "dce76a4070ed24f148bb1673c308962dbdbf01ef",
|
"revision": "3fb97de5901d10e6afede307a31957f7579042e5",
|
||||||
"version": "1.0.0-beta9"
|
"version": "1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user