Class: RailsInformant::Mcp::Client
- Inherits:
-
Object
- Object
- RailsInformant::Mcp::Client
- Defined in:
- lib/rails_informant/mcp/client.rb
Constant Summary collapse
- Error =
Class.new(StandardError)
- METHODS =
{ delete: Net::HTTP::Delete, get: Net::HTTP::Get, patch: Net::HTTP::Patch, post: Net::HTTP::Post }.freeze
Instance Method Summary collapse
- #delete_error(id) ⇒ Object
- #fix_pending(id, fix_sha:, original_sha:, fix_pr_url: nil) ⇒ Object
- #get_error(id) ⇒ Object
-
#initialize(url:, token:, allow_insecure: false, path_prefix: "/informant") ⇒ Client
constructor
A new instance of Client.
- #list_errors(status: nil, error_class: nil, q: nil, since: nil, page: nil, per_page: nil, controller_action: nil, job_class: nil, severity: nil, **extra) ⇒ Object
- #list_occurrences(error_group_id: nil, since: nil, page: nil, per_page: nil, **extra) ⇒ Object
- #mark_duplicate(id, duplicate_of_id:) ⇒ Object
- #notify_deploy(sha:) ⇒ Object
- #status ⇒ Object
- #update_error(id, params) ⇒ Object
Constructor Details
#initialize(url:, token:, allow_insecure: false, path_prefix: "/informant") ⇒ Client
Returns a new instance of Client.
17 18 19 20 21 22 23 24 |
# File 'lib/rails_informant/mcp/client.rb', line 17 def initialize(url:, token:, allow_insecure: false, path_prefix: "/informant") @base_url = url.chomp("/") @token = token @allow_insecure = allow_insecure @path_prefix = path_prefix.chomp("/") @_base_uri = URI.parse(@base_url) validate_url! end |
Instance Method Details
#delete_error(id) ⇒ Object
40 41 42 |
# File 'lib/rails_informant/mcp/client.rb', line 40 def delete_error(id) perform :delete, "#{@path_prefix}/api/v1/errors/#{Integer(id)}" end |
#fix_pending(id, fix_sha:, original_sha:, fix_pr_url: nil) ⇒ Object
44 45 46 |
# File 'lib/rails_informant/mcp/client.rb', line 44 def fix_pending(id, fix_sha:, original_sha:, fix_pr_url: nil) perform :patch, "#{@path_prefix}/api/v1/errors/#{Integer(id)}/fix_pending", body: { fix_sha:, original_sha:, fix_pr_url: }.compact end |
#get_error(id) ⇒ Object
32 33 34 |
# File 'lib/rails_informant/mcp/client.rb', line 32 def get_error(id) perform :get, "#{@path_prefix}/api/v1/errors/#{Integer(id)}" end |
#list_errors(status: nil, error_class: nil, q: nil, since: nil, page: nil, per_page: nil, controller_action: nil, job_class: nil, severity: nil, **extra) ⇒ Object
26 27 28 29 30 |
# File 'lib/rails_informant/mcp/client.rb', line 26 def list_errors(status: nil, error_class: nil, q: nil, since: nil, page: nil, per_page: nil, controller_action: nil, job_class: nil, severity: nil, **extra) params = { controller_action:, error_class:, job_class:, q:, severity:, since:, status:, page:, per_page: } params[:until] = extra[:until] if extra[:until] perform :get, "#{@path_prefix}/api/v1/errors", params: params.compact end |
#list_occurrences(error_group_id: nil, since: nil, page: nil, per_page: nil, **extra) ⇒ Object
52 53 54 55 56 |
# File 'lib/rails_informant/mcp/client.rb', line 52 def list_occurrences(error_group_id: nil, since: nil, page: nil, per_page: nil, **extra) params = { error_group_id:, since:, page:, per_page: } params[:until] = extra[:until] if extra[:until] perform :get, "#{@path_prefix}/api/v1/occurrences", params: params.compact end |
#mark_duplicate(id, duplicate_of_id:) ⇒ Object
48 49 50 |
# File 'lib/rails_informant/mcp/client.rb', line 48 def mark_duplicate(id, duplicate_of_id:) perform :patch, "#{@path_prefix}/api/v1/errors/#{Integer(id)}/duplicate", body: { duplicate_of_id: } end |
#notify_deploy(sha:) ⇒ Object
58 59 60 |
# File 'lib/rails_informant/mcp/client.rb', line 58 def notify_deploy(sha:) perform :post, "#{@path_prefix}/api/v1/deploy", body: { sha: } end |
#status ⇒ Object
62 63 64 |
# File 'lib/rails_informant/mcp/client.rb', line 62 def status perform :get, "#{@path_prefix}/api/v1/status" end |
#update_error(id, params) ⇒ Object
36 37 38 |
# File 'lib/rails_informant/mcp/client.rb', line 36 def update_error(id, params) perform :patch, "#{@path_prefix}/api/v1/errors/#{Integer(id)}", body: params end |