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
- #build_query(page, per_page, start_at) ⇒ Object
- #retrieve(path, page, per_page, start_at) ⇒ Object
- #validate_page!(page) ⇒ Object
- #validate_per_page!(per_page) ⇒ Object
- #validate_start_at!(start_at) ⇒ Object
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
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
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
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 |