Skip to content

Commit 4641a38

Browse files
committed
Add all unit tests.
1 parent b623493 commit 4641a38

File tree

3 files changed

+609
-13
lines changed

3 files changed

+609
-13
lines changed

Sources/PodcastAPI/ApiResponse.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@ import SwiftyJSON
44
public class ApiResponse {
55
var data: Data?
66
var response: HTTPURLResponse?
7+
var request: URLRequest?
78
var httpError: Error?
89
public var error: PodcastApiError?
910

10-
public init(data: Data?, response: URLResponse?, httpError: Error?, apiError: PodcastApiError? ) {
11+
public init(request: URLRequest?, data: Data?, response: URLResponse?, httpError: Error?, apiError: PodcastApiError? ) {
1112
self.data = data
1213
self.response = response as? HTTPURLResponse
1314
self.httpError = httpError
1415
self.error = apiError
16+
self.request = request
1517

1618
self.checkAndSetApiError()
1719
}

Sources/PodcastAPI/PodcastAPI.swift

+12-11
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import Foundation
22

33
let BASE_URL_PROD = "https://listen-api.listennotes.com/api/v2"
44
let BASE_URL_TEST = "https://listen-api-test.listennotes.com/api/v2"
5-
5+
let DEFAULT_USER_AGENT = "podcast-api-swift"
66

77
public class Client {
88
private var apiKey: String
99
private var baseUrl: String = BASE_URL_PROD
10-
private var userAgent: String = "podcast-api-swift"
10+
private var userAgent: String = DEFAULT_USER_AGENT
1111
private var responseTimeoutSec: Int = 30
1212
private var synchronousRequest: Bool = false
1313

@@ -65,7 +65,7 @@ public class Client {
6565
return key != "id"
6666
}, completion: completion)
6767
} else {
68-
completion(ApiResponse(data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
68+
completion(ApiResponse(request: nil, data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
6969
}
7070
}
7171

@@ -76,7 +76,7 @@ public class Client {
7676
return key != "id"
7777
}, completion: completion)
7878
} else {
79-
completion(ApiResponse(data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
79+
completion(ApiResponse(request: nil, data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
8080
}
8181
}
8282

@@ -87,7 +87,7 @@ public class Client {
8787
return key != "id"
8888
}, completion: completion)
8989
} else {
90-
completion(ApiResponse(data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
90+
completion(ApiResponse(request: nil, data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
9191
}
9292
}
9393

@@ -114,7 +114,7 @@ public class Client {
114114
return key != "id"
115115
}, completion: completion)
116116
} else {
117-
completion(ApiResponse(data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
117+
completion(ApiResponse(request: nil, data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
118118
}
119119
}
120120

@@ -125,7 +125,7 @@ public class Client {
125125
return key != "id"
126126
}, completion: completion)
127127
} else {
128-
completion(ApiResponse(data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
128+
completion(ApiResponse(request: nil, data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
129129
}
130130
}
131131

@@ -136,7 +136,7 @@ public class Client {
136136
return key != "id"
137137
}, completion: completion)
138138
} else {
139-
completion(ApiResponse(data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
139+
completion(ApiResponse(request: nil, data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
140140
}
141141
}
142142

@@ -155,7 +155,7 @@ public class Client {
155155
return key != "id"
156156
}, completion: completion)
157157
} else {
158-
completion(ApiResponse(data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
158+
completion(ApiResponse(request: nil, data: nil, response: nil, httpError: nil, apiError: PodcastApiError.invalidRequestError))
159159
}
160160
}
161161

@@ -184,18 +184,19 @@ public class Client {
184184
}
185185
request.httpMethod = method
186186
request.setValue(self.apiKey, forHTTPHeaderField: "X-ListenAPI-Key")
187+
request.setValue(self.userAgent, forHTTPHeaderField: "User-Agent")
187188
request.timeoutInterval = TimeInterval(self.responseTimeoutSec)
188189

189190
let sema: DispatchSemaphore? = self.synchronousRequest ? DispatchSemaphore(value: 0) : nil;
190191
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
191192
if let error = error {
192-
completion?(ApiResponse(data: data, response: response, httpError: error, apiError: PodcastApiError.apiConnectionError))
193+
completion?(ApiResponse(request: request, data: data, response: response, httpError: error, apiError: PodcastApiError.apiConnectionError))
193194
if let sema = sema {
194195
sema.signal()
195196
}
196197
return
197198
}
198-
completion?(ApiResponse(data: data, response: response, httpError: error, apiError: nil))
199+
completion?(ApiResponse(request: request, data: data, response: response, httpError: error, apiError: nil))
199200
if let sema = sema {
200201
sema.signal()
201202
}

0 commit comments

Comments
 (0)