docbase 2.1.1 → 2.1.2
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 +4 -0
- data/README.md +10 -0
- data/lib/docbase/client.rb +39 -20
- data/lib/docbase/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 20af66cc5d5085854e9aef5f65e57383291a8f217961a4fa6cead0bb2e678941
         | 
| 4 | 
            +
              data.tar.gz: 24cf39072ac1eaf9c4cc700f6ee2bcc694939b5c4d26427cb932aedeabf499f0
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 12a494552034d86ba01f68a95e30a438ed068307223d83dd23b9e92fa23f15a85dc98cee60577342696b123ec2b5153f0935d77b58a3887f810da919beb7b0f8
         | 
| 7 | 
            +
              data.tar.gz: d5dc0fea1f5d08a13ea5df13c38c504e11a80b5a82f121ce9afe7d087cb1d4b06d48188434939bd41758a67029aacc692fd7db8466fd5db9c1f2fe6023a3ef7c
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -26,6 +26,16 @@ Or install it yourself as: | |
| 26 26 | 
             
            client = DocBase::Client.new(access_token: 'your_access_token', team: 'your_team')
         | 
| 27 27 | 
             
            ```
         | 
| 28 28 |  | 
| 29 | 
            +
            ### Docbase::Client.new options
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            * access_token
         | 
| 32 | 
            +
                * access token
         | 
| 33 | 
            +
            * team
         | 
| 34 | 
            +
                * team subdomain
         | 
| 35 | 
            +
            * retry_on_rate_limit_exceeded
         | 
| 36 | 
            +
                * [#16](https://github.com/krayinc/docbase-ruby/issues/16)
         | 
| 37 | 
            +
                * true or false
         | 
| 38 | 
            +
             | 
| 29 39 | 
             
            ### users
         | 
| 30 40 |  | 
| 31 41 | 
             
            ```ruby
         | 
    
        data/lib/docbase/client.rb
    CHANGED
    
    | @@ -5,13 +5,15 @@ module DocBase | |
| 5 5 |  | 
| 6 6 | 
             
                class NotSetTeamError < StandardError; end
         | 
| 7 7 | 
             
                class NotSetPostIdError < StandardError; end
         | 
| 8 | 
            +
                class TooManyRequestError < StandardError; end
         | 
| 8 9 |  | 
| 9 | 
            -
                attr_accessor :team, :access_token
         | 
| 10 | 
            +
                attr_accessor :team, :access_token, :retry_on_rate_limit_exceeded
         | 
| 10 11 |  | 
| 11 | 
            -
                def initialize(access_token: nil, url: nil, team: nil)
         | 
| 12 | 
            +
                def initialize(access_token: nil, url: nil, team: nil, retry_on_rate_limit_exceeded: false)
         | 
| 12 13 | 
             
                  self.access_token = access_token
         | 
| 13 14 | 
             
                  self.team = team
         | 
| 14 15 | 
             
                  @url = url || DEFAULT_URL
         | 
| 16 | 
            +
                  self.retry_on_rate_limit_exceeded = retry_on_rate_limit_exceeded
         | 
| 15 17 | 
             
                end
         | 
| 16 18 |  | 
| 17 19 | 
             
                def team!
         | 
| @@ -20,23 +22,23 @@ module DocBase | |
| 20 22 | 
             
                end
         | 
| 21 23 |  | 
| 22 24 | 
             
                def users(q: nil, page: 1, per_page: 100, include_user_groups: false)
         | 
| 23 | 
            -
                   | 
| 25 | 
            +
                  request(method: :get, path: "/teams/#{team!}/users", params: { q: q, page: page, per_page: per_page, include_user_groups: include_user_groups })
         | 
| 24 26 | 
             
                end
         | 
| 25 27 |  | 
| 26 28 | 
             
                def tags
         | 
| 27 | 
            -
                   | 
| 29 | 
            +
                  request(method: :get, path: "/teams/#{team!}/tags")
         | 
| 28 30 | 
             
                end
         | 
| 29 31 |  | 
| 30 32 | 
             
                def groups(name: nil, page: 1, per_page: 100)
         | 
| 31 | 
            -
                   | 
| 33 | 
            +
                  request(method: :get, path: "/teams/#{team!}/groups", params: { name: name, page: page, per_page: per_page })
         | 
| 32 34 | 
             
                end
         | 
| 33 35 |  | 
| 34 36 | 
             
                def group(id)
         | 
| 35 | 
            -
                   | 
| 37 | 
            +
                  request(method: :get, path: "/teams/#{team!}/groups/#{id}")
         | 
| 36 38 | 
             
                end
         | 
| 37 39 |  | 
| 38 40 | 
             
                def create_group(params)
         | 
| 39 | 
            -
                   | 
| 41 | 
            +
                  request(method: :post, path: "/teams/#{team!}/groups", params: params)
         | 
| 40 42 | 
             
                end
         | 
| 41 43 |  | 
| 42 44 | 
             
                def add_users_to_group(params)
         | 
| @@ -44,7 +46,7 @@ module DocBase | |
| 44 46 | 
             
                  raise NotSetTeamError if group_id <= 0
         | 
| 45 47 |  | 
| 46 48 | 
             
                  users_params = except(params, :group_id)
         | 
| 47 | 
            -
                   | 
| 49 | 
            +
                  request(method: :post, path: "/teams/#{team!}/groups/#{group_id}/users", params: users_params)
         | 
| 48 50 | 
             
                end
         | 
| 49 51 |  | 
| 50 52 | 
             
                def remove_users_from_group(params)
         | 
| @@ -52,19 +54,19 @@ module DocBase | |
| 52 54 | 
             
                  raise NotSetTeamError if group_id <= 0
         | 
| 53 55 |  | 
| 54 56 | 
             
                  users_params = except(params, :group_id)
         | 
| 55 | 
            -
                   | 
| 57 | 
            +
                  request(method: :delete, path: "/teams/#{team!}/groups/#{group_id}/users", params: users_params)
         | 
| 56 58 | 
             
                end
         | 
| 57 59 |  | 
| 58 60 | 
             
                def post(id)
         | 
| 59 | 
            -
                   | 
| 61 | 
            +
                  request(method: :get, path: "/teams/#{team!}/posts/#{id}")
         | 
| 60 62 | 
             
                end
         | 
| 61 63 |  | 
| 62 64 | 
             
                def posts(q: '*', page: 1, per_page: 20)
         | 
| 63 | 
            -
                   | 
| 65 | 
            +
                  request(method: :get, path: "/teams/#{team!}/posts", params: { q: q, page: page, per_page: per_page })
         | 
| 64 66 | 
             
                end
         | 
| 65 67 |  | 
| 66 68 | 
             
                def create_post(params)
         | 
| 67 | 
            -
                   | 
| 69 | 
            +
                  request(method: :post, path: "/teams/#{team!}/posts", params: params)
         | 
| 68 70 | 
             
                end
         | 
| 69 71 |  | 
| 70 72 | 
             
                def update_post(params)
         | 
| @@ -72,19 +74,19 @@ module DocBase | |
| 72 74 | 
             
                  raise NotSetTeamError if post_id <= 0
         | 
| 73 75 |  | 
| 74 76 | 
             
                  post_params = except(params, :id)
         | 
| 75 | 
            -
                   | 
| 77 | 
            +
                  request(method: :patch, path: "/teams/#{team!}/posts/#{post_id}", params: post_params)
         | 
| 76 78 | 
             
                end
         | 
| 77 79 |  | 
| 78 80 | 
             
                def delete_post(id)
         | 
| 79 | 
            -
                   | 
| 81 | 
            +
                  request(method: :delete, path: "/teams/#{team!}/posts/#{id}")
         | 
| 80 82 | 
             
                end
         | 
| 81 83 |  | 
| 82 84 | 
             
                def archive_post(id)
         | 
| 83 | 
            -
                   | 
| 85 | 
            +
                  request(method: :put, path: "/teams/#{team!}/posts/#{id}/archive")
         | 
| 84 86 | 
             
                end
         | 
| 85 87 |  | 
| 86 88 | 
             
                def unarchive_post(id)
         | 
| 87 | 
            -
                   | 
| 89 | 
            +
                  request(method: :put, path: "/teams/#{team!}/posts/#{id}/unarchive")
         | 
| 88 90 | 
             
                end
         | 
| 89 91 |  | 
| 90 92 | 
             
                def create_comment(params)
         | 
| @@ -92,11 +94,11 @@ module DocBase | |
| 92 94 | 
             
                  raise NotSetTeamError if post_id <= 0
         | 
| 93 95 |  | 
| 94 96 | 
             
                  comment_params = except(params, :post_id)
         | 
| 95 | 
            -
                   | 
| 97 | 
            +
                  request(method: :post, path: "/teams/#{team!}/posts/#{post_id}/comments", params: params)
         | 
| 96 98 | 
             
                end
         | 
| 97 99 |  | 
| 98 100 | 
             
                def delete_comment(id)
         | 
| 99 | 
            -
                   | 
| 101 | 
            +
                  request(method: :delete, path: "/teams/#{team!}/comments/#{id}")
         | 
| 100 102 | 
             
                end
         | 
| 101 103 |  | 
| 102 104 | 
             
                def upload(paths)
         | 
| @@ -110,11 +112,11 @@ module DocBase | |
| 110 112 | 
             
                    }
         | 
| 111 113 | 
             
                  end
         | 
| 112 114 |  | 
| 113 | 
            -
                   | 
| 115 | 
            +
                  request(method: :post, path: "/teams/#{team!}/attachments", params: params)
         | 
| 114 116 | 
             
                end
         | 
| 115 117 |  | 
| 116 118 | 
             
                def attachment(id)
         | 
| 117 | 
            -
                   | 
| 119 | 
            +
                  request(method: :get, path: "/teams/#{team!}/attachments/#{id}", for_binary: true)
         | 
| 118 120 | 
             
                end
         | 
| 119 121 |  | 
| 120 122 | 
             
                private
         | 
| @@ -146,5 +148,22 @@ module DocBase | |
| 146 148 | 
             
                    'X-Api-Version'  => '2',
         | 
| 147 149 | 
             
                  }
         | 
| 148 150 | 
             
                end
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                def request(method:, path:, params: nil, for_binary: false)
         | 
| 153 | 
            +
                  response = for_binary ? connection_for_binary.send(method, path, params) : connection.send(method, path, params)
         | 
| 154 | 
            +
                  raise TooManyRequestError if retry_on_rate_limit_exceeded && response.status == 429
         | 
| 155 | 
            +
                  response
         | 
| 156 | 
            +
                rescue TooManyRequestError
         | 
| 157 | 
            +
                  reset_time = response.headers['x-ratelimit-reset'].to_i
         | 
| 158 | 
            +
                  puts "DocBase API Rate limit exceeded: will retry at #{Time.at(reset_time).strftime("%Y/%m/%d %H:%M:%S")}."
         | 
| 159 | 
            +
                  wait_for(reset_time)
         | 
| 160 | 
            +
                  retry
         | 
| 161 | 
            +
                end
         | 
| 162 | 
            +
             | 
| 163 | 
            +
                def wait_for(reset_time)
         | 
| 164 | 
            +
                  wait_time = reset_time - Time.now.to_i
         | 
| 165 | 
            +
                  return if wait_time <= 0
         | 
| 166 | 
            +
                  sleep wait_time
         | 
| 167 | 
            +
                end
         | 
| 149 168 | 
             
              end
         | 
| 150 169 | 
             
            end
         | 
    
        data/lib/docbase/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: docbase
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.1. | 
| 4 | 
            +
              version: 2.1.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - ttakuru88
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021- | 
| 11 | 
            +
            date: 2021-05-11 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faraday
         | 
| @@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 79 79 | 
             
                - !ruby/object:Gem::Version
         | 
| 80 80 | 
             
                  version: '0'
         | 
| 81 81 | 
             
            requirements: []
         | 
| 82 | 
            -
            rubygems_version: 3. | 
| 82 | 
            +
            rubygems_version: 3.1.4
         | 
| 83 83 | 
             
            signing_key: 
         | 
| 84 84 | 
             
            specification_version: 4
         | 
| 85 85 | 
             
            summary: DocBase API Client, written in Ruby
         |