Skip to content

Commit c250782

Browse files
authored
Reconnection and compatibility layer fixes (#431)
1 parent 5cbf001 commit c250782

10 files changed

+188
-136
lines changed

Source/SwiftyDropbox/Shared/Generated/AppAuthReconnectionHelpers.swift

+6-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44

55
import Foundation
66

7+
// The case string below must match those created by ReconnectionHelpers+Handwritten.swift using
8+
// the route name and namespace as formatted for the generated `Route` object in SwiftTypes.jinja
9+
// Format: "<namespace>/<route_name>" e.g., "files/upload_session/append_v2" for Files.uploadSessionAppendV2
710
enum AppAuthReconnectionHelpers: ReconnectionHelpersShared {
811
static func rebuildRequest(apiRequest: ApiRequest, client: DropboxTransportClientInternal) throws -> DropboxAppBaseRequestBox {
912
let info = try persistedRequestInfo(from: apiRequest)
1013

11-
switch info.routeName {
12-
case "get_thumbnail_v2":
13-
return .getThumbnailV2(
14+
switch info.namespaceRouteName {
15+
case "files/get_thumbnail_v2":
16+
return .files_getThumbnailV2(
1417
rebuildRequest(
1518
apiRequest: apiRequest,
1619
info: info,

Source/SwiftyDropbox/Shared/Generated/DropboxAppBaseRequestBox.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ import Foundation
88

99
/// Allows for heterogenous collections of typed requests
1010
public enum DropboxAppBaseRequestBox: CustomStringConvertible {
11-
case getThumbnailV2(DownloadRequestFile<Files.PreviewResultSerializer, Files.ThumbnailV2ErrorSerializer>)
11+
case files_getThumbnailV2(DownloadRequestFile<Files.PreviewResultSerializer, Files.ThumbnailV2ErrorSerializer>)
1212

1313
public var description: String {
1414
switch self {
15-
case .getThumbnailV2:
16-
return "getThumbnailV2"
15+
case .files_getThumbnailV2:
16+
return "files/get_thumbnail_v2"
1717
}
1818
}
1919
}

Source/SwiftyDropbox/Shared/Generated/DropboxBaseRequestBox.swift

+54-54
Original file line numberDiff line numberDiff line change
@@ -8,63 +8,63 @@ import Foundation
88

99
/// Allows for heterogenous collections of typed requests
1010
public enum DropboxBaseRequestBox: CustomStringConvertible {
11-
case alphaUpload(UploadRequest<Files.FileMetadataSerializer, Files.UploadErrorSerializer>)
12-
case download(DownloadRequestFile<Files.FileMetadataSerializer, Files.DownloadErrorSerializer>)
13-
case downloadZip(DownloadRequestFile<Files.DownloadZipResultSerializer, Files.DownloadZipErrorSerializer>)
14-
case export(DownloadRequestFile<Files.ExportResultSerializer, Files.ExportErrorSerializer>)
15-
case getPreview(DownloadRequestFile<Files.FileMetadataSerializer, Files.PreviewErrorSerializer>)
16-
case getThumbnail(DownloadRequestFile<Files.FileMetadataSerializer, Files.ThumbnailErrorSerializer>)
17-
case getThumbnailV2(DownloadRequestFile<Files.PreviewResultSerializer, Files.ThumbnailV2ErrorSerializer>)
18-
case paperCreate(UploadRequest<Files.PaperCreateResultSerializer, Files.PaperCreateErrorSerializer>)
19-
case paperUpdate(UploadRequest<Files.PaperUpdateResultSerializer, Files.PaperUpdateErrorSerializer>)
20-
case upload(UploadRequest<Files.FileMetadataSerializer, Files.UploadErrorSerializer>)
21-
case uploadSessionAppendV2(UploadRequest<VoidSerializer, Files.UploadSessionAppendErrorSerializer>)
22-
case uploadSessionAppend(UploadRequest<VoidSerializer, Files.UploadSessionAppendErrorSerializer>)
23-
case uploadSessionFinish(UploadRequest<Files.FileMetadataSerializer, Files.UploadSessionFinishErrorSerializer>)
24-
case uploadSessionStart(UploadRequest<Files.UploadSessionStartResultSerializer, Files.UploadSessionStartErrorSerializer>)
25-
case docsCreate(UploadRequest<Paper.PaperDocCreateUpdateResultSerializer, Paper.PaperDocCreateErrorSerializer>)
26-
case docsDownload(DownloadRequestFile<Paper.PaperDocExportResultSerializer, Paper.DocLookupErrorSerializer>)
27-
case docsUpdate(UploadRequest<Paper.PaperDocCreateUpdateResultSerializer, Paper.PaperDocUpdateErrorSerializer>)
28-
case getSharedLinkFile(DownloadRequestFile<Sharing.SharedLinkMetadataSerializer, Sharing.GetSharedLinkFileErrorSerializer>)
11+
case files_alphaUpload(UploadRequest<Files.FileMetadataSerializer, Files.UploadErrorSerializer>)
12+
case files_download(DownloadRequestFile<Files.FileMetadataSerializer, Files.DownloadErrorSerializer>)
13+
case files_downloadZip(DownloadRequestFile<Files.DownloadZipResultSerializer, Files.DownloadZipErrorSerializer>)
14+
case files_export(DownloadRequestFile<Files.ExportResultSerializer, Files.ExportErrorSerializer>)
15+
case files_getPreview(DownloadRequestFile<Files.FileMetadataSerializer, Files.PreviewErrorSerializer>)
16+
case files_getThumbnail(DownloadRequestFile<Files.FileMetadataSerializer, Files.ThumbnailErrorSerializer>)
17+
case files_getThumbnailV2(DownloadRequestFile<Files.PreviewResultSerializer, Files.ThumbnailV2ErrorSerializer>)
18+
case files_paperCreate(UploadRequest<Files.PaperCreateResultSerializer, Files.PaperCreateErrorSerializer>)
19+
case files_paperUpdate(UploadRequest<Files.PaperUpdateResultSerializer, Files.PaperUpdateErrorSerializer>)
20+
case files_upload(UploadRequest<Files.FileMetadataSerializer, Files.UploadErrorSerializer>)
21+
case files_uploadSessionAppendV2(UploadRequest<VoidSerializer, Files.UploadSessionAppendErrorSerializer>)
22+
case files_uploadSessionAppend(UploadRequest<VoidSerializer, Files.UploadSessionAppendErrorSerializer>)
23+
case files_uploadSessionFinish(UploadRequest<Files.FileMetadataSerializer, Files.UploadSessionFinishErrorSerializer>)
24+
case files_uploadSessionStart(UploadRequest<Files.UploadSessionStartResultSerializer, Files.UploadSessionStartErrorSerializer>)
25+
case paper_docsCreate(UploadRequest<Paper.PaperDocCreateUpdateResultSerializer, Paper.PaperDocCreateErrorSerializer>)
26+
case paper_docsDownload(DownloadRequestFile<Paper.PaperDocExportResultSerializer, Paper.DocLookupErrorSerializer>)
27+
case paper_docsUpdate(UploadRequest<Paper.PaperDocCreateUpdateResultSerializer, Paper.PaperDocUpdateErrorSerializer>)
28+
case sharing_getSharedLinkFile(DownloadRequestFile<Sharing.SharedLinkMetadataSerializer, Sharing.GetSharedLinkFileErrorSerializer>)
2929

3030
public var description: String {
3131
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"
32+
case .files_alphaUpload:
33+
return "files/alpha/upload"
34+
case .files_download:
35+
return "files/download"
36+
case .files_downloadZip:
37+
return "files/download_zip"
38+
case .files_export:
39+
return "files/export"
40+
case .files_getPreview:
41+
return "files/get_preview"
42+
case .files_getThumbnail:
43+
return "files/get_thumbnail"
44+
case .files_getThumbnailV2:
45+
return "files/get_thumbnail_v2"
46+
case .files_paperCreate:
47+
return "files/paper/create"
48+
case .files_paperUpdate:
49+
return "files/paper/update"
50+
case .files_upload:
51+
return "files/upload"
52+
case .files_uploadSessionAppendV2:
53+
return "files/upload_session/append_v2"
54+
case .files_uploadSessionAppend:
55+
return "files/upload_session/append"
56+
case .files_uploadSessionFinish:
57+
return "files/upload_session/finish"
58+
case .files_uploadSessionStart:
59+
return "files/upload_session/start"
60+
case .paper_docsCreate:
61+
return "paper/docs/create"
62+
case .paper_docsDownload:
63+
return "paper/docs/download"
64+
case .paper_docsUpdate:
65+
return "paper/docs/update"
66+
case .sharing_getSharedLinkFile:
67+
return "sharing/get_shared_link_file"
6868
}
6969
}
7070
}

Source/SwiftyDropbox/Shared/Generated/ReconnectionHelpers.swift

+40-37
Original file line numberDiff line numberDiff line change
@@ -4,166 +4,169 @@
44

55
import Foundation
66

7+
// The case string below must match those created by ReconnectionHelpers+Handwritten.swift using
8+
// the route name and namespace as formatted for the generated `Route` object in SwiftTypes.jinja
9+
// Format: "<namespace>/<route_name>" e.g., "files/upload_session/append_v2" for Files.uploadSessionAppendV2
710
enum ReconnectionHelpers: ReconnectionHelpersShared {
811
static func rebuildRequest(apiRequest: ApiRequest, client: DropboxTransportClientInternal) throws -> DropboxBaseRequestBox {
912
let info = try persistedRequestInfo(from: apiRequest)
1013

11-
switch info.routeName {
12-
case "alpha/upload":
13-
return .alphaUpload(
14+
switch info.namespaceRouteName {
15+
case "files/alpha/upload":
16+
return .files_alphaUpload(
1417
rebuildRequest(
1518
apiRequest: apiRequest,
1619
info: info,
1720
route: Files.alphaUpload,
1821
client: client
1922
)
2023
)
21-
case "download":
22-
return .download(
24+
case "files/download":
25+
return .files_download(
2326
rebuildRequest(
2427
apiRequest: apiRequest,
2528
info: info,
2629
route: Files.download,
2730
client: client
2831
)
2932
)
30-
case "download_zip":
31-
return .downloadZip(
33+
case "files/download_zip":
34+
return .files_downloadZip(
3235
rebuildRequest(
3336
apiRequest: apiRequest,
3437
info: info,
3538
route: Files.downloadZip,
3639
client: client
3740
)
3841
)
39-
case "export":
40-
return .export(
42+
case "files/export":
43+
return .files_export(
4144
rebuildRequest(
4245
apiRequest: apiRequest,
4346
info: info,
4447
route: Files.export,
4548
client: client
4649
)
4750
)
48-
case "get_preview":
49-
return .getPreview(
51+
case "files/get_preview":
52+
return .files_getPreview(
5053
rebuildRequest(
5154
apiRequest: apiRequest,
5255
info: info,
5356
route: Files.getPreview,
5457
client: client
5558
)
5659
)
57-
case "get_thumbnail":
58-
return .getThumbnail(
60+
case "files/get_thumbnail":
61+
return .files_getThumbnail(
5962
rebuildRequest(
6063
apiRequest: apiRequest,
6164
info: info,
6265
route: Files.getThumbnail,
6366
client: client
6467
)
6568
)
66-
case "get_thumbnail_v2":
67-
return .getThumbnailV2(
69+
case "files/get_thumbnail_v2":
70+
return .files_getThumbnailV2(
6871
rebuildRequest(
6972
apiRequest: apiRequest,
7073
info: info,
7174
route: Files.getThumbnailV2,
7275
client: client
7376
)
7477
)
75-
case "paper/create":
76-
return .paperCreate(
78+
case "files/paper/create":
79+
return .files_paperCreate(
7780
rebuildRequest(
7881
apiRequest: apiRequest,
7982
info: info,
8083
route: Files.paperCreate,
8184
client: client
8285
)
8386
)
84-
case "paper/update":
85-
return .paperUpdate(
87+
case "files/paper/update":
88+
return .files_paperUpdate(
8689
rebuildRequest(
8790
apiRequest: apiRequest,
8891
info: info,
8992
route: Files.paperUpdate,
9093
client: client
9194
)
9295
)
93-
case "upload":
94-
return .upload(
96+
case "files/upload":
97+
return .files_upload(
9598
rebuildRequest(
9699
apiRequest: apiRequest,
97100
info: info,
98101
route: Files.upload,
99102
client: client
100103
)
101104
)
102-
case "upload_session/append_v2":
103-
return .uploadSessionAppendV2(
105+
case "files/upload_session/append_v2":
106+
return .files_uploadSessionAppendV2(
104107
rebuildRequest(
105108
apiRequest: apiRequest,
106109
info: info,
107110
route: Files.uploadSessionAppendV2,
108111
client: client
109112
)
110113
)
111-
case "upload_session/append":
112-
return .uploadSessionAppend(
114+
case "files/upload_session/append":
115+
return .files_uploadSessionAppend(
113116
rebuildRequest(
114117
apiRequest: apiRequest,
115118
info: info,
116119
route: Files.uploadSessionAppend,
117120
client: client
118121
)
119122
)
120-
case "upload_session/finish":
121-
return .uploadSessionFinish(
123+
case "files/upload_session/finish":
124+
return .files_uploadSessionFinish(
122125
rebuildRequest(
123126
apiRequest: apiRequest,
124127
info: info,
125128
route: Files.uploadSessionFinish,
126129
client: client
127130
)
128131
)
129-
case "upload_session/start":
130-
return .uploadSessionStart(
132+
case "files/upload_session/start":
133+
return .files_uploadSessionStart(
131134
rebuildRequest(
132135
apiRequest: apiRequest,
133136
info: info,
134137
route: Files.uploadSessionStart,
135138
client: client
136139
)
137140
)
138-
case "docs/create":
139-
return .docsCreate(
141+
case "paper/docs/create":
142+
return .paper_docsCreate(
140143
rebuildRequest(
141144
apiRequest: apiRequest,
142145
info: info,
143146
route: Paper.docsCreate,
144147
client: client
145148
)
146149
)
147-
case "docs/download":
148-
return .docsDownload(
150+
case "paper/docs/download":
151+
return .paper_docsDownload(
149152
rebuildRequest(
150153
apiRequest: apiRequest,
151154
info: info,
152155
route: Paper.docsDownload,
153156
client: client
154157
)
155158
)
156-
case "docs/update":
157-
return .docsUpdate(
159+
case "paper/docs/update":
160+
return .paper_docsUpdate(
158161
rebuildRequest(
159162
apiRequest: apiRequest,
160163
info: info,
161164
route: Paper.docsUpdate,
162165
client: client
163166
)
164167
)
165-
case "get_shared_link_file":
166-
return .getSharedLinkFile(
168+
case "sharing/get_shared_link_file":
169+
return .sharing_getSharedLinkFile(
167170
rebuildRequest(
168171
apiRequest: apiRequest,
169172
info: info,

Source/SwiftyDropbox/Shared/Handwritten/ReconnectionHelpers+Handwritten.swift

+7-3
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,19 @@ extension ReconnectionHelpers {
141141
return try JSONDecoder().decode(Self.self, from: jsonData)
142142
}
143143

144-
var routeName: String {
144+
var baseInfo: PersistedRequestInfoBaseInfo {
145145
switch self {
146146
case .upload(let info):
147-
return info.routeName
147+
return info
148148
case .downloadFile(let downloadInfo):
149-
return downloadInfo.routeName
149+
return downloadInfo
150150
}
151151
}
152152

153+
var namespaceRouteName: String {
154+
"\(baseInfo.routeNamespace)/\(baseInfo.routeName)"
155+
}
156+
153157
var clientProvidedInfo: String? {
154158
switch self {
155159
case .upload(let info):

Source/SwiftyDropboxObjC/Shared/Generated/DBXDropboxAppBaseRequestBox.swift

+2-3
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ import SwiftyDropbox
99

1010
extension DropboxAppBaseRequestBox {
1111
var objc: DBXRequest {
12-
switch self {
13-
case .getThumbnailV2(let swift):
12+
if case .files_getThumbnailV2(let swift) = self {
1413
return DBXFilesGetThumbnailDownloadRequestFileV2(swift: swift)
15-
default:
14+
} else {
1615
fatalError("For Obj-C compatibility, add this route to the Objective-C compatibility module allow-list")
1716
}
1817
}

0 commit comments

Comments
 (0)