Class: Wavix::LinkShortener::Metrics::Client
- Inherits:
-
Object
- Object
- Wavix::LinkShortener::Metrics::Client
- Defined in:
- lib/wavix/link_shortener/metrics/client.rb
Instance Method Summary collapse
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Wavix::Types::ShortLinkMetricsResponse
Returns per-click metrics for short links, including device, location, and campaign attribution, within the requested date range.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/wavix/link_shortener/metrics/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#list(request_options: {}, **params) ⇒ Wavix::Types::ShortLinkMetricsResponse
Returns per-click metrics for short links, including device, location, and campaign attribution, within the requested date range.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/wavix/link_shortener/metrics/client.rb', line 32 def list(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["from"] = params[:from] if params.key?(:from) query_params["to"] = params[:to] if params.key?(:to) query_params["phone"] = params[:phone] if params.key?(:phone) query_params["utm_campaign"] = params[:utm_campaign] if params.key?(:utm_campaign) query_params["page"] = params[:page] if params.key?(:page) query_params["per_page"] = params[:per_page] if params.key?(:per_page) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v1/short-links/metrics", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Wavix::Types::ShortLinkMetricsResponse.load(response.body) else error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |