Sha256: 64fa87c1e0ccd2a3d86deb1e20f81c5005946b0fb6f73588c9a955cc7837f35b
Contents?: true
Size: 1.18 KB
Versions: 6
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true class EasyPost::Services::Report < EasyPost::Services::Service MODEL_CLASS = EasyPost::Models::Report # Create a Report def create(params = {}) unless params[:type] raise ArgumentError, "Missing 'type' parameter in params" # TODO: replace the error in the error-handling overhaul PR end type = params.delete(:type) url = "reports/#{type}" @client.make_request(:post, url, MODEL_CLASS, params) end # Retrieve a Report def retrieve(id) @client.make_request(:get, "reports/#{id}", MODEL_CLASS) end # Retrieve all Report objects def all(params = {}) unless params[:type] raise ArgumentError, "Missing 'type' parameter in params" # TODO: replace the error in the error-handling overhaul PR end type = params.delete(:type) url = "reports/#{type}" response = @client.make_request(:get, url, MODEL_CLASS, params) response.define_singleton_method(:type) { type } response end # Get next page of Report objects def get_next_page(collection, page_size = nil) url = "reports/#{collection.type}" get_next_page_helper(collection, collection.reports, url, MODEL_CLASS, page_size) end end
Version data entries
6 entries across 6 versions & 1 rubygems