solidus_signifyd 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/app/controllers/spree/api/spree_signifyd/orders_controller.rb +7 -2
- data/lib/spree_signifyd.rb +1 -1
- data/lib/spree_signifyd/request_verifier.rb +0 -4
- data/solidus_signifyd.gemspec +2 -2
- data/spec/lib/spree_signifyd/request_verifier_spec.rb +0 -14
- data/spec/lib/spree_signifyd_spec.rb +8 -0
- metadata +8 -28
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d4a72f66712b1ec31d58c43b6376ec26d73fa0b3
         | 
| 4 | 
            +
              data.tar.gz: 82f7c527003108aa93f77df909191963ab0643b8
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f4ac359792627cf09505a0b68aa7ec26c7b627ef4d3de66c2d009882aac691e99a3aed2703d2828c23d8e35f436c2118997b211d615dfacf6f72d6e60c7f8b15
         | 
| 7 | 
            +
              data.tar.gz: 6c96d211b2d6f697cbdd100d635eaa8b98845c5dd8116f71e43eb0125a2089dd0d3c57583be3237e7a247187ba2d4feb30dc8f419ecce50792b963a2640417f4
         | 
| @@ -22,9 +22,14 @@ module Spree::Api::SpreeSignifyd | |
| 22 22 |  | 
| 23 23 | 
             
                def authorize
         | 
| 24 24 | 
             
                  request_sha = request.headers['HTTP_HTTP_X_SIGNIFYD_HMAC_SHA256']
         | 
| 25 | 
            -
                  computed_sha = build_sha(SpreeSignifyd::Config[:api_key],  | 
| 25 | 
            +
                  computed_sha = build_sha(SpreeSignifyd::Config[:api_key], request.raw_post)
         | 
| 26 26 |  | 
| 27 | 
            -
                   | 
| 27 | 
            +
                  if !Devise.secure_compare(request_sha, computed_sha)
         | 
| 28 | 
            +
                    logger.error("computed digest does not match provided digest. computed=#{computed_sha.inspect} provided=#{request_sha.inspect}")
         | 
| 29 | 
            +
                    logger.info("content-type header: #{request.headers["Content-Type"].inspect}")
         | 
| 30 | 
            +
                    logger.info("raw_post bytes: #{request.raw_post.bytes}")
         | 
| 31 | 
            +
                    head 401
         | 
| 32 | 
            +
                  end
         | 
| 28 33 | 
             
                end
         | 
| 29 34 |  | 
| 30 35 | 
             
                def load_order
         | 
    
        data/lib/spree_signifyd.rb
    CHANGED
    
    | @@ -20,7 +20,7 @@ module SpreeSignifyd | |
| 20 20 |  | 
| 21 21 | 
             
              def approve(order:)
         | 
| 22 22 | 
             
                order.contents.approve(name: self.name)
         | 
| 23 | 
            -
                order.shipments.each { |shipment| shipment.ready!  | 
| 23 | 
            +
                order.shipments.each { |shipment| shipment.ready! if shipment.pending? }
         | 
| 24 24 | 
             
                order.updater.update_shipment_state
         | 
| 25 25 | 
             
                order.save!
         | 
| 26 26 | 
             
              end
         | 
| @@ -1,10 +1,6 @@ | |
| 1 1 | 
             
            module SpreeSignifyd
         | 
| 2 2 | 
             
              module RequestVerifier
         | 
| 3 3 |  | 
| 4 | 
            -
                def encode_request(request_body)
         | 
| 5 | 
            -
                  request_body.force_encoding('ISO-8859-1').encode('UTF-8')
         | 
| 6 | 
            -
                end
         | 
| 7 | 
            -
             | 
| 8 4 | 
             
                def build_sha(key, message)
         | 
| 9 5 | 
             
                  sha256 = OpenSSL::Digest::SHA256.new
         | 
| 10 6 | 
             
                  digest = OpenSSL::HMAC.digest(sha256, key, message)
         | 
    
        data/solidus_signifyd.gemspec
    CHANGED
    
    | @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            Gem::Specification.new do |s|
         | 
| 4 4 | 
             
              s.platform    = Gem::Platform::RUBY
         | 
| 5 5 | 
             
              s.name        = "solidus_signifyd"
         | 
| 6 | 
            -
              s.version     = "1.0. | 
| 6 | 
            +
              s.version     = "1.0.1"
         | 
| 7 7 | 
             
              s.summary     = "Solidus extension for communicating with Signifyd to check orders for fraud."
         | 
| 8 8 | 
             
              s.description = s.summary
         | 
| 9 9 |  | 
| @@ -22,7 +22,7 @@ Gem::Specification.new do |s| | |
| 22 22 | 
             
              s.add_dependency "active_model_serializers", "0.9.3"
         | 
| 23 23 | 
             
              s.add_dependency "resque", "~> 1.25.1"
         | 
| 24 24 | 
             
              s.add_dependency "signifyd", "~> 0.1.5"
         | 
| 25 | 
            -
              s.add_dependency "solidus",  | 
| 25 | 
            +
              s.add_dependency "solidus", "~> 1.0"
         | 
| 26 26 | 
             
              s.add_dependency "devise"
         | 
| 27 27 |  | 
| 28 28 | 
             
              s.add_development_dependency "rspec-rails",  "~> 2.13"
         | 
| @@ -4,20 +4,6 @@ module SpreeSignifyd | |
| 4 4 | 
             
              describe RequestVerifier do
         | 
| 5 5 | 
             
                include RequestVerifier
         | 
| 6 6 |  | 
| 7 | 
            -
                describe "#encode_request" do
         | 
| 8 | 
            -
                  context "request has special characters" do
         | 
| 9 | 
            -
                    it "returns an unescaped UTF-8 string" do
         | 
| 10 | 
            -
                      expect(encode_request("R\xE9n\xE9 Pe\xF1a")).to eq "Réné Peña"
         | 
| 11 | 
            -
                    end
         | 
| 12 | 
            -
                  end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                  context "request doesn't contain special characters" do
         | 
| 15 | 
            -
                    it "returns the original string" do
         | 
| 16 | 
            -
                      expect(encode_request("John Doe")).to eq "John Doe"
         | 
| 17 | 
            -
                    end
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
             | 
| 21 7 | 
             
                describe "#build_sha" do
         | 
| 22 8 | 
             
                  it "returns an HMAC SHA256 encoded message" do
         | 
| 23 9 | 
             
                    expect(build_sha('ABCDE', 'test')).to eq "K0y2rIeTA77lBEHP8cRPk64fVRbhMrZqEk7la39EjEM="
         | 
| @@ -53,6 +53,14 @@ module SpreeSignifyd | |
| 53 53 | 
             
                    order.shipments.each { |shipment| shipment.should_receive(:ready!) }
         | 
| 54 54 | 
             
                    approve
         | 
| 55 55 | 
             
                  end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  describe "when order has shipments that are not pending" do
         | 
| 58 | 
            +
                    it "progresses the pending one(s) and ignores the rest" do
         | 
| 59 | 
            +
                      shipped_shipment = order.shipments.create(state: :shipped)
         | 
| 60 | 
            +
                      expect(shipped_shipment).to receive(:ready).never
         | 
| 61 | 
            +
                      expect { approve }.to change { order.approved_at }
         | 
| 62 | 
            +
                    end
         | 
| 63 | 
            +
                  end
         | 
| 56 64 | 
             
                end
         | 
| 57 65 |  | 
| 58 66 | 
             
                describe ".create_case" do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: solidus_signifyd
         | 
| 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 | 
             
            - Bonobos
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2016-01-13 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: active_model_serializers
         | 
| @@ -56,22 +56,16 @@ dependencies: | |
| 56 56 | 
             
              name: solidus
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - - " | 
| 60 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: 1.0.0
         | 
| 62 | 
            -
                - - "<"
         | 
| 59 | 
            +
                - - "~>"
         | 
| 63 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 64 | 
            -
                    version: 1. | 
| 61 | 
            +
                    version: '1.0'
         | 
| 65 62 | 
             
              type: :runtime
         | 
| 66 63 | 
             
              prerelease: false
         | 
| 67 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 68 65 | 
             
                requirements:
         | 
| 69 | 
            -
                - - " | 
| 70 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 71 | 
            -
                    version: 1.0.0
         | 
| 72 | 
            -
                - - "<"
         | 
| 66 | 
            +
                - - "~>"
         | 
| 73 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 74 | 
            -
                    version: 1. | 
| 68 | 
            +
                    version: '1.0'
         | 
| 75 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 76 70 | 
             
              name: devise
         | 
| 77 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -278,22 +272,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 278 272 | 
             
            requirements:
         | 
| 279 273 | 
             
            - none
         | 
| 280 274 | 
             
            rubyforge_project: 
         | 
| 281 | 
            -
            rubygems_version: 2. | 
| 275 | 
            +
            rubygems_version: 2.5.1
         | 
| 282 276 | 
             
            signing_key: 
         | 
| 283 277 | 
             
            specification_version: 4
         | 
| 284 278 | 
             
            summary: Solidus extension for communicating with Signifyd to check orders for fraud.
         | 
| 285 | 
            -
            test_files:
         | 
| 286 | 
            -
            - spec/controllers/spree/api/spree_signifyd/orders_controller_spec.rb
         | 
| 287 | 
            -
            - spec/lib/spree_signifyd/create_signifyd_case_spec.rb
         | 
| 288 | 
            -
            - spec/lib/spree_signifyd/request_verifier_spec.rb
         | 
| 289 | 
            -
            - spec/lib/spree_signifyd_spec.rb
         | 
| 290 | 
            -
            - spec/models/spree/order_spec.rb
         | 
| 291 | 
            -
            - spec/models/spree/shipment_spec.rb
         | 
| 292 | 
            -
            - spec/serializers/spree_signifyd/address_serializer_spec.rb
         | 
| 293 | 
            -
            - spec/serializers/spree_signifyd/billing_address_serializer.rb
         | 
| 294 | 
            -
            - spec/serializers/spree_signifyd/credit_card_serializer_spec.rb
         | 
| 295 | 
            -
            - spec/serializers/spree_signifyd/delivery_address_serializer_spec.rb
         | 
| 296 | 
            -
            - spec/serializers/spree_signifyd/line_item_serializer_spec.rb
         | 
| 297 | 
            -
            - spec/serializers/spree_signifyd/order_serializer_spec.rb
         | 
| 298 | 
            -
            - spec/serializers/spree_signifyd/user_serializer_spec.rb
         | 
| 299 | 
            -
            - spec/spec_helper.rb
         | 
| 279 | 
            +
            test_files: []
         |