From de9932b6429441b7fe93adc424cf43c1299f0da8 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Wed, 29 May 2024 13:12:43 +1200 Subject: [PATCH 1/6] Only run swiftlint against files in native/swift --- .swiftlint.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.swiftlint.yml b/.swiftlint.yml index cac6bdf55..67fb2253f 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,7 +1,5 @@ swiftlint_version: 0.53.0 +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 From 2e4ce85d48b4e4aec2a4b0aa5d96e2f2e752e3d9 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Wed, 29 May 2024 13:13:29 +1200 Subject: [PATCH 2/6] Disable `non_optional_string_data_conversion` swiftlint rule --- .swiftlint.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.swiftlint.yml b/.swiftlint.yml index 67fb2253f..fbb589268 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -3,3 +3,7 @@ included: - native/swift excluded: # paths to ignore during linting. Takes precedence over `included`. - native/swift/Sources/wordpress-api-wrapper/wp_api.swift # auto-generated code +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 From 23ba5ae54cfe126bab9727a1dc2f0b65858e2480 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Wed, 29 May 2024 13:13:50 +1200 Subject: [PATCH 3/6] Disable `type_name` swiftlint rule --- .swiftlint.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.swiftlint.yml b/.swiftlint.yml index fbb589268..cd499c9fa 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -7,3 +7,5 @@ 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 From 6a0ec734e02d1607b997eb0f763eae2e4b188d04 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Wed, 29 May 2024 13:14:20 +1200 Subject: [PATCH 4/6] Address swiftlint issues --- .../wordpress-api/Endpoints/Plugins.swift | 30 ++++++++++++++---- .../wordpress-api/Endpoints/Users.swift | 29 ++++++++++++++--- .../Sources/wordpress-api/Namespace.swift | 31 +++++++++++++++---- 3 files changed, 73 insertions(+), 17 deletions(-) diff --git a/native/swift/Sources/wordpress-api/Endpoints/Plugins.swift b/native/swift/Sources/wordpress-api/Endpoints/Plugins.swift index bc5c4f2ac..acfb6dd0e 100644 --- a/native/swift/Sources/wordpress-api/Endpoints/Plugins.swift +++ b/native/swift/Sources/wordpress-api/Endpoints/Plugins.swift @@ -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) } @@ -100,4 +119,3 @@ extension ContextualNamespace where T == SparsePlugin { return try parseFilterRetrievePluginResponse(response: response) } } - diff --git a/native/swift/Sources/wordpress-api/Endpoints/Users.swift b/native/swift/Sources/wordpress-api/Endpoints/Users.swift index 52782ef87..c5e9771cc 100644 --- a/native/swift/Sources/wordpress-api/Endpoints/Users.swift +++ b/native/swift/Sources/wordpress-api/Endpoints/Users.swift @@ -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) } diff --git a/native/swift/Sources/wordpress-api/Namespace.swift b/native/swift/Sources/wordpress-api/Namespace.swift index 97f8d0608..dcd637014 100644 --- a/native/swift/Sources/wordpress-api/Namespace.swift +++ b/native/swift/Sources/wordpress-api/Namespace.swift @@ -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 @@ -121,7 +140,7 @@ extension ContextualNamespace { return try parseResponse(response) } - public func list() async throws -> [R] where T.ListParams == Optional { + public func list() async throws -> [R] where T.ListParams == U? { try await list(with: nil) } } From 3b554b7586b2d8ec98dc55a307e0f0d71800e1d1 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Wed, 29 May 2024 16:22:34 +1200 Subject: [PATCH 5/6] Enable swiftlint strict mode All warnings need to be addressed --- .swiftlint.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.swiftlint.yml b/.swiftlint.yml index cd499c9fa..e288ca795 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,4 +1,5 @@ swiftlint_version: 0.53.0 +strict: true included: - native/swift excluded: # paths to ignore during linting. Takes precedence over `included`. From a485e4291a15cd3b64b3ce896a16d94ee744fa74 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Wed, 29 May 2024 12:16:13 -0400 Subject: [PATCH 6/6] Remove trailing whitespace in WordPressAPITests.swift:12 --- native/swift/Tests/wordpress-api/WordPressAPITests.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/native/swift/Tests/wordpress-api/WordPressAPITests.swift b/native/swift/Tests/wordpress-api/WordPressAPITests.swift index 4b45641bd..7c921bf54 100644 --- a/native/swift/Tests/wordpress-api/WordPressAPITests.swift +++ b/native/swift/Tests/wordpress-api/WordPressAPITests.swift @@ -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")) } }