Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit bcd579a

Browse files
committed
EditorServiceRemote: Handle bulk response as [String: String]
SiteID is a String instead of a number in the response object.
1 parent a28be34 commit bcd579a

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

WordPressKit/EditorServiceRemote.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,18 @@ public class EditorServiceRemote: ServiceRemoteWordPressComREST {
2929
] as [String: AnyObject]
3030

3131
wordPressComRestApi.POST(path, parameters: parameters, success: { (responseObject, httpResponse) in
32-
guard let response = responseObject as? [Int: String] else {
32+
guard let response = responseObject as? [String: String] else {
3333
if let boolResponse = responseObject as? Bool, boolResponse == false {
3434
return failure(EditorSettings.Error.badRequest)
3535
}
3636
return failure(EditorSettings.Error.badResponse)
3737
}
38-
let mappedResponse = response.compactMapValues(EditorSettings.Mobile.init)
38+
39+
let mappedResponse = response.reduce(into: [Int: EditorSettings.Mobile](), { (result, response) in
40+
if let id = Int(response.key), let editor = EditorSettings.Mobile(rawValue: response.value) {
41+
result[id] = editor
42+
}
43+
})
3944
success(mappedResponse)
4045
}) { (error, httpError) in
4146
failure(error)

WordPressKitTests/EditorServiceRemoteTests.swift

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,9 @@ class EditorServiceRemoteTests: XCTestCase {
184184
let expec = expectation(description: "success")
185185
let editor = EditorSettings.Mobile.gutenberg
186186

187-
//TODO: Response not yet clear
188-
let response: [Int: String] = [
189-
1: editor.rawValue,
190-
2: editor.rawValue,
187+
let response: [String: String] = [
188+
"1": editor.rawValue,
189+
"2": editor.rawValue,
191190
]
192191

193192
let expected: [Int: EditorSettings.Mobile] = [
@@ -199,7 +198,7 @@ class EditorServiceRemoteTests: XCTestCase {
199198
XCTAssertEqual($0, expected)
200199
expec.fulfill()
201200
}) { (error) in
202-
XCTFail("This call should error")
201+
XCTFail("This call should NOT error")
203202
expec.fulfill()
204203
}
205204

@@ -213,10 +212,9 @@ class EditorServiceRemoteTests: XCTestCase {
213212
let expec = expectation(description: "success")
214213
let editor = EditorSettings.Mobile.aztec
215214

216-
//TODO: Response not yet clear
217-
let response: [Int: String] = [
218-
1: editor.rawValue,
219-
2: editor.rawValue,
215+
let response: [String: String] = [
216+
"1": editor.rawValue,
217+
"2": editor.rawValue,
220218
]
221219

222220
let expected: [Int: EditorSettings.Mobile] = [
@@ -228,7 +226,7 @@ class EditorServiceRemoteTests: XCTestCase {
228226
XCTAssertEqual($0, expected)
229227
expec.fulfill()
230228
}) { (error) in
231-
XCTFail("This call should error")
229+
XCTFail("This call should NOT error")
232230
expec.fulfill()
233231
}
234232

0 commit comments

Comments
 (0)