diff --git a/Package.swift b/Package.swift index 965f24279..7a1c94c5d 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19034191/WordPressKit.zip", - checksum: "34f108cba86b5e4334d1c9af79946dbb8b665e270bdd14bc8f7bc0ba7a898583" + url: "https://github.com/user-attachments/files/19315257/WordPressKit.zip", + checksum: "1b4ba5cef01a64e98ffdc02a5c8ac92f550f234222bfb6abf11b4b4df94435bc" ), ] ) diff --git a/Sources/WordPressKit/Models/RemoteBlog.swift b/Sources/WordPressKit/Models/RemoteBlog.swift index 99bea7dc9..795c93948 100644 --- a/Sources/WordPressKit/Models/RemoteBlog.swift +++ b/Sources/WordPressKit/Models/RemoteBlog.swift @@ -58,6 +58,8 @@ import Foundation /// Blog's total disk quota space used. public var quotaSpaceUsed: NSNumber? + public var isDeleted: Bool + /// Parses details from a JSON dictionary, as returned by the WordPress.com REST API. @objc(initWithJSONDictionary:) public init(jsonDictionary json: NSDictionary) { @@ -79,6 +81,7 @@ import Foundation self.planActiveFeatures = (json.array(forKeyPath: "plan.features.active") as? [String]) ?? [] self.quotaSpaceAllowed = json.number(forKeyPath: "quota.space_allowed") self.quotaSpaceUsed = json.number(forKeyPath: "quota.space_used") + self.isDeleted = json.number(forKey: "is_deleted")?.boolValue == true } } diff --git a/Sources/WordPressKit/Services/AccountServiceRemoteREST.m b/Sources/WordPressKit/Services/AccountServiceRemoteREST.m index a8290c2ba..ab1041a7e 100644 --- a/Sources/WordPressKit/Services/AccountServiceRemoteREST.m +++ b/Sources/WordPressKit/Services/AccountServiceRemoteREST.m @@ -385,10 +385,14 @@ - (RemoteUser *)remoteUserFromDictionary:(NSDictionary *)dictionary - (NSArray *)remoteBlogsFromJSONArray:(NSArray *)jsonBlogs { NSArray *blogs = jsonBlogs; - return [blogs wpkit_map:^id(NSDictionary *jsonBlog) { + return [[blogs wpkit_map:^id(NSDictionary *jsonBlog) { return [[RemoteBlog alloc] initWithJSONDictionary:jsonBlog]; + }] wpkit_filter:^BOOL(RemoteBlog *blog) { + // Exclude deleted sites from query result, since the app does not handle deleted sites properly. + // I tried to use query arguments `site_visibility=visible` and `site_activity=active`, but neither excludes + // deleted sites. + return !blog.isDeleted; }]; - return blogs; } @end