Class: QueryGuard::Client
- Inherits:
-
Object
- Object
- QueryGuard::Client
- Defined in:
- lib/query_guard/client.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
seconds
5
Instance Method Summary collapse
-
#initialize(base_url:, api_key:, project:, env:) ⇒ Client
constructor
A new instance of Client.
-
#post(path, payload) ⇒ Object
Bulk events POST.
Constructor Details
#initialize(base_url:, api_key:, project:, env:) ⇒ Client
Returns a new instance of Client.
10 11 12 13 14 15 |
# File 'lib/query_guard/client.rb', line 10 def initialize(base_url:, api_key:, project:, env:) @base_url = base_url&.sub(%r{/\z}, "") || "" @api_key = api_key @project = project @env = env end |
Instance Method Details
#post(path, payload) ⇒ Object
Bulk events POST
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/query_guard/client.rb', line 18 def post(path, payload) uri = URI.parse("#{@base_url}#{path}") req = Net::HTTP::Post.new(uri) req["Content-Type"] = "application/json" req["Authorization"] = "Bearer #{@api_key}" if @api_key req.body = JSON.generate(payload.merge(project: @project, env: @env)) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == "https") http.open_timeout = DEFAULT_TIMEOUT http.read_timeout = DEFAULT_TIMEOUT res = http.request(req) warn "[QueryGuard] POST #{uri} -> #{res.code} #{res.body}" unless res.is_a?(Net::HTTPSuccess) res rescue => e warn "[QueryGuard] HTTP error: #{e.class}: #{e.}" nil end |