Class: Auth0::Users::Logs::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/auth0/users/logs/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ void

Parameters:



10
11
12
# File 'lib/auth0/users/logs/client.rb', line 10

def initialize(client:)
  @client = client
end

Instance Method Details

#list(request_options: {}, **params) ⇒ Auth0::Types::UserListLogOffsetPaginatedResponseContent

Retrieve log events for a specific user.

Note: For more information on all possible event types, their respective acronyms and descriptions, see <a href=“auth0.com/docs/logs/log-event-type-codes”>Log Event Type Codes</a>.

For more information on the list of fields that can be used in ‘sort`, see <a href=“auth0.com/docs/logs/log-search-query-syntax#searchable-fields”>Searchable Fields</a>.

Auth0 <a href=“auth0.com/docs/logs/retrieve-log-events-using-mgmt-api#limitations”>limits the number of logs</a> you can return by search criteria to 100 logs per request. Furthermore, you may only paginate through up to 1,000 search results. If you exceed this threshold, please redefine your search.

Parameters:

  • request_options (Hash) (defaults to: {})
  • params (Hash)

Options Hash (request_options:):

  • :base_url (String)
  • :additional_headers (Hash{String => Object})
  • :additional_query_parameters (Hash{String => Object})
  • :additional_body_parameters (Hash{String => Object})
  • :timeout_in_seconds (Integer)

Options Hash (**params):

  • :id (String)
  • :page (Integer, nil)
  • :per_page (Integer, nil)
  • :sort (String, nil)
  • :include_totals (Boolean, nil)

Returns:



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/auth0/users/logs/client.rb', line 40

def list(request_options: {}, **params)
  params = Auth0::Internal::Types::Utils.normalize_keys(params)
  query_param_names = %i[page per_page sort include_totals]
  query_params = {}
  query_params["page"] = params.fetch(:page, 0)
  query_params["per_page"] = params.fetch(:per_page, 50)
  query_params["sort"] = params[:sort] if params.key?(:sort)
  query_params["include_totals"] = params.fetch(:include_totals, true)
  params = params.except(*query_param_names)

  Auth0::Internal::OffsetItemIterator.new(
    initial_page: query_params["page"],
    item_field: :logs,
    has_next_field: nil,
    step: true
  ) do |next_page|
    query_params["page"] = next_page
    request = Auth0::Internal::JSON::Request.new(
      base_url: request_options[:base_url],
      method: "GET",
      path: "users/#{URI.encode_uri_component(params[:id].to_s)}/logs",
      query: query_params,
      request_options: request_options
    )
    begin
      response = @client.send(request)
    rescue Net::HTTPRequestTimeout
      raise Auth0::Errors::TimeoutError
    end
    code = response.code.to_i
    if code.between?(200, 299)
      Auth0::Types::UserListLogOffsetPaginatedResponseContent.load(response.body)
    else
      error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
      raise error_class.new(response.body, code: code)
    end
  end
end