Skip to content

Commit 40885da

Browse files
author
Julian Locke
authored
Fix background task reconnection route string format (#427)
1 parent 356d36d commit 40885da

File tree

7 files changed

+119
-23
lines changed

7 files changed

+119
-23
lines changed

Source/SwiftyDropbox/Shared/Generated/AppAuthReconnectionHelpers.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ enum AppAuthReconnectionHelpers: ReconnectionHelpersShared {
99
let info = try persistedRequestInfo(from: apiRequest)
1010

1111
switch info.routeName {
12-
case "getThumbnailV2":
12+
case "get_thumbnail_v2":
1313
return .getThumbnailV2(
1414
rebuildRequest(
1515
apiRequest: apiRequest,

Source/SwiftyDropbox/Shared/Generated/DropboxAppBaseRequestBox.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@
77
import Foundation
88

99
/// Allows for heterogenous collections of typed requests
10-
public enum DropboxAppBaseRequestBox {
10+
public enum DropboxAppBaseRequestBox: CustomStringConvertible {
1111
case getThumbnailV2(DownloadRequestFile<Files.PreviewResultSerializer, Files.ThumbnailV2ErrorSerializer>)
12-
}
12+
13+
public var description: String {
14+
switch self {
15+
case .getThumbnailV2:
16+
return "getThumbnailV2"
17+
}
18+
}
19+
}

Source/SwiftyDropbox/Shared/Generated/DropboxBaseRequestBox.swift

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import Foundation
88

99
/// Allows for heterogenous collections of typed requests
10-
public enum DropboxBaseRequestBox {
10+
public enum DropboxBaseRequestBox: CustomStringConvertible {
1111
case alphaUpload(UploadRequest<Files.FileMetadataSerializer, Files.UploadErrorSerializer>)
1212
case download(DownloadRequestFile<Files.FileMetadataSerializer, Files.DownloadErrorSerializer>)
1313
case downloadZip(DownloadRequestFile<Files.DownloadZipResultSerializer, Files.DownloadZipErrorSerializer>)
@@ -26,4 +26,45 @@ public enum DropboxBaseRequestBox {
2626
case docsDownload(DownloadRequestFile<Paper.PaperDocExportResultSerializer, Paper.DocLookupErrorSerializer>)
2727
case docsUpdate(UploadRequest<Paper.PaperDocCreateUpdateResultSerializer, Paper.PaperDocUpdateErrorSerializer>)
2828
case getSharedLinkFile(DownloadRequestFile<Sharing.SharedLinkMetadataSerializer, Sharing.GetSharedLinkFileErrorSerializer>)
29-
}
29+
30+
public var description: String {
31+
switch self {
32+
case .alphaUpload:
33+
return "alphaUpload"
34+
case .download:
35+
return "download"
36+
case .downloadZip:
37+
return "downloadZip"
38+
case .export:
39+
return "export"
40+
case .getPreview:
41+
return "getPreview"
42+
case .getThumbnail:
43+
return "getThumbnail"
44+
case .getThumbnailV2:
45+
return "getThumbnailV2"
46+
case .paperCreate:
47+
return "paperCreate"
48+
case .paperUpdate:
49+
return "paperUpdate"
50+
case .upload:
51+
return "upload"
52+
case .uploadSessionAppendV2:
53+
return "uploadSessionAppendV2"
54+
case .uploadSessionAppend:
55+
return "uploadSessionAppend"
56+
case .uploadSessionFinish:
57+
return "uploadSessionFinish"
58+
case .uploadSessionStart:
59+
return "uploadSessionStart"
60+
case .docsCreate:
61+
return "docsCreate"
62+
case .docsDownload:
63+
return "docsDownload"
64+
case .docsUpdate:
65+
return "docsUpdate"
66+
case .getSharedLinkFile:
67+
return "getSharedLinkFile"
68+
}
69+
}
70+
}

Source/SwiftyDropbox/Shared/Generated/ReconnectionHelpers.swift

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
99
let info = try persistedRequestInfo(from: apiRequest)
1010

1111
switch info.routeName {
12-
case "alphaUpload":
12+
case "alpha/upload":
1313
return .alphaUpload(
1414
rebuildRequest(
1515
apiRequest: apiRequest,
@@ -27,7 +27,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
2727
client: client
2828
)
2929
)
30-
case "downloadZip":
30+
case "download_zip":
3131
return .downloadZip(
3232
rebuildRequest(
3333
apiRequest: apiRequest,
@@ -45,7 +45,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
4545
client: client
4646
)
4747
)
48-
case "getPreview":
48+
case "get_preview":
4949
return .getPreview(
5050
rebuildRequest(
5151
apiRequest: apiRequest,
@@ -54,7 +54,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
5454
client: client
5555
)
5656
)
57-
case "getThumbnail":
57+
case "get_thumbnail":
5858
return .getThumbnail(
5959
rebuildRequest(
6060
apiRequest: apiRequest,
@@ -63,7 +63,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
6363
client: client
6464
)
6565
)
66-
case "getThumbnailV2":
66+
case "get_thumbnail_v2":
6767
return .getThumbnailV2(
6868
rebuildRequest(
6969
apiRequest: apiRequest,
@@ -72,7 +72,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
7272
client: client
7373
)
7474
)
75-
case "paperCreate":
75+
case "paper/create":
7676
return .paperCreate(
7777
rebuildRequest(
7878
apiRequest: apiRequest,
@@ -81,7 +81,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
8181
client: client
8282
)
8383
)
84-
case "paperUpdate":
84+
case "paper/update":
8585
return .paperUpdate(
8686
rebuildRequest(
8787
apiRequest: apiRequest,
@@ -99,7 +99,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
9999
client: client
100100
)
101101
)
102-
case "uploadSessionAppendV2":
102+
case "upload_session/append_v2":
103103
return .uploadSessionAppendV2(
104104
rebuildRequest(
105105
apiRequest: apiRequest,
@@ -108,7 +108,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
108108
client: client
109109
)
110110
)
111-
case "uploadSessionAppend":
111+
case "upload_session/append":
112112
return .uploadSessionAppend(
113113
rebuildRequest(
114114
apiRequest: apiRequest,
@@ -117,7 +117,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
117117
client: client
118118
)
119119
)
120-
case "uploadSessionFinish":
120+
case "upload_session/finish":
121121
return .uploadSessionFinish(
122122
rebuildRequest(
123123
apiRequest: apiRequest,
@@ -126,7 +126,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
126126
client: client
127127
)
128128
)
129-
case "uploadSessionStart":
129+
case "upload_session/start":
130130
return .uploadSessionStart(
131131
rebuildRequest(
132132
apiRequest: apiRequest,
@@ -135,7 +135,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
135135
client: client
136136
)
137137
)
138-
case "docsCreate":
138+
case "docs/create":
139139
return .docsCreate(
140140
rebuildRequest(
141141
apiRequest: apiRequest,
@@ -144,7 +144,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
144144
client: client
145145
)
146146
)
147-
case "docsDownload":
147+
case "docs/download":
148148
return .docsDownload(
149149
rebuildRequest(
150150
apiRequest: apiRequest,
@@ -153,7 +153,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
153153
client: client
154154
)
155155
)
156-
case "docsUpdate":
156+
case "docs/update":
157157
return .docsUpdate(
158158
rebuildRequest(
159159
apiRequest: apiRequest,
@@ -162,7 +162,7 @@ enum ReconnectionHelpers: ReconnectionHelpersShared {
162162
client: client
163163
)
164164
)
165-
case "getSharedLinkFile":
165+
case "get_shared_link_file":
166166
return .getSharedLinkFile(
167167
rebuildRequest(
168168
apiRequest: apiRequest,

Source/SwiftyDropbox/Shared/Handwritten/MockDropboxTransportClient.swift

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,9 @@ class MockDropboxTransportClient: DropboxTransportClient {
142142

143143
func reconnectRequest<ASerial, RSerial, ESerial>(_ route: Route<ASerial, RSerial, ESerial>, apiRequest: ApiRequest) -> UploadRequest<RSerial, ESerial>
144144
where ASerial: JSONSerializer, RSerial: JSONSerializer, ESerial: JSONSerializer {
145-
fatalError("unimplemented")
145+
UploadRequest(
146+
request: apiRequest, responseSerializer: route.responseSerializer, errorSerializer: route.errorSerializer
147+
)
146148
}
147149

148150
func reconnectRequest<ASerial, RSerial, ESerial>(
@@ -151,12 +153,28 @@ class MockDropboxTransportClient: DropboxTransportClient {
151153
overwrite: Bool,
152154
destination: URL
153155
) -> DownloadRequestFile<RSerial, ESerial> where ASerial: JSONSerializer, RSerial: JSONSerializer, ESerial: JSONSerializer {
154-
fatalError("unimplemented")
156+
DownloadRequestFile(
157+
request: apiRequest,
158+
responseSerializer: route.responseSerializer,
159+
errorSerializer: route.errorSerializer,
160+
moveToDestination: { _ in fatalError() },
161+
errorDataFromLocation: { _ in fatalError() }
162+
)
155163
}
156164

157165
func shutdown() {}
158166
}
159167

168+
extension MockDropboxTransportClient: DropboxTransportClientInternal {
169+
var manager: NetworkSessionManager {
170+
fatalError("unimplemented")
171+
}
172+
173+
var longpollManager: NetworkSessionManager {
174+
fatalError("unimplemented")
175+
}
176+
}
177+
160178
private class Requests {
161179
var allRequests: [(String, MockApiRequest)] = []
162180

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
///
2+
/// Copyright (c) 2024 Dropbox, Inc. All rights reserved.
3+
///
4+
5+
import Foundation
6+
7+
@testable import SwiftyDropbox
8+
import XCTest
9+
10+
final class TestReconnectionHelperRouteNameMatching: XCTestCase {
11+
func testMatching() throws {
12+
let route = Files.uploadSessionAppendV2
13+
let persistedInfo = ReconnectionHelpers.PersistedRequestInfo.upload(
14+
.init(
15+
originalSDKVersion: DropboxClientsManager.sdkVersion,
16+
routeName: route.name,
17+
routeNamespace: route.namespace,
18+
clientProvidedInfo: nil
19+
)
20+
)
21+
22+
let request = MockApiRequest(identifier: 0)
23+
request.taskDescription = try persistedInfo.asJsonString()
24+
25+
let rebuiltRequest = try ReconnectionHelpers.rebuildRequest(apiRequest: request, client: MockDropboxTransportClient())
26+
27+
// Assert that request was successfully rebuilt
28+
XCTAssertEqual(rebuiltRequest.description, "uploadSessionAppendV2")
29+
}
30+
}

0 commit comments

Comments
 (0)