Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
swiftlint_version: 0.53.0
strict: true
included:
- native/swift
excluded: # paths to ignore during linting. Takes precedence over `included`.
- .cargo # Local Cargo cache
- .build # Compiled Code
- native/swift/Sources/wordpress-api-wrapper/wp_api.swift # auto-generated code
- target # Compiled Code
- Dockerfile.swift # Not a Swift file
disabled_rules:
# Don't think we should enable this rule.
# See https://github.com/realm/SwiftLint/issues/5263 for context.
- non_optional_string_data_conversion
# Allow using short names (i.e. T, U, ID) for generic types.
- type_name
30 changes: 24 additions & 6 deletions native/swift/Sources/wordpress-api/Endpoints/Plugins.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,42 @@ extension SparsePlugin: Contextual {
public typealias EditContext = PluginWithEditContext
public typealias EmbedContext = PluginWithEmbedContext

public static func retrieveRequest(id: PluginSlug, using requestBuilder: any WpRequestBuilderProtocol, context: WpContext) -> WpNetworkRequest {
public static func retrieveRequest(
id: PluginSlug,
using requestBuilder: any WpRequestBuilderProtocol,
context: WpContext
) -> WpNetworkRequest {
requestBuilder.plugins().retrieve(context: context, plugin: id)
}

public static func listRequest(params: PluginListParams?, using requestBuilder: any WpRequestBuilderProtocol, context: WpContext) -> WpNetworkRequest {
public static func listRequest(
params: PluginListParams?,
using requestBuilder: any WpRequestBuilderProtocol,
context: WpContext
) -> WpNetworkRequest {
requestBuilder.plugins().list(context: context, params: params)
}

public static func updateRequest(id: PluginSlug, params: PluginUpdateParams, using requestBuilder: any WpRequestBuilderProtocol) -> WpNetworkRequest {
public static func updateRequest(
id: PluginSlug,
params: PluginUpdateParams,
using requestBuilder: any WpRequestBuilderProtocol
) -> WpNetworkRequest {
requestBuilder.plugins().update(plugin: id, params: params)
}

public static func createRequest(params: PluginCreateParams, using requestBuilder: any WpRequestBuilderProtocol) -> WpNetworkRequest {
public static func createRequest(
params: PluginCreateParams,
using requestBuilder: any WpRequestBuilderProtocol
) -> WpNetworkRequest {
requestBuilder.plugins().create(params: params)
}

public static func deleteRequest(id: PluginSlug, params: Void, using requestBuilder: any WpRequestBuilderProtocol) -> WpNetworkRequest {
public static func deleteRequest(
id: PluginSlug,
params: Void,
using requestBuilder: any WpRequestBuilderProtocol
) -> WpNetworkRequest {
requestBuilder.plugins().delete(plugin: id)
}

Expand Down Expand Up @@ -100,4 +119,3 @@ extension ContextualNamespace where T == SparsePlugin {
return try parseFilterRetrievePluginResponse(response: response)
}
}

29 changes: 24 additions & 5 deletions native/swift/Sources/wordpress-api/Endpoints/Users.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,42 @@ extension SparseUser: Contextual {
public typealias EditContext = UserWithEditContext
public typealias EmbedContext = UserWithEmbedContext

public static func retrieveRequest(id: UserId, using requestBuilder: WpRequestBuilderProtocol, context: WpContext) -> WpNetworkRequest {
public static func retrieveRequest(
id: UserId,
using requestBuilder: WpRequestBuilderProtocol,
context: WpContext
) -> WpNetworkRequest {
requestBuilder.users().retrieve(userId: id, context: context)
}

public static func listRequest(params: UserListParams?, using requestBuilder: WpRequestBuilderProtocol, context: WpContext) -> WpNetworkRequest {
public static func listRequest(
params: UserListParams?,
using requestBuilder: WpRequestBuilderProtocol,
context: WpContext
) -> WpNetworkRequest {
requestBuilder.users().list(context: context, params: params)
}

public static func updateRequest(id: UserId, params: UserUpdateParams, using requestBuilder: any WpRequestBuilderProtocol) -> WpNetworkRequest {
public static func updateRequest(
id: UserId,
params: UserUpdateParams,
using requestBuilder: any WpRequestBuilderProtocol
) -> WpNetworkRequest {
requestBuilder.users().update(userId: id, params: params)
}

public static func createRequest(params: UserCreateParams, using requestBuilder: any WpRequestBuilderProtocol) -> WpNetworkRequest {
public static func createRequest(
params: UserCreateParams,
using requestBuilder: any WpRequestBuilderProtocol
) -> WpNetworkRequest {
requestBuilder.users().create(params: params)
}

public static func deleteRequest(id: ID, params: UserDeleteParams, using requestBuilder: WpRequestBuilderProtocol) -> WpNetworkRequest {
public static func deleteRequest(
id: ID,
params: UserDeleteParams,
using requestBuilder: WpRequestBuilderProtocol
) -> WpNetworkRequest {
requestBuilder.users().delete(userId: id, params: params)
}

Expand Down
31 changes: 25 additions & 6 deletions native/swift/Sources/wordpress-api/Namespace.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,30 @@ public protocol Contextual {
associatedtype CreateParams
associatedtype DeleteParams

static func retrieveRequest(id: ID, using requestBuilder: WpRequestBuilderProtocol, context: WpContext) -> WpNetworkRequest
static func listRequest(params: ListParams, using requestBuilder: WpRequestBuilderProtocol, context: WpContext) -> WpNetworkRequest
static func updateRequest(id: ID, params: UpdateParams, using requestBuilder: WpRequestBuilderProtocol) -> WpNetworkRequest
static func createRequest(params: CreateParams, using requestBuilder: WpRequestBuilderProtocol) -> WpNetworkRequest
static func deleteRequest(id: ID, params: DeleteParams, using requestBuilder: WpRequestBuilderProtocol) -> WpNetworkRequest
static func retrieveRequest(
id: ID,
using requestBuilder: WpRequestBuilderProtocol,
context: WpContext
) -> WpNetworkRequest
static func listRequest(
params: ListParams,
using requestBuilder: WpRequestBuilderProtocol,
context: WpContext
) -> WpNetworkRequest
static func updateRequest(
id: ID,
params: UpdateParams,
using requestBuilder: WpRequestBuilderProtocol
) -> WpNetworkRequest
static func createRequest(
params: CreateParams,
using requestBuilder: WpRequestBuilderProtocol
) -> WpNetworkRequest
static func deleteRequest(
id: ID,
params: DeleteParams,
using requestBuilder: WpRequestBuilderProtocol
) -> WpNetworkRequest

static func parseResponse(_ response: WpNetworkResponse) throws -> ViewContext
static func parseResponse(_ response: WpNetworkResponse) throws -> EditContext
Expand Down Expand Up @@ -121,7 +140,7 @@ extension ContextualNamespace {
return try parseResponse(response)
}

public func list<U>() async throws -> [R] where T.ListParams == Optional<U> {
public func list<U>() async throws -> [R] where T.ListParams == U? {
try await list(with: nil)
}
}
Expand Down
2 changes: 1 addition & 1 deletion native/swift/Tests/wordpress-api/WordPressAPITests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ final class WordPressAPITests: XCTestCase {

func testExample() throws {
let request = try WpRequestBuilder(siteUrl: "https://wordpress.org", authentication: .none)
.users().list(context: .view, params: nil)
.users().list(context: .view, params: nil)
XCTAssertTrue(try XCTUnwrap(request).url.hasPrefix("https://wordpress.org/wp-json/wp/v2/users"))
}
}