Skip to content
This repository was archived by the owner on Jan 14, 2025. It is now read-only.

Commit e2faa38

Browse files
fix: Add access_code_ids param to access_codes.list and type params to access_codes.update (#63)
* Add access_code_ids param to access_codes.list + test * Add type param to access_codes.update + test
1 parent a13954b commit e2faa38

File tree

2 files changed

+68
-15
lines changed

2 files changed

+68
-15
lines changed

lib/seam/clients/access_codes.rb

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ def get(access_code_id)
1313
)
1414
end
1515

16-
def list(device_or_id)
16+
def list(device_or_id = nil, access_code_ids: nil)
1717
device_id = device_or_id.is_a?(Seam::Device) ? device_or_id.device_id : device_or_id
1818

1919
request_seam_object(
20-
:get,
20+
:post,
2121
"/access_codes/list",
2222
Seam::AccessCode,
2323
"access_codes",
24-
params: {device_id: device_id}
24+
body: {device_id: device_id, access_code_ids: access_code_ids}.compact
2525
)
2626
end
2727

@@ -50,7 +50,7 @@ def delete(access_code_id)
5050
action_attempt
5151
end
5252

53-
def update(access_code_id: nil, name: nil, code: nil, starts_at: nil, ends_at: nil)
53+
def update(access_code_id: nil, name: nil, code: nil, starts_at: nil, ends_at: nil, type: nil)
5454
action_attempt = request_seam_object(
5555
:post,
5656
"/access_codes/update",
@@ -61,7 +61,8 @@ def update(access_code_id: nil, name: nil, code: nil, starts_at: nil, ends_at: n
6161
name: name,
6262
code: code,
6363
starts_at: starts_at,
64-
ends_at: ends_at
64+
ends_at: ends_at,
65+
type: type
6566
}.compact
6667
)
6768
action_attempt.wait_until_finished

spec/clients/access_codes_spec.rb

Lines changed: 62 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,43 @@
44
let(:client) { Seam::Client.new(api_key: "some_api_key") }
55

66
describe "#list" do
7-
let(:access_code_hash) { {access_code_id: "123"} }
8-
let(:device_id) { "device_id_1234" }
7+
let(:access_code_id) { "123" }
8+
let(:access_code_hash) { {access_code_id: access_code_id} }
99

10-
before do
11-
stub_seam_request(:get, "/access_codes/list",
12-
{access_codes: [access_code_hash]}).with(query: {device_id: device_id})
10+
context "'device_id' param" do
11+
let(:device_id) { "device_id_1234" }
12+
13+
before do
14+
stub_seam_request(:post, "/access_codes/list",
15+
{access_codes: [access_code_hash]}).with do |req|
16+
req.body.source == {device_id: device_id}.to_json
17+
end
18+
end
19+
20+
let(:access_codes) { client.access_codes.list(device_id) }
21+
22+
it "returns a list of Access codes" do
23+
expect(access_codes).to be_a(Array)
24+
expect(access_codes.first).to be_a(Seam::AccessCode)
25+
expect(access_codes.first.access_code_id).to be_a(String)
26+
end
1327
end
1428

15-
let(:access_codes) { client.access_codes.list(device_id) }
29+
context "'access_code_ids' param" do
30+
before do
31+
stub_seam_request(:post, "/access_codes/list",
32+
{access_codes: [access_code_hash]}).with do |req|
33+
req.body.source == {access_code_ids: [access_code_id]}.to_json
34+
end
35+
end
36+
37+
let(:access_codes) { client.access_codes.list(access_code_ids: [access_code_id]) }
1638

17-
it "returns a list of Devices" do
18-
expect(access_codes).to be_a(Array)
19-
expect(access_codes.first).to be_a(Seam::AccessCode)
20-
expect(access_codes.first.access_code_id).to be_a(String)
39+
it "returns a list of Access codes" do
40+
expect(access_codes).to be_a(Array)
41+
expect(access_codes.first).to be_a(Seam::AccessCode)
42+
expect(access_codes.first.access_code_id).to be_a(String)
43+
end
2144
end
2245
end
2346

@@ -103,4 +126,33 @@
103126
expect(result).to be_a(Seam::ActionAttempt)
104127
end
105128
end
129+
130+
describe "#update" do
131+
let(:access_code_id) { "access_code_1234" }
132+
let(:action_attempt_hash) { {action_attempt_id: "1234", status: "pending"} }
133+
134+
before do
135+
stub_seam_request(
136+
:post, "/access_codes/update", {action_attempt: action_attempt_hash}
137+
).with do |req|
138+
req.body.source == {access_code_id: access_code_id, type: "ongoing"}.to_json
139+
end
140+
141+
stub_seam_request(
142+
:get,
143+
"/action_attempts/get",
144+
{
145+
action_attempt: {
146+
status: "success"
147+
}
148+
}
149+
).with(query: {action_attempt_id: action_attempt_hash[:action_attempt_id]})
150+
end
151+
152+
let(:result) { client.access_codes.update(access_code_id: access_code_id, type: "ongoing") }
153+
154+
it "returns an Access Code" do
155+
expect(result).to be_a(Seam::ActionAttempt)
156+
end
157+
end
106158
end

0 commit comments

Comments
 (0)