nitroapi 0.0.8 → 0.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.
- data/lib/nitro_api.rb +32 -7
- data/lib/nitro_api/version.rb +1 -1
- data/spec/nitro_api_spec.rb +36 -0
- metadata +2 -2
    
        data/lib/nitro_api.rb
    CHANGED
    
    | @@ -129,7 +129,11 @@ module NitroApi | |
| 129 129 | 
             
                end
         | 
| 130 130 |  | 
| 131 131 | 
             
                def base_url
         | 
| 132 | 
            -
                  "#{self.protocol}://#{self.host} | 
| 132 | 
            +
                  "#{self.protocol}://#{self.host}#{base_url_path}"
         | 
| 133 | 
            +
                end
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                def base_url_path
         | 
| 136 | 
            +
                  "/nitro/#{self.accepts}"
         | 
| 133 137 | 
             
                end
         | 
| 134 138 |  | 
| 135 139 | 
             
                private
         | 
| @@ -152,14 +156,35 @@ module NitroApi | |
| 152 156 | 
             
                end
         | 
| 153 157 |  | 
| 154 158 | 
             
                def really_make_call params, method
         | 
| 155 | 
            -
                   | 
| 156 | 
            -
             | 
| 157 | 
            -
                     | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
                     | 
| 159 | 
            +
                  data = nil
         | 
| 160 | 
            +
                  if :http == protocol or 'http' == protocol
         | 
| 161 | 
            +
                    if :get == method
         | 
| 162 | 
            +
                      request = "#{base_url}?#{to_query(params)}"
         | 
| 163 | 
            +
                      data = Net::HTTP.get(URI.parse(request))
         | 
| 164 | 
            +
                    elsif :post == method
         | 
| 165 | 
            +
                      data = Net::HTTP.post_form(URI.parse(base_url), params)
         | 
| 166 | 
            +
                      data = data.body
         | 
| 167 | 
            +
                    end
         | 
| 168 | 
            +
                  elsif :https == protocol or 'https' == protocol
         | 
| 169 | 
            +
                    http = Net::HTTP.new(host, 443)
         | 
| 170 | 
            +
                    http.use_ssl = true
         | 
| 171 | 
            +
                    http.verify_mode = OpenSSL::SSL::VERIFY_PEER
         | 
| 172 | 
            +
             | 
| 173 | 
            +
                    if :get == method
         | 
| 174 | 
            +
                      request = "#{base_url_path}?#{to_query(params)}"
         | 
| 175 | 
            +
                      data = http.request(Net::HTTP::Get.new(request))
         | 
| 176 | 
            +
                      data = data.body
         | 
| 177 | 
            +
                    elsif :post == method
         | 
| 178 | 
            +
                      request = Net::HTTP::Post.new(base_url_path)
         | 
| 179 | 
            +
                      request.set_form_data(params)
         | 
| 180 | 
            +
                      data = http.request request
         | 
| 181 | 
            +
                      data = data.body
         | 
| 182 | 
            +
                    end
         | 
| 183 | 
            +
                  else
         | 
| 184 | 
            +
                    raise NitroError.new(1), "Unknown protocl: #{protocol.to_s}"
         | 
| 161 185 | 
             
                  end
         | 
| 162 186 |  | 
| 187 | 
            +
             | 
| 163 188 | 
             
                  json = JSON.parse(data)
         | 
| 164 189 | 
             
                  response = json["Nitro"]
         | 
| 165 190 | 
             
                  error = response["Error"]
         | 
    
        data/lib/nitro_api/version.rb
    CHANGED
    
    
    
        data/spec/nitro_api_spec.rb
    CHANGED
    
    | @@ -60,6 +60,15 @@ describe NitroApi do | |
| 60 60 | 
             
                end
         | 
| 61 61 | 
             
              end
         | 
| 62 62 |  | 
| 63 | 
            +
              describe "#base_url_path" do
         | 
| 64 | 
            +
                it "correclty users the configured accepts value" do
         | 
| 65 | 
            +
                  @nitro.base_url_path.should == '/nitro/json'
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                  @nitro.accepts = 'xml'
         | 
| 68 | 
            +
                  @nitro.base_url_path.should == '/nitro/xml'
         | 
| 69 | 
            +
                end
         | 
| 70 | 
            +
              end
         | 
| 71 | 
            +
             | 
| 63 72 | 
             
              context "when authenticated" do
         | 
| 64 73 | 
             
                before do
         | 
| 65 74 | 
             
                  @nitro.session = @session
         | 
| @@ -467,8 +476,35 @@ describe NitroApi do | |
| 467 476 | 
             
                      expect {@nitro.action_history 'action1'}.to raise_error(NitroApi::NitroError)
         | 
| 468 477 | 
             
                    end
         | 
| 469 478 | 
             
                  end
         | 
| 479 | 
            +
                end
         | 
| 480 | 
            +
              end
         | 
| 481 | 
            +
             | 
| 482 | 
            +
              context "https connections" do
         | 
| 483 | 
            +
                it "makes a single call successfully via https" do
         | 
| 484 | 
            +
                  @nitro.protocol = 'https'
         | 
| 485 | 
            +
                  mock_json = {"Nitro" => {"Login" => {"sessionKey" => @session}}}
         | 
| 486 | 
            +
                  url = @nitro.base_url + "?.*method=user.login.*"
         | 
| 487 | 
            +
                  stub_http_request(:get, Regexp.new(url)).
         | 
| 488 | 
            +
                      to_return(:body => mock_json.to_json)
         | 
| 470 489 |  | 
| 490 | 
            +
                  @nitro.login
         | 
| 491 | 
            +
                  @nitro.session.should == @session
         | 
| 492 | 
            +
                end
         | 
| 493 | 
            +
             | 
| 494 | 
            +
                it "makes a batch call successfully via https" do
         | 
| 495 | 
            +
                  @nitro.protocol = 'https'
         | 
| 496 | 
            +
                  mock_json = {'Nitro' => {'Login' => {'sessionKey' => @session}, 'method' => 'user.login', 'res' => 'ok'}}
         | 
| 497 | 
            +
                  url = @nitro.base_url #+ "?.*method=batch.run.*"
         | 
| 498 | 
            +
                  stub_http_request(:get, Regexp.new(url)).
         | 
| 499 | 
            +
                      to_return(:body => mock_json.to_json)
         | 
| 500 | 
            +
             | 
| 501 | 
            +
                  @nitro.start_batch!
         | 
| 502 | 
            +
                  @nitro.login
         | 
| 503 | 
            +
                  @nitro.run_batch
         | 
| 504 | 
            +
             | 
| 505 | 
            +
                  @nitro.session.should == @session
         | 
| 471 506 | 
             
                end
         | 
| 472 507 | 
             
              end
         | 
| 508 | 
            +
             | 
| 473 509 | 
             
            end
         | 
| 474 510 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: nitroapi
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.9
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012-12- | 
| 13 | 
            +
            date: 2012-12-09 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: activesupport
         |