MailchimpMarketing 3.0.2 → 3.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/MailchimpMarketing.gemspec +2 -2
- data/README.md +55 -46
- data/lib/MailchimpMarketing.rb +5 -6
- data/lib/MailchimpMarketing/api/activity_feed_api.rb +12 -73
- data/lib/MailchimpMarketing/api/authorized_apps_api.rb +19 -119
- data/lib/MailchimpMarketing/api/automations_api.rb +129 -723
- data/lib/MailchimpMarketing/api/batch_webhooks_api.rb +32 -192
- data/lib/MailchimpMarketing/api/batches_api.rb +25 -154
- data/lib/MailchimpMarketing/api/campaign_folders_api.rb +32 -192
- data/lib/MailchimpMarketing/api/campaigns_api.rb +143 -847
- data/lib/MailchimpMarketing/api/connected_sites_api.rb +31 -189
- data/lib/MailchimpMarketing/api/conversations_api.rb +35 -215
- data/lib/MailchimpMarketing/api/dashboard_api.rb +31 -233
- data/lib/MailchimpMarketing/api/ecommerce_api.rb +446 -2430
- data/lib/MailchimpMarketing/api/external_auths_api.rb +19 -119
- data/lib/MailchimpMarketing/api/facebook_ads_api.rb +15 -87
- data/lib/MailchimpMarketing/api/file_manager_api.rb +70 -435
- data/lib/MailchimpMarketing/api/landing_pages_api.rb +50 -302
- data/lib/MailchimpMarketing/api/lists_api.rb +746 -3034
- data/lib/MailchimpMarketing/api/ping_api.rb +6 -35
- data/lib/MailchimpMarketing/api/postcards_api.rb +8 -43
- data/lib/MailchimpMarketing/api/reporting_api.rb +40 -249
- data/lib/MailchimpMarketing/api/reports_api.rb +152 -947
- data/lib/MailchimpMarketing/api/root_api.rb +6 -39
- data/lib/MailchimpMarketing/api/search_campaigns_api.rb +7 -41
- data/lib/MailchimpMarketing/api/search_members_api.rb +7 -43
- data/lib/MailchimpMarketing/api/template_folders_api.rb +32 -192
- data/lib/MailchimpMarketing/api/templates_api.rb +39 -246
- data/lib/MailchimpMarketing/api/verified_domains_api.rb +31 -180
- data/lib/MailchimpMarketing/api_client.rb +34 -157
- data/lib/MailchimpMarketing/api_error.rb +1 -1
- data/lib/MailchimpMarketing/configuration.rb +1 -1
- data/lib/MailchimpMarketing/version.rb +2 -2
- metadata +5 -11
| @@ -3,7 +3,7 @@ | |
| 3 3 |  | 
| 4 4 | 
             
            #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
         | 
| 5 5 |  | 
| 6 | 
            -
            OpenAPI spec version: 3.0. | 
| 6 | 
            +
            OpenAPI spec version: 3.0.9
         | 
| 7 7 | 
             
            Contact: apihelp@mailchimp.com
         | 
| 8 8 | 
             
            Generated by: https://github.com/swagger-api/swagger-codegen.git
         | 
| 9 9 | 
             
            Swagger Codegen version: 2.4.12
         | 
| @@ -11,26 +11,14 @@ Swagger Codegen version: 2.4.12 | |
| 11 11 | 
             
            =end
         | 
| 12 12 |  | 
| 13 13 | 
             
            require 'json'
         | 
| 14 | 
            -
            require ' | 
| 14 | 
            +
            require 'excon'
         | 
| 15 15 |  | 
| 16 16 | 
             
            module MailchimpMarketing
         | 
| 17 17 | 
             
              class ApiClient
         | 
| 18 | 
            -
                 | 
| 19 | 
            -
                #
         | 
| 20 | 
            -
                # @return [Hash]
         | 
| 21 | 
            -
                attr_accessor :default_headers
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                # Initializes the ApiClient
         | 
| 24 | 
            -
                def initialize(api_key, server = '')
         | 
| 18 | 
            +
                def initialize(config = {})
         | 
| 25 19 | 
             
                  @host = "https://server.api.mailchimp.com/3.0"
         | 
| 26 20 | 
             
                  @user_agent = "Swagger-Codegen/#{VERSION}/ruby"
         | 
| 27 | 
            -
                   | 
| 28 | 
            -
                    'Content-Type' => 'application/json',
         | 
| 29 | 
            -
                    'User-Agent' => @user_agent
         | 
| 30 | 
            -
                  }
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                  @api_key = api_key
         | 
| 33 | 
            -
                  @server = server || get_server_from_api_key(api_key)
         | 
| 21 | 
            +
                  set_config(config)
         | 
| 34 22 | 
             
                end
         | 
| 35 23 |  | 
| 36 24 | 
             
                def self.default
         | 
| @@ -39,153 +27,58 @@ module MailchimpMarketing | |
| 39 27 |  | 
| 40 28 | 
             
                def get_server_from_api_key(api_key = '')
         | 
| 41 29 | 
             
                  begin
         | 
| 42 | 
            -
                    split = api_key.split('- | 
| 43 | 
            -
                     | 
| 44 | 
            -
                     | 
| 30 | 
            +
                    split = api_key.split('-')
         | 
| 31 | 
            +
                    server = 'invalid-server'
         | 
| 32 | 
            +
                    if split.length == 2
         | 
| 33 | 
            +
                      server = split[1]
         | 
| 34 | 
            +
                    end
         | 
| 45 35 | 
             
                    server
         | 
| 46 36 | 
             
                  rescue
         | 
| 47 37 | 
             
                    ""
         | 
| 48 38 | 
             
                  end
         | 
| 49 39 | 
             
                end
         | 
| 50 40 |  | 
| 51 | 
            -
                def set_config( | 
| 52 | 
            -
                  @api_key = api_key ||  | 
| 53 | 
            -
                  @ | 
| 54 | 
            -
                end
         | 
| 41 | 
            +
                def set_config(config = {})
         | 
| 42 | 
            +
                  @api_key = config[:api_key] || ''
         | 
| 43 | 
            +
                  @is_basic_auth = @api_key.to_s.strip.empty? == false
         | 
| 55 44 |  | 
| 56 | 
            -
             | 
| 57 | 
            -
                   | 
| 58 | 
            -
                  query_params = opts[:query_params] || {}
         | 
| 59 | 
            -
                  form_params = opts[:form_params] || {}
         | 
| 45 | 
            +
                  @access_token = config[:access_token] || ''
         | 
| 46 | 
            +
                  @is_oauth = @access_token.to_s.strip.empty? == false
         | 
| 60 47 |  | 
| 61 | 
            -
                   | 
| 62 | 
            -
                   | 
| 63 | 
            -
             | 
| 64 | 
            -
                   | 
| 65 | 
            -
             | 
| 66 | 
            -
                  res = request(http_method, path, query_params, header_params, body)
         | 
| 67 | 
            -
             | 
| 68 | 
            -
                  data = nil
         | 
| 69 | 
            -
                  if res.headers['content-type'] && res.headers['content-type'].include?('application/json')
         | 
| 70 | 
            -
                    data = JSON.parse(res.body)
         | 
| 71 | 
            -
                  else
         | 
| 72 | 
            -
                    data = res.body
         | 
| 73 | 
            -
                  end
         | 
| 74 | 
            -
             | 
| 75 | 
            -
                  if data
         | 
| 76 | 
            -
                    if res.status <= 200
         | 
| 77 | 
            -
                      data
         | 
| 78 | 
            -
                    else
         | 
| 79 | 
            -
                      fail ApiError.new(res.body)
         | 
| 80 | 
            -
                    end
         | 
| 48 | 
            +
                  # If using Basic auth and no server is provided,
         | 
| 49 | 
            +
                  # attempt to extract it from the api_key directy.
         | 
| 50 | 
            +
                  @server = config[:server] || 'invalid-server'
         | 
| 51 | 
            +
                  if @server == 'invalid-server' && @is_basic_auth
         | 
| 52 | 
            +
                    @server = get_server_from_api_key(@api_key)
         | 
| 81 53 | 
             
                  end
         | 
| 82 54 | 
             
                end
         | 
| 83 55 |  | 
| 84 | 
            -
                def  | 
| 85 | 
            -
                   | 
| 86 | 
            -
                   | 
| 56 | 
            +
                def call_api(http_method, path, opts = {})
         | 
| 57 | 
            +
                  headers = {'Content-Type' => "application/json"}
         | 
| 58 | 
            +
                  headers[:Authorization] = "Basic #{@api_key}" if @is_basic_auth
         | 
| 59 | 
            +
                  headers[:Authorization] = "Bearer #@access_token" if @is_oauth
         | 
| 87 60 |  | 
| 88 | 
            -
                   | 
| 89 | 
            -
             | 
| 90 | 
            -
                    conn.headers = header_params
         | 
| 91 | 
            -
                    conn.basic_auth('user', @api_key)
         | 
| 92 | 
            -
                  end
         | 
| 61 | 
            +
                  host = @server.length > 0 ? @host.sub('server', @server) : @host
         | 
| 62 | 
            +
                  conn = Excon.new(host + path, :headers => headers)
         | 
| 93 63 |  | 
| 64 | 
            +
                  res = nil
         | 
| 94 65 | 
             
                  case http_method.to_sym.downcase
         | 
| 95 | 
            -
                  when :delete
         | 
| 96 | 
            -
                    conn. | 
| 97 | 
            -
                      req.body = body.to_json
         | 
| 98 | 
            -
                    end
         | 
| 66 | 
            +
                  when :post, :put, :delete
         | 
| 67 | 
            +
                    res = conn.request(:method => http_method, :body => opts[:body])
         | 
| 99 68 | 
             
                  when :get
         | 
| 100 | 
            -
                    conn.get
         | 
| 101 | 
            -
                  when :head
         | 
| 102 | 
            -
                    conn.head
         | 
| 103 | 
            -
                  when :options
         | 
| 104 | 
            -
                    conn.options
         | 
| 105 | 
            -
                  when :post
         | 
| 106 | 
            -
                    conn.post do |req|
         | 
| 107 | 
            -
                      req.body = body.to_json
         | 
| 108 | 
            -
                    end
         | 
| 109 | 
            -
                  when :put
         | 
| 110 | 
            -
                    conn.put do |req|
         | 
| 111 | 
            -
                      req.body = body.to_json
         | 
| 112 | 
            -
                    end
         | 
| 113 | 
            -
                  when :patch
         | 
| 114 | 
            -
                    conn.patch do |req|
         | 
| 115 | 
            -
                      req.body = body.to_json
         | 
| 116 | 
            -
                    end
         | 
| 117 | 
            -
                  else
         | 
| 118 | 
            -
                    fail ApiError.new('Invalid http_method')
         | 
| 69 | 
            +
                    res = conn.get(:query => opts[:query_params])
         | 
| 119 70 | 
             
                  end
         | 
| 120 | 
            -
                end
         | 
| 121 | 
            -
             | 
| 122 | 
            -
                # Sanitize filename by removing path.
         | 
| 123 | 
            -
                # e.g. ../../sun.gif becomes sun.gif
         | 
| 124 | 
            -
                #
         | 
| 125 | 
            -
                # @param [String] filename the filename to be sanitized
         | 
| 126 | 
            -
                # @return [String] the sanitized filename
         | 
| 127 | 
            -
                def sanitize_filename(filename)
         | 
| 128 | 
            -
                  filename.gsub(/.*[\/\\]/, '')
         | 
| 129 | 
            -
                end
         | 
| 130 | 
            -
             | 
| 131 | 
            -
                def build_request_url(path)
         | 
| 132 | 
            -
                  # Add leading and trailing slashes to path
         | 
| 133 | 
            -
                  path = "/#{path}".gsub(/\/+/, '/')
         | 
| 134 | 
            -
                  URI.encode(@config.base_url + path)
         | 
| 135 | 
            -
                end
         | 
| 136 71 |  | 
| 137 | 
            -
             | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
                # @param [Object] body HTTP body (JSON/XML)
         | 
| 142 | 
            -
                # @return [String] HTTP body data in the form of string
         | 
| 143 | 
            -
                def build_request_body(header_params, form_params, body)
         | 
| 144 | 
            -
                  # http form
         | 
| 145 | 
            -
                  if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
         | 
| 146 | 
            -
                      header_params['Content-Type'] == 'multipart/form-data'
         | 
| 147 | 
            -
                    data = {}
         | 
| 148 | 
            -
                    form_params.each do |key, value|
         | 
| 149 | 
            -
                      case value
         | 
| 150 | 
            -
                      when ::File, ::Array, nil
         | 
| 151 | 
            -
                        # let typhoeus handle File, Array and nil parameters
         | 
| 152 | 
            -
                        data[key] = value
         | 
| 153 | 
            -
                      else
         | 
| 154 | 
            -
                        data[key] = value.to_s
         | 
| 155 | 
            -
                      end
         | 
| 156 | 
            -
                    end
         | 
| 157 | 
            -
                  elsif body
         | 
| 158 | 
            -
                    data = body.is_a?(String) ? body : body.to_json
         | 
| 72 | 
            +
                  if res.status == 204
         | 
| 73 | 
            +
                    return "success"
         | 
| 74 | 
            +
                  elsif res.status == 200
         | 
| 75 | 
            +
                    return JSON.parse(res.body)
         | 
| 159 76 | 
             
                  else
         | 
| 160 | 
            -
                     | 
| 77 | 
            +
                    return res.body
         | 
| 161 78 | 
             
                  end
         | 
| 162 | 
            -
                  data
         | 
| 163 | 
            -
                end
         | 
| 164 | 
            -
             | 
| 165 | 
            -
                # Return Accept header based on an array of accepts provided.
         | 
| 166 | 
            -
                # @param [Array] accepts array for Accept
         | 
| 167 | 
            -
                # @return [String] the Accept header (e.g. application/json)
         | 
| 168 | 
            -
                def select_header_accept(accepts)
         | 
| 169 | 
            -
                  return nil if accepts.nil? || accepts.empty?
         | 
| 170 | 
            -
                  # use JSON when present, otherwise use all of the provided
         | 
| 171 | 
            -
                  json_accept = accepts.find { |s| json_mime?(s) }
         | 
| 172 | 
            -
                  json_accept || accepts.join(',')
         | 
| 173 | 
            -
                end
         | 
| 174 | 
            -
             | 
| 175 | 
            -
                # Return Content-Type header based on an array of content types provided.
         | 
| 176 | 
            -
                # @param [Array] content_types array for Content-Type
         | 
| 177 | 
            -
                # @return [String] the Content-Type header  (e.g. application/json)
         | 
| 178 | 
            -
                def select_header_content_type(content_types)
         | 
| 179 | 
            -
                  # use application/json by default
         | 
| 180 | 
            -
                  return 'application/json' if content_types.nil? || content_types.empty?
         | 
| 181 | 
            -
                  # use JSON when present, otherwise use the first one
         | 
| 182 | 
            -
                  json_content_type = content_types.find { |s| json_mime?(s) }
         | 
| 183 | 
            -
                  json_content_type || content_types.first
         | 
| 184 79 | 
             
                end
         | 
| 185 80 |  | 
| 186 81 | 
             
                # Convert object (array, hash, object, etc) to JSON string.
         | 
| 187 | 
            -
                # @param [Object] model object to be converted into JSON string
         | 
| 188 | 
            -
                # @return [String] JSON string representation of the object
         | 
| 189 82 | 
             
                def object_to_http_body(model)
         | 
| 190 83 | 
             
                  return model if model.nil? || model.is_a?(String)
         | 
| 191 84 | 
             
                  local_body = nil
         | 
| @@ -198,8 +91,6 @@ module MailchimpMarketing | |
| 198 91 | 
             
                end
         | 
| 199 92 |  | 
| 200 93 | 
             
                # Convert object(non-array) to hash.
         | 
| 201 | 
            -
                # @param [Object] obj object to be converted into JSON string
         | 
| 202 | 
            -
                # @return [String] JSON string representation of the object
         | 
| 203 94 | 
             
                def object_to_hash(obj)
         | 
| 204 95 | 
             
                  if obj.respond_to?(:to_hash)
         | 
| 205 96 | 
             
                    obj.to_hash
         | 
| @@ -209,7 +100,6 @@ module MailchimpMarketing | |
| 209 100 | 
             
                end
         | 
| 210 101 |  | 
| 211 102 | 
             
                # Build parameter value according to the given collection format.
         | 
| 212 | 
            -
                # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
         | 
| 213 103 | 
             
                def build_collection_param(param, collection_format)
         | 
| 214 104 | 
             
                  case collection_format
         | 
| 215 105 | 
             
                  when :csv
         | 
| @@ -221,23 +111,10 @@ module MailchimpMarketing | |
| 221 111 | 
             
                  when :pipes
         | 
| 222 112 | 
             
                    param.join('|')
         | 
| 223 113 | 
             
                  when :multi
         | 
| 224 | 
            -
                    # return the array directly as typhoeus will handle it as expected
         | 
| 225 114 | 
             
                    param
         | 
| 226 115 | 
             
                  else
         | 
| 227 116 | 
             
                    fail "unknown collection format: #{collection_format.inspect}"
         | 
| 228 117 | 
             
                  end
         | 
| 229 118 | 
             
                end
         | 
| 230 | 
            -
             | 
| 231 | 
            -
                # Check if the given MIME is a JSON MIME.
         | 
| 232 | 
            -
                # JSON MIME examples:
         | 
| 233 | 
            -
                #   application/json
         | 
| 234 | 
            -
                #   application/json; charset=UTF8
         | 
| 235 | 
            -
                #   APPLICATION/JSON
         | 
| 236 | 
            -
                #   */*
         | 
| 237 | 
            -
                # @param [String] mime MIME
         | 
| 238 | 
            -
                # @return [Boolean] True if the MIME is application/json
         | 
| 239 | 
            -
                def json_mime?(mime)
         | 
| 240 | 
            -
                  (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
         | 
| 241 | 
            -
                end
         | 
| 242 119 | 
             
              end
         | 
| 243 120 | 
             
            end
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 |  | 
| 4 4 | 
             
            #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
         | 
| 5 5 |  | 
| 6 | 
            -
            OpenAPI spec version: 3.0. | 
| 6 | 
            +
            OpenAPI spec version: 3.0.9
         | 
| 7 7 | 
             
            Contact: apihelp@mailchimp.com
         | 
| 8 8 | 
             
            Generated by: https://github.com/swagger-api/swagger-codegen.git
         | 
| 9 9 | 
             
            Swagger Codegen version: 2.4.12
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 |  | 
| 4 4 | 
             
            #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
         | 
| 5 5 |  | 
| 6 | 
            -
            OpenAPI spec version: 3.0. | 
| 6 | 
            +
            OpenAPI spec version: 3.0.9
         | 
| 7 7 | 
             
            Contact: apihelp@mailchimp.com
         | 
| 8 8 | 
             
            Generated by: https://github.com/swagger-api/swagger-codegen.git
         | 
| 9 9 | 
             
            Swagger Codegen version: 2.4.12
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 |  | 
| 4 4 | 
             
            #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
         | 
| 5 5 |  | 
| 6 | 
            -
            OpenAPI spec version: 3.0. | 
| 6 | 
            +
            OpenAPI spec version: 3.0.9
         | 
| 7 7 | 
             
            Contact: apihelp@mailchimp.com
         | 
| 8 8 | 
             
            Generated by: https://github.com/swagger-api/swagger-codegen.git
         | 
| 9 9 | 
             
            Swagger Codegen version: 2.4.12
         | 
| @@ -11,5 +11,5 @@ Swagger Codegen version: 2.4.12 | |
| 11 11 | 
             
            =end
         | 
| 12 12 |  | 
| 13 13 | 
             
            module MailchimpMarketing
         | 
| 14 | 
            -
              VERSION = '3.0. | 
| 14 | 
            +
              VERSION = '3.0.9'
         | 
| 15 15 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,35 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: MailchimpMarketing
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.0. | 
| 4 | 
            +
              version: 3.0.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Swagger-Codegen
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020- | 
| 11 | 
            +
            date: 2020-08-04 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name:  | 
| 14 | 
            +
              name: excon
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 20 | 
            -
                - - ">="
         | 
| 21 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            -
                    version: 1.0.1
         | 
| 19 | 
            +
                    version: 0.76.0
         | 
| 23 20 | 
             
              type: :runtime
         | 
| 24 21 | 
             
              prerelease: false
         | 
| 25 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 24 | 
             
                - - "~>"
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version:  | 
| 30 | 
            -
                - - ">="
         | 
| 31 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                    version: 1.0.1
         | 
| 26 | 
            +
                    version: 0.76.0
         | 
| 33 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 34 28 | 
             
              name: json
         | 
| 35 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         |