Skip to content

Commit f4ad88e

Browse files
feat(client): add webhook support
1 parent 1229fe8 commit f4ad88e

3 files changed

Lines changed: 16 additions & 0 deletions

File tree

lib/finch_api/client.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ class Client < FinchAPI::Internal::Transport::BaseClient
2424
# @return [String, nil]
2525
attr_reader :client_secret
2626

27+
# @return [String, nil]
28+
attr_reader :webhook_secret
29+
2730
# @return [FinchAPI::Resources::AccessTokens]
2831
attr_reader :access_tokens
2932

@@ -90,6 +93,8 @@ class Client < FinchAPI::Internal::Transport::BaseClient
9093
#
9194
# @param access_token [String, nil]
9295
#
96+
# @param webhook_secret [String, nil] Defaults to `ENV["FINCH_WEBHOOK_SECRET"]`
97+
#
9398
# @param base_url [String, nil] Override the default base URL for the API, e.g.,
9499
# `"https://api.example.com/v2/"`. Defaults to `ENV["FINCH_BASE_URL"]`
95100
#
@@ -104,6 +109,7 @@ def initialize(
104109
client_id: ENV["FINCH_CLIENT_ID"],
105110
client_secret: ENV["FINCH_CLIENT_SECRET"],
106111
access_token: nil,
112+
webhook_secret: ENV["FINCH_WEBHOOK_SECRET"],
107113
base_url: ENV["FINCH_BASE_URL"],
108114
max_retries: self.class::DEFAULT_MAX_RETRIES,
109115
timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
@@ -119,6 +125,7 @@ def initialize(
119125
@client_id = client_id&.to_s
120126
@client_secret = client_secret&.to_s
121127
@access_token = access_token&.to_s
128+
@webhook_secret = webhook_secret&.to_s
122129

123130
super(
124131
base_url: base_url,

rbi/finch_api/client.rbi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ module FinchAPI
1919
sig { returns(T.nilable(String)) }
2020
attr_reader :client_secret
2121

22+
sig { returns(T.nilable(String)) }
23+
attr_reader :webhook_secret
24+
2225
sig { returns(FinchAPI::Resources::AccessTokens) }
2326
attr_reader :access_tokens
2427

@@ -74,6 +77,7 @@ module FinchAPI
7477
client_id: T.nilable(String),
7578
client_secret: T.nilable(String),
7679
access_token: T.nilable(String),
80+
webhook_secret: T.nilable(String),
7781
base_url: T.nilable(String),
7882
max_retries: Integer,
7983
timeout: Float,
@@ -87,6 +91,8 @@ module FinchAPI
8791
# Defaults to `ENV["FINCH_CLIENT_SECRET"]`
8892
client_secret: ENV["FINCH_CLIENT_SECRET"],
8993
access_token: nil,
94+
# Defaults to `ENV["FINCH_WEBHOOK_SECRET"]`
95+
webhook_secret: ENV["FINCH_WEBHOOK_SECRET"],
9096
# Override the default base URL for the API, e.g.,
9197
# `"https://api.example.com/v2/"`. Defaults to `ENV["FINCH_BASE_URL"]`
9298
base_url: ENV["FINCH_BASE_URL"],

sig/finch_api/client.rbs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ module FinchAPI
1414

1515
attr_reader client_secret: String?
1616

17+
attr_reader webhook_secret: String?
18+
1719
attr_reader access_tokens: FinchAPI::Resources::AccessTokens
1820

1921
attr_reader hris: FinchAPI::Resources::HRIS
@@ -46,6 +48,7 @@ module FinchAPI
4648
?client_id: String?,
4749
?client_secret: String?,
4850
?access_token: String?,
51+
?webhook_secret: String?,
4952
?base_url: String?,
5053
?max_retries: Integer,
5154
?timeout: Float,

0 commit comments

Comments
 (0)