Sha256: ab04979cf5bbf2beb743e371e40fbc4c15f2639ab8501e8fee469514c61ade73

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

# -*- encoding: utf-8 -*-

module SendGrid4r::REST
  module Ips
    #
    # SendGrid Web API v3 Ip Management - Warmup
    #
    module Warmup
      include Request

      WarmupIp = Struct.new(:ip, :start_date)

      def self.create_warmup_ips(resp)
        return resp if resp.nil?
        resp.map { |warmup_ip| Ips::Warmup.create_warmup_ip(warmup_ip) }
      end

      def self.create_warmup_ip(resp)
        return resp if resp.nil?
        WarmupIp.new(
          resp['ip'],
          resp['start_date'].nil? ? nil : Time.at(resp['start_date'])
        )
      end

      def self.url(ip_address = nil)
        url = "#{BASE_URL}/ips/warmup"
        url = "#{url}/#{ip_address}" unless ip_address.nil?
        url
      end

      def get_warmup_ips(&block)
        resp = get(@auth, Ips::Warmup.url, &block)
        Ips::Warmup.create_warmup_ips(resp)
      end

      def get_warmup_ip(ip:, &block)
        resp = get(@auth, Ips::Warmup.url(ip), &block)
        Ips::Warmup.create_warmup_ip(resp)
      end

      def post_warmup_ip(ip:, &block)
        resp = post(@auth, Ips::Warmup.url, ip: ip, &block)
        Ips::Warmup.create_warmup_ip(resp)
      end

      def delete_warmup_ip(ip:, &block)
        delete(@auth, Ips::Warmup.url(ip), &block)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sendgrid4r-1.11.0 lib/sendgrid4r/rest/ips/warmup.rb
sendgrid4r-1.10.0 lib/sendgrid4r/rest/ips/warmup.rb