Skip to content

Commit 6439c9c

Browse files
authored
Empty filters raises ArgumentError (#4)
Closes #3
1 parent e50735a commit 6439c9c

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## Unreleased
22
- Added `Client#create_candidate`
33
- Added `Client#create_job_application`
4+
- Fix accessing `Client#jobs` without filters
45

56
## v0.3.2 - 2021-02-03
67

lib/teamtailor/client.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ def create_candidate(attributes:, relationships:)
5454
end
5555

5656
def jobs(page: 1, include: [], filters: {})
57-
filter_params = filters.keys.map do |key|
58-
{ "filter[#{key}]" => filters[key] }
59-
end
57+
filter_params = filters.transform_keys { |key| "filter[#{key}]" }
6058

6159
Teamtailor::Request.new(
6260
base_url: base_url,
@@ -67,7 +65,7 @@ def jobs(page: 1, include: [], filters: {})
6765
"page[number]" => page,
6866
"page[size]" => 30,
6967
"include" => include.join(","),
70-
}.merge(*filter_params)
68+
}.merge(filter_params)
7169
).call
7270
end
7371

spec/teamtailor/client_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,27 @@
2828
}
2929
end
3030
end
31+
32+
context "passing request without filters" do
33+
it "passes an empty filter list along in the request" do
34+
client = Teamtailor::Client.new(
35+
base_url: "http://api.teamtailor.localhost",
36+
api_token: "foobar",
37+
api_version: "123",
38+
)
39+
40+
stub_request(:get, "http://api.teamtailor.localhost/v1/jobs")
41+
.with(
42+
query: {
43+
'page[number]': 1,
44+
'page[size]': 30,
45+
'include': "",
46+
}
47+
)
48+
.to_return(status: 200, body: {}.to_json)
49+
50+
client.jobs
51+
end
52+
end
3153
end
3254
end

0 commit comments

Comments
 (0)