Skip to content

DocBase API Client, written in Ruby

License

Notifications You must be signed in to change notification settings

krayinc/docbase-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docbase-ruby

Build Status

DocBase API Client, written in Ruby.

Installation

Add this line to your application's Gemfile:

gem 'docbase'

And then execute:

$ bundle

Or install it yourself as:

$ gem install docbase

Usage

client = DocBase::Client.new(access_token: 'your_access_token', team: 'your_team')

Docbase::Client.new options

  • access_token
    • access token
  • team
    • team subdomain
  • retry_on_rate_limit_exceeded
    • #16
    • true or false

users

client.users(q: 'name')
client.users(q: 'name', page: 2)
client.users(q: 'name', page: 1, per_page: 100)
client.users(q: 'name', page: 1, per_page: 100, include_user_groups: true)

tags

client.tags.body
# => [{ name: 'ruby' }, { name: 'rails' }]

groups

List

client.groups.body
client.groups(name: 'developers').body
client.groups(page: 2, per_page: 10).body

Show

client.group(1).body

Create

params = {
  name: 'group',
  description: 'Important group.',
}

client.create_group(params)

Add users to group

params = {
  group_id: 1,
  user_ids: [10, 11, 12]
}

client.add_users_to_group(params)

Remove users from group

params = {
  group_id: 1,
  user_ids: [10, 11, 12]
}

client.remove_users_from_group(params)

posts

Search

client.posts(q: 'body')
client.posts(q: 'body', page: 2)
client.posts(q: 'body', page: 1, per_page: 100)

Show

client.post(1)

Create

params = {
  title: 'memo title',
  body: 'memo body',
  draft: false,
  tags: ['rails', 'ruby'],
  scope: 'group',
  groups: [1],
  notice: true,
}

client.create_post(params)

Update

params = {
  id: 1,
  title: 'memo title',
  body: 'memo body',
  draft: false,
  tags: ['rails', 'ruby'],
  scope: 'group',
  groups: [1],
  notice: true,
}

client.update_post(params)

Archive

client.archive_post(1)

Unarchive

client.unarchive_post(1)

Delete

client.delete_post(1)

Comment

Create

params = {
  post_id: 1,
  body: 'GJ!!',
  notice: true,
}

client.create_comment(params)

Delete

client.delete_comment(1)

attachments

Create

client.upload('./test.jpg')
client.upload(['./test.jpg', './README.md'])

Download

response = client.attachment(file_id)
File.open(file_id, 'wb') { |f| f.write(response.body) }

switch team

client = DocBase::Client.new(access_token: 'your_access_token', team: 'kray')
client.tags.body
# => [{ name: 'ruby' }, { name: 'rails' }]

client.team = 'danny'
client.access_token = 'danny_team_access_token'
client.tags.body
# => [{ name: 'javascript' }, { name: 'react' }]

API Document

https://help.docbase.io/posts/45703

License

The gem is available as open source under the terms of the MIT License.