class ErrorClient

Constants

DEPLOY_CACHE_KEY
ERROR_CACHE_KEY

Public Instance Methods

get_errors!(commit) click to toggle source

TODO: Shared

# File lib/integrations/error_client.rb, line 10
def get_errors!(commit)
  deploy = commit_deploy(commit)
  return [] if deploy.nil?

  deploy_index = @deploys.index(deploy) || 0
  @deploys = @deploys[(deploy_index + 1)..-1] || []
  if @deploys.first.nil?
    errors = @errors
    @errors = []
  else
    errors = []
    while @errors.any? && @errors.first[:last_time] < @deploys.first[:timestamp] do
      errors << @errors.shift()
    end
  end
  errors
end
sync!(commit) click to toggle source

TODO:

1: sync to last deploy?
2: Shared
# File lib/integrations/error_client.rb, line 31
def sync!(commit)
  while @errors.any? && @errors.first[:last_time] < commit.date do
    @errors.shift()
  end
end

Private Instance Methods

commit_deploy(commit) click to toggle source
# File lib/integrations/error_client.rb, line 39
def commit_deploy(commit)
  @deploys.detect { |deploy| deploy[:commit_id] == commit.commit_id }
end
load_from_cache() click to toggle source
# File lib/integrations/error_client.rb, line 43
def load_from_cache()
  Cache
    .read(ERROR_CACHE_KEY, {})
    .map do |error_id, error|
      error = error.deep_symbolize_keys
      error[:error_id] = error[:error_id].to_sym
      error[:first_time] = DateTime.rfc3339(error[:first_time])
      error[:last_time] = DateTime.rfc3339(error[:last_time])
      error
    end
    .sort_by { |error| error[:last_time] }
end