Module: BrickFTP::RESTfulAPI::RetrieveHistory

Included in:
RetrieveFileHistory, RetrieveFolderHistory, RetrieveLoginHistory, RetrieveSiteHistory, RetrieveUserHistory
Defined in:
lib/brick_ftp/restful_api/retrieve_history.rb

Constant Summary collapse

MAX_PER_PAGE =
10_000

Instance Method Summary collapse

Instance Method Details

#build_query(page, per_page, start_at) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/brick_ftp/restful_api/retrieve_history.rb', line 46

def build_query(page, per_page, start_at)
  params = {}
  params[:page] = page if page
  params[:per_page] = per_page if per_page
  params[:start_at] = start_at.utc.iso8601 if start_at

  params.map { |k, v| "#{k}=#{ERB::Util.url_encode(v.to_s)}" }.join('&')
end

#retrieve(path, page, per_page, start_at) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/brick_ftp/restful_api/retrieve_history.rb', line 10

def retrieve(path, page, per_page, start_at)
  validate_page!(page)
  validate_per_page!(per_page)
  validate_start_at!(start_at)

  query = build_query(page, per_page, start_at)
  endpoint = path
  endpoint = "#{path}?#{query}" unless query.empty?
  res = client.get(endpoint)

  res.map { |i| BrickFTP::Types::History.new(**i.symbolize_keys) }
end

#validate_page!(page) ⇒ Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
# File 'lib/brick_ftp/restful_api/retrieve_history.rb', line 23

def validate_page!(page)
  return if page.nil?
  return if page.is_a?(Integer) && page.positive?

  raise ArgumentError, 'page must be greater than 0.'
end

#validate_per_page!(per_page) ⇒ Object

Raises:

  • (ArgumentError)


32
33
34
35
36
37
# File 'lib/brick_ftp/restful_api/retrieve_history.rb', line 32

def validate_per_page!(per_page)
  return if per_page.nil?
  return if per_page.is_a?(Integer) && per_page.positive? && per_page <= MAX_PER_PAGE

  raise ArgumentError, "per_page must be greater than 0 and less than equal #{MAX_PER_PAGE}."
end

#validate_start_at!(start_at) ⇒ Object

Raises:

  • (ArgumentError)


39
40
41
42
43
44
# File 'lib/brick_ftp/restful_api/retrieve_history.rb', line 39

def validate_start_at!(start_at)
  return if start_at.nil?
  return if start_at.is_a?(Time)

  raise ArgumentError, 'start_at must be a Time.'
end