docmago_client 0.4.2 → 0.5.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/docmago_client/railtie.rb +5 -6
- data/lib/docmago_client/version.rb +1 -1
- data/lib/docmago_client.rb +16 -50
- metadata +5 -19
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 427cde4f1b93bca32ad2f0a36ba35a07d480eabc
         | 
| 4 | 
            +
              data.tar.gz: aba13394543c749323a9ac856a65d017db54c33e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d176c4ee995dfb48aa7f19b4c6902666a110ebce5ebd45a8f55766aa96d71acc9a109c470fd3c362df5bde26be6acf17b8bec97aa6a0d4d31e37a38819565122
         | 
| 7 | 
            +
              data.tar.gz: 86a8a5c31c85516d14da1a74bdadb05e2853a224fab66fd58e9dc9f8f64b43a84ea95fec918f85fd3b8ea86dba3de8eea8aee227c75561b3e3ef2b0b6dd4ea33
         | 
| @@ -31,14 +31,13 @@ module DocmagoClient | |
| 31 31 | 
             
                    options = default_options.merge(options)
         | 
| 32 32 | 
             
                    options[:content] ||= render_to_string(options)
         | 
| 33 33 |  | 
| 34 | 
            -
                     | 
| 35 | 
            -
                    logger.info "Docmago response - status: #{ | 
| 34 | 
            +
                    res = DocmagoClient.create(options)
         | 
| 35 | 
            +
                    logger.info "Docmago response - status: #{res.code}; size: #{res.body.size}"
         | 
| 36 36 |  | 
| 37 | 
            -
                    if  | 
| 38 | 
            -
                       | 
| 39 | 
            -
                      send_data docmago_response, filename: "#{options[:name]}.pdf", type: 'application/pdf', disposition: 'attachment'
         | 
| 37 | 
            +
                    if res.code == 200
         | 
| 38 | 
            +
                      send_data res.body, filename: "#{options[:name]}.pdf", type: 'application/pdf', disposition: 'attachment'
         | 
| 40 39 | 
             
                    else
         | 
| 41 | 
            -
                      render inline:  | 
| 40 | 
            +
                      render inline: res.body, status: res.code
         | 
| 42 41 | 
             
                    end
         | 
| 43 42 | 
             
                  end
         | 
| 44 43 | 
             
                end
         | 
    
        data/lib/docmago_client.rb
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            require ' | 
| 1 | 
            +
            require 'typhoeus'
         | 
| 2 2 | 
             
            require 'tempfile'
         | 
| 3 3 |  | 
| 4 4 | 
             
            require 'docmago_client/version'
         | 
| @@ -15,31 +15,21 @@ if defined?(Rails) | |
| 15 15 | 
             
            end
         | 
| 16 16 |  | 
| 17 17 | 
             
            module DocmagoClient
         | 
| 18 | 
            -
              include HTTMultiParty
         | 
| 19 | 
            -
             | 
| 20 | 
            -
              base_uri ENV['DOCMAGO_URL'] || 'https://docmago.com/api'
         | 
| 21 | 
            -
             | 
| 22 18 | 
             
              class << self
         | 
| 19 | 
            +
                attr_accessor :base_uri, :api_key
         | 
| 23 20 | 
             
                attr_writer :logger
         | 
| 24 21 |  | 
| 25 22 | 
             
                def logger
         | 
| 26 23 | 
             
                  @logger ||= Logger.new($stdout)
         | 
| 27 24 | 
             
                end
         | 
| 28 | 
            -
              end
         | 
| 29 25 |  | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
                 | 
| 33 | 
            -
              end
         | 
| 34 | 
            -
             | 
| 35 | 
            -
              def self.api_key(key = nil)
         | 
| 36 | 
            -
                default_options[:api_key] = key ? key : default_options[:api_key] || ENV['DOCMAGO_API_KEY']
         | 
| 37 | 
            -
                default_options[:api_key] || raise(DocmagoClient::Error::NoApiKeyProvidedError.new('No API key provided'))
         | 
| 38 | 
            -
              end
         | 
| 26 | 
            +
                def base_uri
         | 
| 27 | 
            +
                  @base_uri || ENV['DOCMAGO_URL'] || 'https://docmago.com/api'
         | 
| 28 | 
            +
                end
         | 
| 39 29 |  | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
                 | 
| 30 | 
            +
                def api_key
         | 
| 31 | 
            +
                  @api_key || ENV['DOCMAGO_API_KEY']
         | 
| 32 | 
            +
                end
         | 
| 43 33 | 
             
              end
         | 
| 44 34 |  | 
| 45 35 | 
             
              # when given a block, hands the block a TempFile of the resulting document
         | 
| @@ -58,8 +48,6 @@ module DocmagoClient | |
| 58 48 | 
             
                }
         | 
| 59 49 |  | 
| 60 50 | 
             
                options = default_options.merge(options)
         | 
| 61 | 
            -
                raise_exception_on_failure = options[:raise_exception_on_failure]
         | 
| 62 | 
            -
                options.delete :raise_exception_on_failure
         | 
| 63 51 |  | 
| 64 52 | 
             
                if options[:zip_resources]
         | 
| 65 53 | 
             
                  tmp_dir = Dir.mktmpdir
         | 
| @@ -68,16 +56,18 @@ module DocmagoClient | |
| 68 56 | 
             
                    options[:content] = File.new(resource_archiver.create_zip("#{tmp_dir}/document.zip"))
         | 
| 69 57 | 
             
                    options.delete :assets
         | 
| 70 58 |  | 
| 71 | 
            -
                    response = post | 
| 59 | 
            +
                    response = Typhoeus.post "#{base_uri}/documents", body: {
         | 
| 60 | 
            +
                      auth_token: api_key,
         | 
| 61 | 
            +
                      document: { content: options[:content] }
         | 
| 62 | 
            +
                    }
         | 
| 72 63 | 
             
                  ensure
         | 
| 73 64 | 
             
                    FileUtils.remove_entry_secure tmp_dir
         | 
| 74 65 | 
             
                  end
         | 
| 75 66 | 
             
                else
         | 
| 76 | 
            -
                  response = post | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
                  raise DocmagoClient::Exception::DocumentCreationFailure.new response.body, response.code
         | 
| 67 | 
            +
                  response = Typhoeus.post "#{base_uri}/documents", body: {
         | 
| 68 | 
            +
                    auth_token: api_key,
         | 
| 69 | 
            +
                    document: options
         | 
| 70 | 
            +
                  }
         | 
| 81 71 | 
             
                end
         | 
| 82 72 |  | 
| 83 73 | 
             
                if block_given?
         | 
| @@ -94,28 +84,4 @@ module DocmagoClient | |
| 94 84 | 
             
                  response
         | 
| 95 85 | 
             
                end
         | 
| 96 86 | 
             
              end
         | 
| 97 | 
            -
             | 
| 98 | 
            -
              def self.list_docs!(options = {})
         | 
| 99 | 
            -
                raise ArgumentError, 'please pass in an options hash' unless options.is_a? Hash
         | 
| 100 | 
            -
                list_docs options.merge(raise_exception_on_failure: true)
         | 
| 101 | 
            -
              end
         | 
| 102 | 
            -
             | 
| 103 | 
            -
              def self.list_docs(options = {})
         | 
| 104 | 
            -
                raise ArgumentError, 'please pass in an options hash' unless options.is_a? Hash
         | 
| 105 | 
            -
                default_options = {
         | 
| 106 | 
            -
                  page: 1,
         | 
| 107 | 
            -
                  per_page: 100,
         | 
| 108 | 
            -
                  raise_exception_on_failure: false
         | 
| 109 | 
            -
                }
         | 
| 110 | 
            -
                options = default_options.merge(options)
         | 
| 111 | 
            -
                raise_exception_on_failure = options[:raise_exception_on_failure]
         | 
| 112 | 
            -
                options.delete :raise_exception_on_failure
         | 
| 113 | 
            -
             | 
| 114 | 
            -
                response = get('/documents', query: options, basic_auth: { username: api_key })
         | 
| 115 | 
            -
                if raise_exception_on_failure && !response.success?
         | 
| 116 | 
            -
                  raise DocmagoClient::Exception::DocumentListingFailure.new response.body, response.code
         | 
| 117 | 
            -
                end
         | 
| 118 | 
            -
             | 
| 119 | 
            -
                response
         | 
| 120 | 
            -
              end
         | 
| 121 87 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,43 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: docmago_client
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jan Habermann
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-07- | 
| 11 | 
            +
            date: 2016-07-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name:  | 
| 14 | 
            +
              name: typhoeus
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 20 | 
            -
              type: :runtime
         | 
| 21 | 
            -
              prerelease: false
         | 
| 22 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            -
                requirements:
         | 
| 24 | 
            -
                - - ">="
         | 
| 25 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 0.13.0
         | 
| 27 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name: httmultiparty
         | 
| 29 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            -
                requirements:
         | 
| 31 | 
            -
                - - ">="
         | 
| 32 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: 0.3.10
         | 
| 19 | 
            +
                    version: '1.0'
         | 
| 34 20 | 
             
              type: :runtime
         | 
| 35 21 | 
             
              prerelease: false
         | 
| 36 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 23 | 
             
                requirements:
         | 
| 38 24 | 
             
                - - ">="
         | 
| 39 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: 0 | 
| 26 | 
            +
                    version: '1.0'
         | 
| 41 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 28 | 
             
              name: rubyzip
         | 
| 43 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         |