Skip to content

Commit db45a33

Browse files
authored
Fix struct the Router parameter for get URLRequest (#6)
* wip * fix document
1 parent 2264379 commit db45a33

File tree

4 files changed

+13
-10
lines changed

4 files changed

+13
-10
lines changed
Binary file not shown.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,13 +236,13 @@ enum APIs: RouterProtocol {
236236
}
237237

238238
// http://api.github.com/orgs/organization/repos
239-
let listOrganizationRepositoriesUrl = APIs.listOrganizationRepositories(organizationName: "organization").router?.request.urlRequest?.url
239+
let listOrganizationRepositoriesUrl = APIs.listOrganizationRepositories(organizationName: "organization").request.urlRequest?.url
240240

241241
// http://api.github.com/search/repositories?q=apirouter
242-
let searchRepositoriesUrl = APIs.searchRepositories(query: "apirouter").router?.request.urlRequest?.url
242+
let searchRepositoriesUrl = APIs.searchRepositories(query: "apirouter").request.urlRequest?.url
243243

244244
let repositoryInfo: APIs.RepositoryInfo = .init(name: "Hello-World", description: "This is your first repository", homePage: "https://github.com", private: false, hasIssues: true, hasProjects: true, hasWiki: false)
245-
let request = APIs.createAnOrganizationRepository(organizationName: "SomeOrganization", repositoryInfo: repositoryInfo).router?.request.urlRequest
245+
let request = APIs.createAnOrganizationRepository(organizationName: "SomeOrganization", repositoryInfo: repositoryInfo).request.urlRequest
246246

247247
URLSession.shared.dataTask(with: request) { data, response, error in
248248
...

Sources/APIRouter/RouterBuilder.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public extension Router {
5252

5353
public struct Router: _RouterProtocol {
5454
var request: Request
55+
public var urlRequest: URLRequest?
5556

5657
public init(_ request: Request) {
5758
self.request = request
@@ -76,6 +77,8 @@ public struct Request: _RouterProtocol {
7677
router.request.urlRequest?.httpBody = self.urlRequest?.httpBody
7778
router.request.urlRequest?.httpMethod = self.urlRequest?.httpMethod
7879
router.request.urlRequest?.allHTTPHeaderFields = self.urlRequest?.allHTTPHeaderFields
80+
81+
router.urlRequest = router.request.urlRequest
7982
}
8083

8184
private func buildUrl(_ router: inout Router) -> Foundation.URL? {
@@ -99,6 +102,6 @@ public struct BaseURL: _RouterProtocol {
99102
}
100103

101104
public func build(_ router: inout Router) {
102-
router.request.urlRequest = URLRequest(url: Foundation.URL(string: self.url)!)
105+
router.request = Request(URLRequest(url: Foundation.URL(string: self.url)!))
103106
}
104107
}

Tests/APIRouterTests/RouterBuilderTests.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import XCTest
44

55
final class RouterBuilderTests: XCTestCase {
66
func testGeneratedRouterWithRouterBuilder() {
7-
let request = Router {
7+
let router = Router {
88
Request {
99
Body {
1010
Param("VALUE", forKey: "KEY")
@@ -30,13 +30,13 @@ final class RouterBuilderTests: XCTestCase {
3030
urlRequest.httpMethod = "GET"
3131
urlRequest.allHTTPHeaderFields = header
3232

33-
guard let request = request?.request.urlRequest else { return }
33+
guard let request = router?.urlRequest else { return }
3434

3535
XCTAssertEqual(request, urlRequest)
3636
}
3737

3838
func testGeneratedRouterWithRouterBuilderUsingBaseURL() {
39-
let request = Router {
39+
let router = Router {
4040
BaseURL("https://www.baseurl.com")
4141
Request {
4242
Body {
@@ -61,7 +61,7 @@ final class RouterBuilderTests: XCTestCase {
6161
urlRequest.httpMethod = "GET"
6262
urlRequest.allHTTPHeaderFields = header
6363

64-
guard let request = request?.request.urlRequest else { return }
64+
guard let request = router?.urlRequest else { return }
6565

6666
XCTAssertEqual(request, urlRequest)
6767
}
@@ -121,8 +121,8 @@ final class RouterBuilderTests: XCTestCase {
121121
optionTwoUrlRequest.httpMethod = "GET"
122122
optionTwoUrlRequest.allHTTPHeaderFields = header
123123

124-
guard let optionOneRequest = APIRouter.one.router?.request.urlRequest else { return }
125-
guard let optionTwoRequest = APIRouter.two.router?.request.urlRequest else { return }
124+
guard let optionOneRequest = APIRouter.one.router?.urlRequest else { return }
125+
guard let optionTwoRequest = APIRouter.two.router?.urlRequest else { return }
126126

127127
XCTAssertEqual(optionOneRequest, optionOneUrlRequest)
128128
XCTAssertEqual(optionTwoRequest, optionTwoUrlRequest)

0 commit comments

Comments
 (0)