klaviyo-api-sdk 1.0.0 → 1.0.1
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/CHANGELOG.md +5 -0
- data/README.md +3 -3
- data/klaviyo-api-sdk.gemspec +1 -1
- data/lib/klaviyo-api-sdk/api_client.rb +22 -1
- data/test.rb +50 -0
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e6d69c30e7ef51bcaf0cf14baa93eeb17151088e851e90534f1a987deda6078f
         | 
| 4 | 
            +
              data.tar.gz: 31f9ffc768a778fba13c9b0619dc1257311f287dcdff61af47444d32dcebc41e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0f1f8ce2bbe0b436b7f97cd7bcea5f0e79ce959c6172ae87c47f83ef360817e386efaa9559462c26c5b7ff183d1362744a41a054767fa8c8d6c4374ca099c2e6
         | 
| 7 | 
            +
              data.tar.gz: 5edad8110899a5f21ac4f2da43698a549693feb8ea33a92a204cf30d59529c2c5f6e338c11e5eeb3f825ba0c569eb2262e8593682c7396fe11e1031be8ee3e45
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. | |
| 4 4 | 
             
            The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
         | 
| 5 5 | 
             
            and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
         | 
| 6 6 |  | 
| 7 | 
            +
            ## [1.0.1] - 2022-12-06
         | 
| 8 | 
            +
            ### Changes
         | 
| 9 | 
            +
            - Support for cursor pagination
         | 
| 10 | 
            +
                - Passing the `next` value from a paginated result to the following call via the `page_cursor` query string argument will now result in the cursor being parsed and set appropriately by the `ApiClient`.
         | 
| 11 | 
            +
             | 
| 7 12 | 
             
            ## [1.0.0] - 2022-10-19
         | 
| 8 13 | 
             
            ### Added
         | 
| 9 14 | 
             
            - Initial release
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # Klaviyo Ruby SDK
         | 
| 2 2 |  | 
| 3 | 
            -
            - SDK version: 1.0. | 
| 3 | 
            +
            - SDK version: 1.0.1
         | 
| 4 4 | 
             
            - API revision: 2022-10-17
         | 
| 5 5 |  | 
| 6 6 | 
             
            ## Helpful Resources
         | 
| @@ -70,13 +70,13 @@ gem build klaviyo-api-sdk.gemspec | |
| 70 70 | 
             
            Then install the gem locally:
         | 
| 71 71 |  | 
| 72 72 | 
             
            ```shell
         | 
| 73 | 
            -
            gem install ./klaviyo-api-sdk-1.0. | 
| 73 | 
            +
            gem install ./klaviyo-api-sdk-1.0.1.gem
         | 
| 74 74 | 
             
            ```
         | 
| 75 75 |  | 
| 76 76 |  | 
| 77 77 | 
             
            Finally add this to the Gemfile:
         | 
| 78 78 |  | 
| 79 | 
            -
                gem 'klaviyo-api-sdk', '~> 1.0. | 
| 79 | 
            +
                gem 'klaviyo-api-sdk', '~> 1.0.1'
         | 
| 80 80 |  | 
| 81 81 | 
             
            To install directly from rubygems:
         | 
| 82 82 |  | 
    
        data/klaviyo-api-sdk.gemspec
    CHANGED
    
    | @@ -17,7 +17,7 @@ require "klaviyo-api-sdk/version" | |
| 17 17 |  | 
| 18 18 | 
             
            Gem::Specification.new do |s|
         | 
| 19 19 | 
             
              s.name        = "klaviyo-api-sdk"
         | 
| 20 | 
            -
              s.version     = "1.0. | 
| 20 | 
            +
              s.version     = "1.0.1"
         | 
| 21 21 | 
             
              s.authors     = ['Klaviyo Team']
         | 
| 22 22 | 
             
              s.email       = ['libraries@klaviyo.com']
         | 
| 23 23 | 
             
              s.summary     = 'You heard us, a Ruby wrapper for the Klaviyo API'
         | 
| @@ -15,6 +15,7 @@ require 'json' | |
| 15 15 | 
             
            require 'logger'
         | 
| 16 16 | 
             
            require 'tempfile'
         | 
| 17 17 | 
             
            require 'time'
         | 
| 18 | 
            +
            require 'uri'
         | 
| 18 19 | 
             
            require 'typhoeus'
         | 
| 19 20 |  | 
| 20 21 | 
             
            module KlaviyoAPI
         | 
| @@ -31,7 +32,7 @@ module KlaviyoAPI | |
| 31 32 | 
             
                # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
         | 
| 32 33 | 
             
                def initialize(config = Configuration.default)
         | 
| 33 34 | 
             
                  @config = config
         | 
| 34 | 
            -
                  @user_agent = "klaviyo-api-ruby/1.0. | 
| 35 | 
            +
                  @user_agent = "klaviyo-api-ruby/1.0.1"
         | 
| 35 36 | 
             
                  @default_headers = {
         | 
| 36 37 | 
             
                    'Content-Type' => 'application/json',
         | 
| 37 38 | 
             
                    'User-Agent' => @user_agent
         | 
| @@ -96,6 +97,7 @@ module KlaviyoAPI | |
| 96 97 | 
             
                  follow_location = opts[:follow_location] || true
         | 
| 97 98 |  | 
| 98 99 | 
             
                  update_params_for_auth! header_params, query_params, opts[:auth_names]
         | 
| 100 | 
            +
                  update_page_cursor! header_params, query_params
         | 
| 99 101 |  | 
| 100 102 | 
             
                  # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
         | 
| 101 103 | 
             
                  _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
         | 
| @@ -313,6 +315,25 @@ module KlaviyoAPI | |
| 313 315 | 
             
                  end
         | 
| 314 316 | 
             
                end
         | 
| 315 317 |  | 
| 318 | 
            +
                # Sets page[cursor] in query_params from parsed URI
         | 
| 319 | 
            +
                #
         | 
| 320 | 
            +
                # @param [Hash] header_params Header parameters
         | 
| 321 | 
            +
                # @param [Hash] query_params Query parameters
         | 
| 322 | 
            +
                def update_page_cursor!(header_params, query_params)
         | 
| 323 | 
            +
                  page_cursor_key = "page[cursor]"
         | 
| 324 | 
            +
                  page_cursor = query_params[page_cursor_key.to_sym]
         | 
| 325 | 
            +
             | 
| 326 | 
            +
                  return if page_cursor.nil? || page_cursor.empty?
         | 
| 327 | 
            +
             | 
| 328 | 
            +
                  if page_cursor.is_a?(String) && page_cursor.include?('https://')
         | 
| 329 | 
            +
                    query = CGI::parse(URI(page_cursor).query)
         | 
| 330 | 
            +
             | 
| 331 | 
            +
                    return if !query.keys.include?(page_cursor_key)
         | 
| 332 | 
            +
             | 
| 333 | 
            +
                    query_params[page_cursor_key.to_sym] = query[page_cursor_key].first
         | 
| 334 | 
            +
                  end
         | 
| 335 | 
            +
                end
         | 
| 336 | 
            +
             | 
| 316 337 | 
             
                # Sets user agent in HTTP header
         | 
| 317 338 | 
             
                #
         | 
| 318 339 | 
             
                # @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
         | 
    
        data/test.rb
    ADDED
    
    | @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            # Load the gem
         | 
| 2 | 
            +
            require 'klaviyo-api-sdk'
         | 
| 3 | 
            +
            require 'uri'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            # Setup authorization
         | 
| 6 | 
            +
            KlaviyoAPI.configure do |config|
         | 
| 7 | 
            +
              config.api_key['Klaviyo-API-Key'] = 'Klaviyo-API-Key pk_51c0b2da23ca58ae5eac3d6fcfa55d6e20'
         | 
| 8 | 
            +
              #config.max_retries = 5 # optional
         | 
| 9 | 
            +
              #config.max_delay = 60 # optional
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            opts = {
         | 
| 13 | 
            +
                "page%5Bcursor%5D": "bmV4dDo6aWQ6OjAxRzRKVjFIMk1NTk02NkE2MVFHWDdXVlFZ",
         | 
| 14 | 
            +
                "another": "value"
         | 
| 15 | 
            +
            }
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            begin
         | 
| 18 | 
            +
                KlaviyoAPI::Profiles.get_profiles()
         | 
| 19 | 
            +
            end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            opts = {
         | 
| 22 | 
            +
                "page%5Bcursor%5D": "https://a.klaviyo.com/api/profiles/?page%5Bcursor%5D=bmV4dDo6aWQ6Ok43dW1iVw&another=value"
         | 
| 23 | 
            +
            }
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            begin
         | 
| 26 | 
            +
                KlaviyoAPI::Profiles.get_profiles(opts)
         | 
| 27 | 
            +
            end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            opts = {
         | 
| 30 | 
            +
                "page_cursor": "bmV4dDo6aWQ6OjAxRzRKVjFIMk1NTk02NkE2MVFHWDdXVlFZ",
         | 
| 31 | 
            +
                "another": "value"
         | 
| 32 | 
            +
            }
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            begin
         | 
| 35 | 
            +
                KlaviyoAPI::Profiles.get_profiles(opts)
         | 
| 36 | 
            +
            end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            opts = {
         | 
| 39 | 
            +
                "page_cursor": "https://a.klaviyo.com/api/profiles/?page%5Bcursor%5D=bmV4dDo6aWQ6Ok43dW1iVw&another=value"
         | 
| 40 | 
            +
            }
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            begin
         | 
| 43 | 
            +
                KlaviyoAPI::Profiles.get_profiles(opts)
         | 
| 44 | 
            +
            end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            # uri = "https://a.klaviyo.com/api/profiles/?page%5Bcursor%5D=bmV4dDo6aWQ6OjAxRzRKVjFIMk1NTk02NkE2MVFHWDdXVlFZ&another=value"
         | 
| 47 | 
            +
            # query = URI(uri).query.split('&').map{|x| x.to_s.split('=')}
         | 
| 48 | 
            +
            # # p query
         | 
| 49 | 
            +
            # p "\n"
         | 
| 50 | 
            +
            # print CGI::parse(URI(uri).query)["page[cursor]"]
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: klaviyo-api-sdk
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Klaviyo Team
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022- | 
| 11 | 
            +
            date: 2022-12-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: retriable
         | 
| @@ -555,6 +555,7 @@ files: | |
| 555 555 | 
             
            - spec/models/v2_template_render_query_as_sub_resource_spec.rb
         | 
| 556 556 | 
             
            - spec/models/v2_template_render_query_spec.rb
         | 
| 557 557 | 
             
            - spec/spec_helper.rb
         | 
| 558 | 
            +
            - test.rb
         | 
| 558 559 | 
             
            homepage: https://www.klaviyo.com/
         | 
| 559 560 | 
             
            licenses:
         | 
| 560 561 | 
             
            - MIT
         |