mad_cart 0.0.9 → 0.1.0
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/lib/mad_cart/store/big_commerce.rb +3 -4
- data/lib/mad_cart/store/o_auth_big_commerce.rb +23 -0
- data/lib/mad_cart/version.rb +1 -1
- data/lib/mad_cart.rb +1 -0
- data/spec/fixtures/vcr_cassettes/o_auth_big_commerce_store.yml +48 -0
- data/spec/lib/store/o_auth_big_commerce_spec.rb +38 -0
- metadata +8 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0b66da0d2b171917314fcb2ec4901ee401f520a6
         | 
| 4 | 
            +
              data.tar.gz: af1fafd0d9e6652b4d8ca9dca05e3123ff25767f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b9ab642eed49edc26f61b02979e4145990e56fa0c2ff39bdbb76eca4722f8984e56a23772a321bda3b928b4e27426956f16bcac81c76b8f7d01fc29253db1c4a
         | 
| 7 | 
            +
              data.tar.gz: 994a045e6a9188f759a11851b12170f1025ea59c49d631e9e53089f0f544ec587c40025aa984a6c3f53732ecf2c19b5645c3467003ed82450b3d7d7de567a26d
         | 
| @@ -46,13 +46,12 @@ module MadCart | |
| 46 46 | 
             
                    product_hashes.map do |p|
         | 
| 47 47 |  | 
| 48 48 | 
             
                      product_images = images.find { |i| i.first['product_id'] == p['id'] }
         | 
| 49 | 
            -
                       | 
| 50 | 
            -
                      image     = product_images.sort_by{|i| i["sort_order"] }.find { |i| i["is_thumbnail"] }
         | 
| 49 | 
            +
                      image          = product_images.sort_by{|i| i["sort_order"] }.find { |i| i["is_thumbnail"] }
         | 
| 51 50 |  | 
| 52 51 | 
             
                      p.merge({
         | 
| 53 52 | 
             
                        :url              => connection.build_url("#{p['custom_url']}").to_s,
         | 
| 54 | 
            -
                        :image_square_url =>  | 
| 55 | 
            -
                        :image_url        =>  | 
| 53 | 
            +
                        :image_square_url => image.try(:[], "thumbnail_url"),
         | 
| 54 | 
            +
                        :image_url        => image.try(:[], "standard_url")
         | 
| 56 55 | 
             
                      })
         | 
| 57 56 | 
             
                    end
         | 
| 58 57 | 
             
                  end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            module MadCart
         | 
| 2 | 
            +
              module Store
         | 
| 3 | 
            +
                class OAuthBigCommerce < BigCommerce
         | 
| 4 | 
            +
                  create_connection_with :create_connection, :requires => [:store_hash, :access_token, :client_id]
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  def api_url_for(store_hash)
         | 
| 7 | 
            +
                    "https://api.bigcommerce.com/#{store_hash}/v2/"
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  def create_connection(args={})
         | 
| 11 | 
            +
                    options = DEFAULT_CONNECTION_OPTIONS.merge(
         | 
| 12 | 
            +
                      :url => api_url_for(args[:store_hash])
         | 
| 13 | 
            +
                    )
         | 
| 14 | 
            +
                    Faraday.new(options) do |connection|
         | 
| 15 | 
            +
                      connection.headers["X-Auth-Client"] = args[:client_id]
         | 
| 16 | 
            +
                      connection.headers["X-Auth-Token"]  = args[:access_token]
         | 
| 17 | 
            +
                      connection.response :json
         | 
| 18 | 
            +
                      connection.adapter Faraday.default_adapter
         | 
| 19 | 
            +
                    end
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
    
        data/lib/mad_cart/version.rb
    CHANGED
    
    
    
        data/lib/mad_cart.rb
    CHANGED
    
    
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            http_interactions:
         | 
| 3 | 
            +
            - request:
         | 
| 4 | 
            +
                method: get
         | 
| 5 | 
            +
                uri: https://api.bigcommerce.com/stores/cr4wsh4/v2/store.json
         | 
| 6 | 
            +
                body:
         | 
| 7 | 
            +
                  encoding: US-ASCII
         | 
| 8 | 
            +
                  string: ''
         | 
| 9 | 
            +
                headers:
         | 
| 10 | 
            +
                  X-Auth-Client:
         | 
| 11 | 
            +
                  - db7uvk7wc5vstd3f1pw5ma1af13p93n
         | 
| 12 | 
            +
                  X-Auth-Token:
         | 
| 13 | 
            +
                  - q3l1fqfz08jqlxtvmavzgr8cjhmqaww
         | 
| 14 | 
            +
                  User-Agent:
         | 
| 15 | 
            +
                  - Faraday v0.9.1
         | 
| 16 | 
            +
                  Accept-Encoding:
         | 
| 17 | 
            +
                  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
         | 
| 18 | 
            +
                  Accept:
         | 
| 19 | 
            +
                  - "*/*"
         | 
| 20 | 
            +
              response:
         | 
| 21 | 
            +
                status:
         | 
| 22 | 
            +
                  code: 200
         | 
| 23 | 
            +
                  message: OK
         | 
| 24 | 
            +
                headers:
         | 
| 25 | 
            +
                  Server:
         | 
| 26 | 
            +
                  - nginx
         | 
| 27 | 
            +
                  Date:
         | 
| 28 | 
            +
                  - Thu, 02 Jul 2015 12:43:32 GMT
         | 
| 29 | 
            +
                  Content-Type:
         | 
| 30 | 
            +
                  - application/json
         | 
| 31 | 
            +
                  Content-Length:
         | 
| 32 | 
            +
                  - '735'
         | 
| 33 | 
            +
                  Connection:
         | 
| 34 | 
            +
                  - keep-alive
         | 
| 35 | 
            +
                  X-Bc-Apilimit-Remaining:
         | 
| 36 | 
            +
                  - '20000'
         | 
| 37 | 
            +
                  X-Bc-Is-Ha:
         | 
| 38 | 
            +
                  - '1'
         | 
| 39 | 
            +
                  X-Bc-Store-Version:
         | 
| 40 | 
            +
                  - 7.6.0
         | 
| 41 | 
            +
                body:
         | 
| 42 | 
            +
                  encoding: UTF-8
         | 
| 43 | 
            +
                  string: '{"id":"cr4wsh4","domain":"mimi.mybigcommerce.com","name":"","address":"","phone":"","admin_email":"stuart@siyelo.com","order_email":"stuart@siyelo.com","timezone":{"name":"Europe\/London","raw_offset":0,"dst_offset":0,"dst_correction":false,"date_format":{"display":"jS
         | 
| 44 | 
            +
                    M Y","export":"jS M Y","extended_display":"jS M Y @ g:i A"}},"language":"en","currency":"USD","currency_symbol":"$","decimal_separator":".","thousands_separator":",","decimal_places":2,"currency_symbol_location":"left","weight_units":"LBS","dimension_units":"Inches","dimension_decimal_places":"2","dimension_decimal_token":".","dimension_thousands_token":",","plan_name":"Partner
         | 
| 45 | 
            +
                    Sandbox","logo":[],"is_price_entered_with_tax":false,"active_comparison_modules":[]}'
         | 
| 46 | 
            +
                http_version: 
         | 
| 47 | 
            +
              recorded_at: Thu, 02 Jul 2015 12:43:41 GMT
         | 
| 48 | 
            +
            recorded_with: VCR 2.5.0
         | 
| @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            require "spec_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe MadCart::Store::OAuthBigCommerce do
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              subject { MadCart::Store::OAuthBigCommerce.new(valid_credentials) }
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              let(:valid_credentials) do
         | 
| 8 | 
            +
                {
         | 
| 9 | 
            +
                  :client_id    => 'db7uvk7wc5vstd3f1pw5ma1af13p93n',
         | 
| 10 | 
            +
                  :store_hash   => 'stores/cr4wsh4',
         | 
| 11 | 
            +
                  :access_token => 'q3l1fqfz08jqlxtvmavzgr8cjhmqaww'
         | 
| 12 | 
            +
                }
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              describe "store" do
         | 
| 16 | 
            +
                it "expects to be instantiated with an client id, store hash and access token" do
         | 
| 17 | 
            +
                  expect{
         | 
| 18 | 
            +
                    MadCart::Store::OAuthBigCommerce.new(
         | 
| 19 | 
            +
                      :client_id => 'test', :store_hash => 'test'
         | 
| 20 | 
            +
                    ).connection
         | 
| 21 | 
            +
                  }.to raise_error(ArgumentError)
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  expect{
         | 
| 24 | 
            +
                    MadCart::Store::OAuthBigCommerce.new(
         | 
| 25 | 
            +
                      :client_id => 'test', :store_hash => 'test', :access_token => "madeYouLook"
         | 
| 26 | 
            +
                    ).connection
         | 
| 27 | 
            +
                  }.not_to raise_error
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                context "retrieval" do
         | 
| 31 | 
            +
                  it "returns the store" do
         | 
| 32 | 
            +
                    VCR.use_cassette('o_auth_big_commerce_store') do
         | 
| 33 | 
            +
                      subject.store.should_not be_nil
         | 
| 34 | 
            +
                    end
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: mad_cart
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Marc Heiligers
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2015- | 
| 13 | 
            +
            date: 2015-07-13 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: faraday
         | 
| @@ -218,6 +218,7 @@ files: | |
| 218 218 | 
             
            - lib/mad_cart/store/base.rb
         | 
| 219 219 | 
             
            - lib/mad_cart/store/big_commerce.rb
         | 
| 220 220 | 
             
            - lib/mad_cart/store/etsy.rb
         | 
| 221 | 
            +
            - lib/mad_cart/store/o_auth_big_commerce.rb
         | 
| 221 222 | 
             
            - lib/mad_cart/store/spree.rb
         | 
| 222 223 | 
             
            - lib/mad_cart/version.rb
         | 
| 223 224 | 
             
            - mad_cart.gemspec
         | 
| @@ -230,6 +231,7 @@ files: | |
| 230 231 | 
             
            - spec/fixtures/vcr_cassettes/big_commerce_time.yml
         | 
| 231 232 | 
             
            - spec/fixtures/vcr_cassettes/etsy_store_does_not_exist.yml
         | 
| 232 233 | 
             
            - spec/fixtures/vcr_cassettes/etsy_store_listings.yml
         | 
| 234 | 
            +
            - spec/fixtures/vcr_cassettes/o_auth_big_commerce_store.yml
         | 
| 233 235 | 
             
            - spec/fixtures/vcr_cassettes/spree.yml
         | 
| 234 236 | 
             
            - spec/fixtures/vcr_cassettes/spree_alternative.yml
         | 
| 235 237 | 
             
            - spec/fixtures/vcr_cassettes/spree_invalid_key.yml
         | 
| @@ -242,6 +244,7 @@ files: | |
| 242 244 | 
             
            - spec/lib/store/base_spec.rb
         | 
| 243 245 | 
             
            - spec/lib/store/big_commerce_spec.rb
         | 
| 244 246 | 
             
            - spec/lib/store/etsy_spec.rb
         | 
| 247 | 
            +
            - spec/lib/store/o_auth_big_commerce_spec.rb
         | 
| 245 248 | 
             
            - spec/lib/store/spree_spec.rb
         | 
| 246 249 | 
             
            - spec/spec_helper.rb
         | 
| 247 250 | 
             
            homepage: https://github.com/madmimi/mad_cart
         | 
| @@ -264,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 264 267 | 
             
                  version: '0'
         | 
| 265 268 | 
             
            requirements: []
         | 
| 266 269 | 
             
            rubyforge_project: 
         | 
| 267 | 
            -
            rubygems_version: 2. | 
| 270 | 
            +
            rubygems_version: 2.4.3
         | 
| 268 271 | 
             
            signing_key: 
         | 
| 269 272 | 
             
            specification_version: 4
         | 
| 270 273 | 
             
            summary: Allows communication with various e-commerce merchants such as BigCommerce
         | 
| @@ -280,6 +283,7 @@ test_files: | |
| 280 283 | 
             
            - spec/fixtures/vcr_cassettes/big_commerce_time.yml
         | 
| 281 284 | 
             
            - spec/fixtures/vcr_cassettes/etsy_store_does_not_exist.yml
         | 
| 282 285 | 
             
            - spec/fixtures/vcr_cassettes/etsy_store_listings.yml
         | 
| 286 | 
            +
            - spec/fixtures/vcr_cassettes/o_auth_big_commerce_store.yml
         | 
| 283 287 | 
             
            - spec/fixtures/vcr_cassettes/spree.yml
         | 
| 284 288 | 
             
            - spec/fixtures/vcr_cassettes/spree_alternative.yml
         | 
| 285 289 | 
             
            - spec/fixtures/vcr_cassettes/spree_invalid_key.yml
         | 
| @@ -292,6 +296,6 @@ test_files: | |
| 292 296 | 
             
            - spec/lib/store/base_spec.rb
         | 
| 293 297 | 
             
            - spec/lib/store/big_commerce_spec.rb
         | 
| 294 298 | 
             
            - spec/lib/store/etsy_spec.rb
         | 
| 299 | 
            +
            - spec/lib/store/o_auth_big_commerce_spec.rb
         | 
| 295 300 | 
             
            - spec/lib/store/spree_spec.rb
         | 
| 296 301 | 
             
            - spec/spec_helper.rb
         | 
| 297 | 
            -
            has_rdoc: 
         |