Skip to content
This repository was archived by the owner on Apr 20, 2024. It is now read-only.

Commit 2cc5889

Browse files
Merge pull request #4 from valen90/feature/vapor-two
Feature/vapor two
2 parents f6d022c + 0598116 commit 2cc5889

File tree

5 files changed

+44
-17
lines changed

5 files changed

+44
-17
lines changed

.travis.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
os:
22
- linux
3-
- osx
43
language: generic
54
sudo: required
65
dist: trusty
7-
osx_image: xcode8
86
script:
9-
- eval "$(curl -sL https://swift.vapor.sh/ci)"
7+
- eval "$(curl -sL https://gist.githubusercontent.com/BrettRToomey/1256d98cce5546c696cc68d9f61ad46f/raw/d5fb266a17f26c41b59fd00867a3a2474c3efee3/TravisSwift31)"
108
- eval "$(curl -sL https://swift.vapor.sh/codecov)"

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ import PackageDescription
33
let package = Package(
44
name: "Gatekeeper",
55
dependencies: [
6-
.Package(url: "https://github.com/vapor/vapor.git", majorVersion: 1)
6+
.Package(url: "https://github.com/vapor/vapor.git", majorVersion: 2)
77
]
88
)

Sources/RateLimiter.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ public struct RateLimiter: Middleware {
4747

4848
public func respond(to request: Request, chainingTo next: Responder) throws -> Response {
4949
guard let peer = request.peerAddress?.address() else {
50-
throw Abort.custom(status: .forbidden, message: "Unable to verify peer.")
50+
throw Abort(
51+
.forbidden,
52+
metadata: nil,
53+
reason: "Unable to verify peer."
54+
)
5155
}
5256

5357
var entry = try cache.get(peer)
@@ -73,7 +77,11 @@ public struct RateLimiter: Middleware {
7377

7478
requestsLeft -= 1
7579
guard requestsLeft >= 0 else {
76-
throw Abort.custom(status: .tooManyRequests, message: "Slow down.")
80+
throw Abort(
81+
.tooManyRequests,
82+
metadata: nil,
83+
reason: "Slow down."
84+
)
7785
}
7886

7987
let response = try next.respond(to: request)

Sources/SSLEnforcer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public struct SSLEnforcer: Middleware {
66
private let error: AbortError
77

88
public init(error: AbortError, drop: Droplet, environments: [Environment] = [.production]) {
9-
shouldEnforce = environments.contains(drop.environment)
9+
shouldEnforce = environments.contains(drop.config.environment)
1010
self.error = error
1111
}
1212

Tests/GatekeeperTests/GatekeeperTests.swift

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,15 @@ class GatekeeperTests: XCTestCase {
2626
do {
2727
_ = try middleware.respond(to: request, chainingTo: MockResponder())
2828
XCTAssertTrue(i <= 10, "ran \(i) times.")
29-
} catch Abort.custom(status: let status, message: _) {
30-
XCTAssertEqual(status, .tooManyRequests)
31-
XCTAssertEqual(i, 11, "Should've failed after the 11th attempt.")
32-
break
29+
} catch let error as Abort {
30+
switch error.status {
31+
case .tooManyRequests:
32+
//success
33+
XCTAssertEqual(i, 11, "Should've failed after the 11th attempt.")
34+
break
35+
default:
36+
XCTFail("Expected too many request: \(error)")
37+
}
3338
} catch {
3439
XCTFail("Caught wrong error: \(error)")
3540
}
@@ -42,8 +47,14 @@ class GatekeeperTests: XCTestCase {
4247

4348
do {
4449
_ = try middleware.respond(to: request, chainingTo: MockResponder())
45-
} catch Abort.custom(status: let status, message: _){
46-
XCTAssertEqual(status, .forbidden)
50+
} catch let error as Abort {
51+
switch error.status {
52+
case .forbidden:
53+
//success
54+
break
55+
default:
56+
XCTFail("Expected forbidden")
57+
}
4758
} catch {
4859
XCTFail("Rate limiter failed: \(error)")
4960
}
@@ -94,8 +105,14 @@ class GatekeeperTests: XCTestCase {
94105
do {
95106
_ = try middleware.respond(to: request, chainingTo: MockResponder())
96107
XCTFail("Should've been rejected")
97-
} catch Abort.badRequest {
98-
// success
108+
} catch let error as Abort {
109+
switch error.status {
110+
case .badRequest:
111+
// success
112+
break
113+
default:
114+
XCTFail("Expected bad request")
115+
}
99116
} catch {
100117
XCTFail("Request failed: \(error)")
101118
}
@@ -129,11 +146,15 @@ class GatekeeperTests: XCTestCase {
129146

130147
extension GatekeeperTests {
131148
var developmentDrop: Droplet {
132-
return Droplet(environment: .development)
149+
let config = try! Config()
150+
config.environment = .development
151+
return try! Droplet(config: config)
133152
}
134153

135154
var productionDrop: Droplet {
136-
return Droplet(environment: .production)
155+
let config = try! Config()
156+
config.environment = .production
157+
return try! Droplet(config: config)
137158
}
138159

139160
func getHTTPRequest() -> Request {

0 commit comments

Comments
 (0)