Skip to content

Commit 1b19ce1

Browse files
authored
Use RequestKit 3 and use Result instead of Response (nerdishbynature#132)
* Use RequestKit 3 and use Result instead of Response * Update Xcode
1 parent e560185 commit 1b19ce1

19 files changed

+127
-124
lines changed

.github/workflows/main.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ on:
1111
jobs:
1212
macOS:
1313
name: Test macOS
14-
runs-on: macOS-latest
14+
runs-on: macOS-11
1515
env:
16-
DEVELOPER_DIR: /Applications/Xcode_12.3.app/Contents/Developer
16+
DEVELOPER_DIR: /Applications/Xcode_13.0.app/Contents/Developer
1717
strategy:
1818
matrix:
1919
include:
@@ -37,7 +37,7 @@ jobs:
3737
spm:
3838
name: Test with SPM
3939
runs-on: ubuntu-latest
40-
container: swift:5.3-focal
40+
container: swift:5.5-focal
4141
steps:
4242
- uses: actions/checkout@v2
4343
- name: SPM Test

OctoKit/Follow.swift

+11-11
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ public extension Octokit {
1111
- parameter completion: Callback for the outcome of the fetch.
1212
*/
1313
@discardableResult
14-
func myFollowers(_ session: RequestKitURLSession = URLSession.shared, completion: @escaping (_ response: Response<[User]>) -> Void) -> URLSessionDataTaskProtocol? {
14+
func myFollowers(_ session: RequestKitURLSession = URLSession.shared, completion: @escaping (_ response: Result<[User], Error>) -> Void) -> URLSessionDataTaskProtocol? {
1515
let router = FollowRouter.readAuthenticatedFollowers(configuration)
1616
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [User].self) { users, error in
1717
if let error = error {
18-
completion(Response.failure(error))
18+
completion(.failure(error))
1919
} else {
2020
if let users = users {
21-
completion(Response.success(users))
21+
completion(.success(users))
2222
}
2323
}
2424
}
@@ -31,14 +31,14 @@ public extension Octokit {
3131
- parameter completion: Callback for the outcome of the fetch.
3232
*/
3333
@discardableResult
34-
func followers(_ session: RequestKitURLSession = URLSession.shared, name: String, completion: @escaping (_ response: Response<[User]>) -> Void) -> URLSessionDataTaskProtocol? {
34+
func followers(_ session: RequestKitURLSession = URLSession.shared, name: String, completion: @escaping (_ response: Result<[User], Error>) -> Void) -> URLSessionDataTaskProtocol? {
3535
let router = FollowRouter.readFollowers(name, configuration)
3636
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [User].self) { users, error in
3737
if let error = error {
38-
completion(Response.failure(error))
38+
completion(.failure(error))
3939
} else {
4040
if let users = users {
41-
completion(Response.success(users))
41+
completion(.success(users))
4242
}
4343
}
4444
}
@@ -50,11 +50,11 @@ public extension Octokit {
5050
- parameter completion: Callback for the outcome of the fetch.
5151
*/
5252
@discardableResult
53-
func myFollowing(_ session: RequestKitURLSession = URLSession.shared, completion: @escaping (_ response: Response<[User]>) -> Void) -> URLSessionDataTaskProtocol? {
53+
func myFollowing(_ session: RequestKitURLSession = URLSession.shared, completion: @escaping (_ response: Result<[User], Error>) -> Void) -> URLSessionDataTaskProtocol? {
5454
let router = FollowRouter.readAuthenticatedFollowing(configuration)
5555
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [User].self) { users, error in
5656
if let error = error {
57-
completion(Response.failure(error))
57+
completion(.failure(error))
5858
} else {
5959
if let users = users {
6060
completion(.success(users))
@@ -70,14 +70,14 @@ public extension Octokit {
7070
- parameter completion: Callback for the outcome of the fetch.
7171
*/
7272
@discardableResult
73-
func following(_ session: RequestKitURLSession = URLSession.shared, name: String, completion: @escaping (_ response: Response<[User]>) -> Void) -> URLSessionDataTaskProtocol? {
73+
func following(_ session: RequestKitURLSession = URLSession.shared, name: String, completion: @escaping (_ response: Result<[User], Error>) -> Void) -> URLSessionDataTaskProtocol? {
7474
let router = FollowRouter.readFollowing(name, configuration)
7575
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [User].self) { users, error in
7676
if let error = error {
77-
completion(Response.failure(error))
77+
completion(.failure(error))
7878
} else {
7979
if let users = users {
80-
completion(Response.success(users))
80+
completion(.success(users))
8181
}
8282
}
8383
}

OctoKit/Gist.swift

+15-15
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ public extension Octokit {
5656
*/
5757
@discardableResult
5858
func myGists(_ session: RequestKitURLSession = URLSession.shared, page: String = "1", perPage: String = "100",
59-
completion: @escaping (_ response: Response<[Gist]>) -> Void) -> URLSessionDataTaskProtocol?
59+
completion: @escaping (_ response: Result<[Gist], Error>) -> Void) -> URLSessionDataTaskProtocol?
6060
{
6161
let router = GistRouter.readAuthenticatedGists(configuration, page, perPage)
6262
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [Gist].self) { gists, error in
6363
if let error = error {
64-
completion(Response.failure(error))
64+
completion(.failure(error))
6565
} else {
6666
if let gists = gists {
67-
completion(Response.success(gists))
67+
completion(.success(gists))
6868
}
6969
}
7070
}
@@ -80,15 +80,15 @@ public extension Octokit {
8080
*/
8181
@discardableResult
8282
func gists(_ session: RequestKitURLSession = URLSession.shared, owner: String, page: String = "1", perPage: String = "100",
83-
completion: @escaping (_ response: Response<[Gist]>) -> Void) -> URLSessionDataTaskProtocol?
83+
completion: @escaping (_ response: Result<[Gist], Error>) -> Void) -> URLSessionDataTaskProtocol?
8484
{
8585
let router = GistRouter.readGists(configuration, owner, page, perPage)
8686
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [Gist].self) { gists, error in
8787
if let error = error {
88-
completion(Response.failure(error))
88+
completion(.failure(error))
8989
} else {
9090
if let gists = gists {
91-
completion(Response.success(gists))
91+
completion(.success(gists))
9292
}
9393
}
9494
}
@@ -101,14 +101,14 @@ public extension Octokit {
101101
- parameter completion: Callback for the outcome of the fetch.
102102
*/
103103
@discardableResult
104-
func gist(_ session: RequestKitURLSession = URLSession.shared, id: String, completion: @escaping (_ response: Response<Gist>) -> Void) -> URLSessionDataTaskProtocol? {
104+
func gist(_ session: RequestKitURLSession = URLSession.shared, id: String, completion: @escaping (_ response: Result<Gist, Error>) -> Void) -> URLSessionDataTaskProtocol? {
105105
let router = GistRouter.readGist(configuration, id)
106106
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: Gist.self) { gist, error in
107107
if let error = error {
108-
completion(Response.failure(error))
108+
completion(.failure(error))
109109
} else {
110110
if let gist = gist {
111-
completion(Response.success(gist))
111+
completion(.success(gist))
112112
}
113113
}
114114
}
@@ -129,17 +129,17 @@ public extension Octokit {
129129
filename: String,
130130
fileContent: String,
131131
publicAccess: Bool,
132-
completion: @escaping (_ response: Response<Gist>) -> Void) -> URLSessionDataTaskProtocol?
132+
completion: @escaping (_ response: Result<Gist, Error>) -> Void) -> URLSessionDataTaskProtocol?
133133
{
134134
let router = GistRouter.postGistFile(configuration, description, filename, fileContent, publicAccess)
135135
let decoder = JSONDecoder()
136136
decoder.dateDecodingStrategy = .formatted(Time.rfc3339DateFormatter)
137137
return router.post(session, decoder: decoder, expectedResultType: Gist.self) { gist, error in
138138
if let error = error {
139-
completion(Response.failure(error))
139+
completion(.failure(error))
140140
} else {
141141
if let gist = gist {
142-
completion(Response.success(gist))
142+
completion(.success(gist))
143143
}
144144
}
145145
}
@@ -160,17 +160,17 @@ public extension Octokit {
160160
description: String,
161161
filename: String,
162162
fileContent: String,
163-
completion: @escaping (_ response: Response<Gist>) -> Void) -> URLSessionDataTaskProtocol?
163+
completion: @escaping (_ response: Result<Gist, Error>) -> Void) -> URLSessionDataTaskProtocol?
164164
{
165165
let router = GistRouter.patchGistFile(configuration, id, description, filename, fileContent)
166166
let decoder = JSONDecoder()
167167
decoder.dateDecodingStrategy = .formatted(Time.rfc3339DateFormatter)
168168
return router.post(session, decoder: decoder, expectedResultType: Gist.self) { gist, error in
169169
if let error = error {
170-
completion(Response.failure(error))
170+
completion(.failure(error))
171171
} else {
172172
if let gist = gist {
173-
completion(Response.success(gist))
173+
completion(.success(gist))
174174
}
175175
}
176176
}

OctoKit/Issue.swift

+24-24
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,15 @@ public extension Octokit {
9494
state: Openness = .open,
9595
page: String = "1",
9696
perPage: String = "100",
97-
completion: @escaping (_ response: Response<[Issue]>) -> Void) -> URLSessionDataTaskProtocol?
97+
completion: @escaping (_ response: Result<[Issue], Error>) -> Void) -> URLSessionDataTaskProtocol?
9898
{
9999
let router = IssueRouter.readAuthenticatedIssues(configuration, page, perPage, state)
100100
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [Issue].self) { issues, error in
101101
if let error = error {
102-
completion(Response.failure(error))
102+
completion(.failure(error))
103103
} else {
104104
if let issues = issues {
105-
completion(Response.success(issues))
105+
completion(.success(issues))
106106
}
107107
}
108108
}
@@ -118,15 +118,15 @@ public extension Octokit {
118118
*/
119119
@discardableResult
120120
func issue(_ session: RequestKitURLSession = URLSession.shared, owner: String, repository: String, number: Int,
121-
completion: @escaping (_ response: Response<Issue>) -> Void) -> URLSessionDataTaskProtocol?
121+
completion: @escaping (_ response: Result<Issue, Error>) -> Void) -> URLSessionDataTaskProtocol?
122122
{
123123
let router = IssueRouter.readIssue(configuration, owner, repository, number)
124124
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: Issue.self) { issue, error in
125125
if let error = error {
126-
completion(Response.failure(error))
126+
completion(.failure(error))
127127
} else {
128128
if let issue = issue {
129-
completion(Response.success(issue))
129+
completion(.success(issue))
130130
}
131131
}
132132
}
@@ -149,15 +149,15 @@ public extension Octokit {
149149
state: Openness = .open,
150150
page: String = "1",
151151
perPage: String = "100",
152-
completion: @escaping (_ response: Response<[Issue]>) -> Void) -> URLSessionDataTaskProtocol?
152+
completion: @escaping (_ response: Result<[Issue], Error>) -> Void) -> URLSessionDataTaskProtocol?
153153
{
154154
let router = IssueRouter.readIssues(configuration, owner, repository, page, perPage, state)
155155
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [Issue].self) { issues, error in
156156
if let error = error {
157-
completion(Response.failure(error))
157+
completion(.failure(error))
158158
} else {
159159
if let issues = issues {
160-
completion(Response.success(issues))
160+
completion(.success(issues))
161161
}
162162
}
163163
}
@@ -182,17 +182,17 @@ public extension Octokit {
182182
body: String? = nil,
183183
assignee: String? = nil,
184184
labels: [String] = [],
185-
completion: @escaping (_ response: Response<Issue>) -> Void) -> URLSessionDataTaskProtocol?
185+
completion: @escaping (_ response: Result<Issue, Error>) -> Void) -> URLSessionDataTaskProtocol?
186186
{
187187
let router = IssueRouter.postIssue(configuration, owner, repository, title, body, assignee, labels)
188188
let decoder = JSONDecoder()
189189
decoder.dateDecodingStrategy = .formatted(Time.rfc3339DateFormatter)
190190
return router.post(session, decoder: decoder, expectedResultType: Issue.self) { issue, error in
191191
if let error = error {
192-
completion(Response.failure(error))
192+
completion(.failure(error))
193193
} else {
194194
if let issue = issue {
195-
completion(Response.success(issue))
195+
completion(.success(issue))
196196
}
197197
}
198198
}
@@ -219,15 +219,15 @@ public extension Octokit {
219219
body: String? = nil,
220220
assignee: String? = nil,
221221
state: Openness? = nil,
222-
completion: @escaping (_ response: Response<Issue>) -> Void) -> URLSessionDataTaskProtocol?
222+
completion: @escaping (_ response: Result<Issue, Error>) -> Void) -> URLSessionDataTaskProtocol?
223223
{
224224
let router = IssueRouter.patchIssue(configuration, owner, repository, number, title, body, assignee, state)
225225
return router.post(session, expectedResultType: Issue.self) { issue, error in
226226
if let error = error {
227-
completion(Response.failure(error))
227+
completion(.failure(error))
228228
} else {
229229
if let issue = issue {
230-
completion(Response.success(issue))
230+
completion(.success(issue))
231231
}
232232
}
233233
}
@@ -243,17 +243,17 @@ public extension Octokit {
243243
/// - completion: Callback for the comment that is created.
244244
@discardableResult
245245
func commentIssue(_ session: RequestKitURLSession = URLSession.shared, owner: String, repository: String, number: Int, body: String,
246-
completion: @escaping (_ response: Response<Comment>) -> Void) -> URLSessionDataTaskProtocol?
246+
completion: @escaping (_ response: Result<Comment, Error>) -> Void) -> URLSessionDataTaskProtocol?
247247
{
248248
let router = IssueRouter.commentIssue(configuration, owner, repository, number, body)
249249
let decoder = JSONDecoder()
250250
decoder.dateDecodingStrategy = .formatted(Time.rfc3339DateFormatter)
251251
return router.post(session, decoder: decoder, expectedResultType: Comment.self) { issue, error in
252252
if let error = error {
253-
completion(Response.failure(error))
253+
completion(.failure(error))
254254
} else {
255255
if let issue = issue {
256-
completion(Response.success(issue))
256+
completion(.success(issue))
257257
}
258258
}
259259
}
@@ -275,15 +275,15 @@ public extension Octokit {
275275
number: Int,
276276
page: String = "1",
277277
perPage: String = "100",
278-
completion: @escaping (_ response: Response<[Comment]>) -> Void) -> URLSessionDataTaskProtocol?
278+
completion: @escaping (_ response: Result<[Comment], Error>) -> Void) -> URLSessionDataTaskProtocol?
279279
{
280280
let router = IssueRouter.readIssueComments(configuration, owner, repository, number, page, perPage)
281281
return router.load(session, dateDecodingStrategy: .formatted(Time.rfc3339DateFormatter), expectedResultType: [Comment].self) { comments, error in
282282
if let error = error {
283-
completion(Response.failure(error))
283+
completion(.failure(error))
284284
} else {
285285
if let comments = comments {
286-
completion(Response.success(comments))
286+
completion(.success(comments))
287287
}
288288
}
289289
}
@@ -299,17 +299,17 @@ public extension Octokit {
299299
/// - completion: Callback for the comment that is created.
300300
@discardableResult
301301
func patchIssueComment(_ session: RequestKitURLSession = URLSession.shared, owner: String, repository: String, number: Int, body: String,
302-
completion: @escaping (_ response: Response<Comment>) -> Void) -> URLSessionDataTaskProtocol?
302+
completion: @escaping (_ response: Result<Comment, Error>) -> Void) -> URLSessionDataTaskProtocol?
303303
{
304304
let router = IssueRouter.patchIssueComment(configuration, owner, repository, number, body)
305305
let decoder = JSONDecoder()
306306
decoder.dateDecodingStrategy = .formatted(Time.rfc3339DateFormatter)
307307
return router.post(session, decoder: decoder, expectedResultType: Comment.self) { issue, error in
308308
if let error = error {
309-
completion(Response.failure(error))
309+
completion(.failure(error))
310310
} else {
311311
if let issue = issue {
312-
completion(Response.success(issue))
312+
completion(.success(issue))
313313
}
314314
}
315315
}

0 commit comments

Comments
 (0)