module BrickFTP::RESTfulAPI::RetrieveHistory
Constants
- MAX_PER_PAGE
Public Instance Methods
build_query(page, per_page, start_at)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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