Class: Pinnacle::Tools::Url::Client
- Inherits:
-
Object
- Object
- Pinnacle::Tools::Url::Client
- Defined in:
- lib/pinnacle/tools/url/client.rb
Instance Method Summary collapse
-
#create(request_options: {}, **params) ⇒ Pinnacle::Types::ShortenedUrl
Create a shortened URL that redirects visitors to the provided destination URL.
-
#get(request_options: {}, **params) ⇒ Pinnacle::Types::ShortenedUrlWithClickData
Retrieve configuration and details for your shortened URL using its unique identifier.
- #initialize(client:) ⇒ void constructor
-
#update(request_options: {}, **params) ⇒ Pinnacle::Types::ShortenedUrl
Update the destination or expiration date of an existing shortened URL.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/pinnacle/tools/url/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#create(request_options: {}, **params) ⇒ Pinnacle::Types::ShortenedUrl
Create a shortened URL that redirects visitors to the provided destination URL.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/pinnacle/tools/url/client.rb', line 25 def create(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "tools/url", body: Pinnacle::Tools::Url::Types::CreateUrlParams.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Pinnacle::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Pinnacle::Types::ShortenedUrl.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#get(request_options: {}, **params) ⇒ Pinnacle::Types::ShortenedUrlWithClickData
Retrieve configuration and details for your shortened URL using its unique identifier.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/pinnacle/tools/url/client.rb', line 60 def get(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "tools/url/#{params[:link_id]}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Pinnacle::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Pinnacle::Types::ShortenedUrlWithClickData.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#update(request_options: {}, **params) ⇒ Pinnacle::Types::ShortenedUrl
Update the destination or expiration date of an existing shortened URL. Expiring links cannot be updated into a permalink.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/pinnacle/tools/url/client.rb', line 95 def update(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request_data = Pinnacle::Tools::Url::Types::UpdateUrlParams.new(params).to_h non_body_param_names = ["linkId"] body = request_data.except(*non_body_param_names) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "PUT", path: "tools/url/#{params[:link_id]}", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Pinnacle::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Pinnacle::Types::ShortenedUrl.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |