lib/sendgrid4r/rest/ips/pools.rb in sendgrid4r-0.2.0 vs lib/sendgrid4r/rest/ips/pools.rb in sendgrid4r-0.3.0

- old
+ new

@@ -15,48 +15,63 @@ module Pools include SendGrid4r::REST::Request Pool = Struct.new(:pool_name, :name, :ips) + def self.create_pools(resp) + return resp if resp.nil? + pools = [] + resp.each do |pool| + pools.push(SendGrid4r::REST::Ips::Pools.create_pool(pool)) + end + pools + end + def self.create_pool(resp) + return resp if resp.nil? ips = [] Array(resp['ips']).each { |ip| ips.push(ip) } Pool.new(resp['pool_name'], resp['name'], ips) end - def post_pool(name) + def self.url(name = nil, ips = nil, ip = nil) + url = "#{SendGrid4r::Client::BASE_URL}/ips/pools" + url = "#{url}/#{name}" unless name.nil? + url = "#{url}/#{ips}" unless ips.nil? + url = "#{url}/#{ip}" unless ip.nil? + url + end + + def post_pool(name, &block) resp = post( - @auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools", name: name + @auth, SendGrid4r::REST::Ips::Pools.url, name: name, &block ) SendGrid4r::REST::Ips::Pools.create_pool(resp) end - def get_pools - resp_a = get(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools") - pools = [] - resp_a.each do |resp| - pools.push(SendGrid4r::REST::Ips::Pools.create_pool(resp)) - end - pools + def get_pools(&block) + resp = get(@auth, SendGrid4r::REST::Ips::Pools.url, &block) + SendGrid4r::REST::Ips::Pools.create_pools(resp) end - def get_pool(name) + def get_pool(name, &block) resp = get( - @auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools/#{name}" + @auth, SendGrid4r::REST::Ips::Pools.url(name), &block ) SendGrid4r::REST::Ips::Pools.create_pool(resp) end - def put_pool(name, new_name) + def put_pool(name, new_name, &block) resp = put( @auth, - "#{SendGrid4r::Client::BASE_URL}/ips/pools/#{name}", - name: new_name) + SendGrid4r::REST::Ips::Pools.url(name), + name: new_name, + &block) SendGrid4r::REST::Ips::Pools.create_pool(resp) end - def delete_pool(name) - delete(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/pools/#{name}") + def delete_pool(name, &block) + delete(@auth, SendGrid4r::REST::Ips::Pools.url(name), &block) end end end end end