Skip to content

Commit ed81029

Browse files
committed
Update some of the public APIs
1 parent eee1e01 commit ed81029

22 files changed

+67
-25
lines changed

Diff for: Package.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ let package = Package(
1111
targets: [
1212
.binaryTarget(
1313
name: "WordPressKit",
14-
url: "https://github.com/user-attachments/files/16200320/WordPressKit.zip",
15-
checksum: "fa2ddc1fedcc225beb23d23168043bd78bbd12d43e187cc0dd772aef8d81ee20"
14+
url: "https://github.com/user-attachments/files/16200425/WordPressKit.zip",
15+
checksum: "3ec44e1f08dea7851c9e52784e9378948a3fabc1742eced9e281305c23908343"
1616
),
1717
]
1818
)

Diff for: Sources/CoreAPI/HTTPRequestBuilder.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import Foundation
55
///
66
/// Calling this class's url related functions (the ones that changes path, query, etc) does not modify the
77
/// original URL string. The URL will be perserved in the final result that's returned by the `build` function.
8-
final class HTTPRequestBuilder {
9-
enum Method: String, CaseIterable {
8+
public final class HTTPRequestBuilder {
9+
public enum Method: String, CaseIterable {
1010
case get = "GET"
1111
case post = "POST"
1212
case put = "PUT"

Diff for: Sources/CoreAPI/WordPressAPIError.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Foundation
22

3-
public enum WordPressAPIError<EndpointError>: Error where EndpointError: LocalizedError {
3+
@frozen public enum WordPressAPIError<EndpointError>: Error where EndpointError: LocalizedError {
44
static var unknownErrorMessage: String {
55
NSLocalizedString(
66
"wordpress-api.error.unknown",

Diff for: Sources/CoreAPI/WordPressComRestApi.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ open class WordPressComRestApi: NSObject {
362362
return configuration
363363
}
364364

365-
func perform(
365+
open func perform(
366366
_ method: HTTPRequestBuilder.Method,
367367
URLString: String,
368368
parameters: [String: AnyObject]? = nil,
@@ -373,7 +373,7 @@ open class WordPressComRestApi: NSObject {
373373
}
374374
}
375375

376-
func perform<T: Decodable>(
376+
open func perform<T: Decodable>(
377377
_ method: HTTPRequestBuilder.Method,
378378
URLString: String,
379379
parameters: [String: AnyObject]? = nil,

Diff for: Sources/CoreAPI/WordPressOrgXMLRPCApi.swift

+4
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ open class WordPressOrgXMLRPCApi: NSObject {
2828
///
2929
@objc public static let minimumSupportedVersion = "4.0"
3030

31+
@objc public static var errorDomain: String {
32+
wpxmlrpc.WPXMLRPCFaultErrorDomain
33+
}
34+
3135
private lazy var urlSession: URLSession = makeSession(configuration: .default)
3236
private lazy var uploadURLSession: URLSession = {
3337
backgroundUploads

Diff for: Sources/WordPressKit/Models/AccountSettings.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public struct AccountSettings {
5353
}
5454
}
5555

56-
public enum AccountSettingsChange {
56+
@frozen public enum AccountSettingsChange {
5757
case firstName(String)
5858
case lastName(String)
5959
case displayName(String)

Diff for: Sources/WordPressKit/Models/Activity.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public class ActivityGroup {
182182
public let name: String
183183
public let count: Int
184184

185-
init(_ groupKey: String, dictionary: [String: AnyObject]) throws {
185+
public init(_ groupKey: String, dictionary: [String: AnyObject]) throws {
186186
guard let groupName = dictionary["name"] as? String else {
187187
throw Error.missingName
188188
}
@@ -293,7 +293,7 @@ public class RestoreStatus {
293293
}
294294

295295
public extension RestoreStatus {
296-
enum Status: String {
296+
@frozen enum Status: String {
297297
case queued
298298
case finished
299299
case running

Diff for: Sources/WordPressKit/Models/Atomic/AtomicLogs.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public final class AtomicErrorLogEntry: Decodable {
99
public let line: Int?
1010
public let timestamp: Date?
1111

12-
public enum Severity: String {
12+
@frozen public enum Severity: String {
1313
case user = "User"
1414
case warning = "Warning"
1515
case deprecated = "Deprecated"

Diff for: Sources/WordPressKit/Models/Blaze/BlazeCampaign.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public final class BlazeCampaign: Codable {
4444
case creativeHTML = "creativeHtml"
4545
}
4646

47-
public enum Status: String, Codable {
47+
@frozen public enum Status: String, Codable {
4848
case scheduled
4949
case created
5050
case rejected

Diff for: Sources/WordPressKit/Models/JetpackBackup.swift

+11
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,15 @@ public struct JetpackBackup: Decodable {
2626
case url
2727
case validUntil
2828
}
29+
30+
public init(backupPoint: Date, downloadID: Int, rewindID: String, startedAt: Date, progress: Int?, downloadCount: Int?, url: String?, validUntil: Date?) {
31+
self.backupPoint = backupPoint
32+
self.downloadID = downloadID
33+
self.rewindID = rewindID
34+
self.startedAt = startedAt
35+
self.progress = progress
36+
self.downloadCount = downloadCount
37+
self.url = url
38+
self.validUntil = validUntil
39+
}
2940
}

Diff for: Sources/WordPressKit/Models/Plugins/PluginState.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Foundation
22

33
public struct PluginState: Equatable, Codable {
4-
public enum UpdateState: Equatable, Codable {
4+
@frozen public enum UpdateState: Equatable, Codable {
55
public static func ==(lhs: PluginState.UpdateState, rhs: PluginState.UpdateState) -> Bool {
66
switch (lhs, rhs) {
77
case (.updated, .updated):

Diff for: Sources/WordPressKit/Models/RemoteNotificationSettings.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ open class RemoteNotificationSettings {
2121

2222
/// Represents a communication channel that may post notifications to the user.
2323
///
24-
public enum Channel: Equatable {
24+
@frozen public enum Channel: Equatable {
2525
case blog(blogId: Int)
2626
case other
2727
case wordPressCom

Diff for: Sources/WordPressKit/Models/Stats/Insights/StatsTagsAndCategoriesInsight.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ extension StatsTagsAndCategoriesInsight: StatsInsightData {
1313
}
1414

1515
public struct StatsTagAndCategory: Codable {
16-
public enum Kind: String, Codable {
16+
@frozen public enum Kind: String, Codable {
1717
case tag
1818
case category
1919
case folder

Diff for: Sources/WordPressKit/Models/Stats/Time Interval/StatsSummaryTimeIntervalData.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
public enum StatsPeriodUnit: Int {
1+
@frozen public enum StatsPeriodUnit: Int {
22
case day
33
case week
44
case month
55
case year
66
}
77

8-
public enum StatsSummaryType: Int {
8+
@frozen public enum StatsSummaryType: Int {
99
case views
1010
case visitors
1111
case likes

Diff for: Sources/WordPressKit/Models/WPTimeZone.swift

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ public struct NamedTimeZone: WPTimeZone {
3030
public let label: String
3131
public let value: String
3232

33+
public init(label: String, value: String) {
34+
self.label = label
35+
self.value = value
36+
}
37+
3338
public var gmtOffset: Float? {
3439
return nil
3540
}

Diff for: Sources/WordPressKit/Services/AnnouncementServiceRemote.swift

+22-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import Foundation
22

33
/// Retrieves feature announcements from the related endpoint
4-
public class AnnouncementServiceRemote: ServiceRemoteWordPressComREST {
4+
open class AnnouncementServiceRemote: ServiceRemoteWordPressComREST {
55

6-
public func getAnnouncements(appId: String,
6+
open func getAnnouncements(appId: String,
77
appVersion: String,
88
locale: String,
99
completion: @escaping (Result<[Announcement], Error>) -> Void) {
@@ -86,6 +86,18 @@ public struct Announcement: Codable {
8686
public let isLocalized: Bool
8787
public let responseLocale: String
8888
public let features: [Feature]
89+
90+
public init(appVersionName: String, minimumAppVersion: String, maximumAppVersion: String, appVersionTargets: [String], detailsUrl: String, announcementVersion: String, isLocalized: Bool, responseLocale: String, features: [Feature]) {
91+
self.appVersionName = appVersionName
92+
self.minimumAppVersion = minimumAppVersion
93+
self.maximumAppVersion = maximumAppVersion
94+
self.appVersionTargets = appVersionTargets
95+
self.detailsUrl = detailsUrl
96+
self.announcementVersion = announcementVersion
97+
self.isLocalized = isLocalized
98+
self.responseLocale = responseLocale
99+
self.features = features
100+
}
89101
}
90102

91103
public struct Feature: Codable {
@@ -94,6 +106,14 @@ public struct Feature: Codable {
94106
public let icons: [FeatureIcon]?
95107
public let iconUrl: String
96108
public let iconBase64: String?
109+
110+
public init(title: String, subtitle: String, icons: [FeatureIcon]?, iconUrl: String, iconBase64: String?) {
111+
self.title = title
112+
self.subtitle = subtitle
113+
self.icons = icons
114+
self.iconUrl = iconUrl
115+
self.iconBase64 = iconBase64
116+
}
97117
}
98118

99119
public struct FeatureIcon: Codable {

Diff for: Sources/WordPressKit/Services/AutomatedTransferService.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import Foundation
33
/// Class encapsualting all requests related to performing Automated Transfer operations.
44
public class AutomatedTransferService: ServiceRemoteWordPressComREST {
55

6-
public enum ResponseError: Error {
6+
@frozen public enum ResponseError: Error {
77
case decodingFailure
88
}
99

10-
public enum AutomatedTransferEligibilityError: Error {
10+
@frozen public enum AutomatedTransferEligibilityError: Error {
1111
case unverifiedEmail
1212
case excessiveDiskSpaceUsage
1313
case noBusinessPlan

Diff for: Sources/WordPressKit/Services/PostServiceRemoteExtended.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public protocol PostServiceRemoteExtended: PostServiceRemote {
2323
func deletePost(withID postID: Int) async throws
2424
}
2525

26-
public enum PostServiceRemoteError: Error {
26+
@frozen public enum PostServiceRemoteError: Error {
2727
/// 409 (Conflict)
2828
case conflict
2929
/// 404 (Not Found)

Diff for: Sources/WordPressKit/Services/QR Login/QRLoginServiceRemote.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ open class QRLoginServiceRemote: ServiceRemoteWordPressComREST {
4646
}
4747
}
4848

49-
public enum QRLoginError {
49+
@frozen public enum QRLoginError {
5050
case invalidData
5151
case expired
5252

Diff for: Sources/WordPressKit/Services/ReaderServiceDeliveryFrequency.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Foundation
55
/// - daily: daily frequency
66
/// - instantly: instantly frequency
77
/// - weekly: weekly frequency
8-
public enum ReaderServiceDeliveryFrequency: String {
8+
@frozen public enum ReaderServiceDeliveryFrequency: String {
99
case daily
1010
case instantly
1111
case weekly

Diff for: Sources/WordPressKit/Services/WordPressComServiceRemote+SiteSegments.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public enum SiteSegmentsError: Error {
7979
/// - success: the site segments request succeeded with the accompanying result.
8080
/// - failure: the site segments request failed due to the accompanying error.
8181
///
82-
public enum SiteSegmentsResult {
82+
@frozen public enum SiteSegmentsResult {
8383
case success([SiteSegment])
8484
case failure(SiteSegmentsError)
8585
}

Diff for: WordPressKit.xcodeproj/project.pbxproj

+2
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,7 @@
798798
0C1C08422B9CD8D200E52F8C /* PostServiceRemoteREST+Extended.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PostServiceRemoteREST+Extended.swift"; sourceTree = "<group>"; };
799799
0C1C08442B9CDB0B00E52F8C /* PostServiceRemoteXMLRPC+Extended.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PostServiceRemoteXMLRPC+Extended.swift"; sourceTree = "<group>"; };
800800
0C3A2A412A2E7BA500FD91D6 /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = "<group>"; };
801+
0C6183C62C420A3700289E73 /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = "<group>"; };
801802
0C674E2F2BF3A91300F3B3D4 /* JetpackAIServiceRemote.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackAIServiceRemote.swift; sourceTree = "<group>"; };
802803
0C938A052C416789009BA7B2 /* Secret.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Secret.swift; sourceTree = "<group>"; };
803804
0C938A072C4167BB009BA7B2 /* NSString+XMLExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+XMLExtensions.h"; sourceTree = "<group>"; };
@@ -2317,6 +2318,7 @@
23172318
9368C7711EC5EF1B0092CE8E = {
23182319
isa = PBXGroup;
23192320
children = (
2321+
0C6183C62C420A3700289E73 /* Package.swift */,
23202322
3FE2E9432BB11413002CA2E1 /* Sources */,
23212323
3FE2E9442BB11592002CA2E1 /* Tests */,
23222324
FFE247CD20CB1245002DF3A2 /* LICENSE */,

0 commit comments

Comments
 (0)