docbase 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 151bf8c6289ab8b74c375048d99a1cf1cfcb6ea8
4
- data.tar.gz: f97b6b6d6f19d9e6841720116ef55d3a74cb3b96
2
+ SHA256:
3
+ metadata.gz: c2d65f2f3fb4a25a80d4e2af783875a176674c6093a9829f0b205cb86bb2fbd8
4
+ data.tar.gz: 51f0a2db6fdfd4e847e7b656899a73a527adc84d015d762115c733b6fcfe91b3
5
5
  SHA512:
6
- metadata.gz: 8213d466ced2ce304a1bee3d4816fd09d59711aec4b9f1d35ef6ab4ddc5b5f153307139e905faee806b2d09b08522e12cc94d5dbae3d89e9ce7681a4d96143af
7
- data.tar.gz: a63a92e62858cde3d0cbd18c55fe32a615519defe4ececee404d064d0f64c53ca0732ea7c19e826706441d904d553de99ba6f2134a3bbd0948713f0376446876
6
+ metadata.gz: cb7f9710e9d71f611ae07752a4b27f8200a446b5402b16b0f32d19d2d8a07fcd4a3431915abb9c6f8b0df7b682d02da326a1cbfe3817f71df4a392de9bab9ecf
7
+ data.tar.gz: b50365c05cbe7cf072f8e27aa1c29362356759bc75d43325663843833b87ff1cf81c684e1fdba02156c0c87132a0930d9c40bafa2b3886105c7b83e1e2dce7aa
@@ -0,0 +1,12 @@
1
+ ## 0.2.0
2
+
3
+ * メモ作成のメソッド名変更
4
+ * `posts` -> `create_post`
5
+ * メモ検索、取得、更新、削除のAPIに対応
6
+ * コメント作成、削除のAPIに対応
7
+ * グループ作成、取得のAPIに対応
8
+ * ファイルアップロードのAPIに対応
9
+
10
+ ## 0.1.2
11
+
12
+ * release
data/README.md CHANGED
@@ -49,15 +49,64 @@ client.tags.body
49
49
 
50
50
  ### groups
51
51
 
52
+ #### List
53
+
52
54
  ```ruby
53
55
  client.groups.body
54
- # => [{ id: 1, name: 'DocBase' }, { id: 2, name: 'kray' }]
56
+ ```
57
+
58
+ #### Show
59
+
60
+ ```ruby
61
+ client.group(1).body
62
+ ```
63
+
64
+ #### Create
65
+
66
+ ```ruby
67
+ params = {
68
+ name: 'group',
69
+ description: 'Important group.',
70
+ }
71
+
72
+ client.create_group(params)
55
73
  ```
56
74
 
57
75
  ### posts
58
76
 
77
+ #### Search
78
+
79
+ ```ruby
80
+ client.create_posts(q: 'body')
81
+ ```
82
+
83
+ #### Show
84
+
85
+ ```ruby
86
+ client.post(1)
87
+ ```
88
+
89
+ #### Create
90
+
91
+ ```ruby
92
+ params = {
93
+ title: 'memo title',
94
+ body: 'memo body',
95
+ draft: false,
96
+ tags: ['rails', 'ruby'],
97
+ scope: 'group',
98
+ groups: [1],
99
+ notice: true,
100
+ }
101
+
102
+ client.create_post(params)
103
+ ```
104
+
105
+ #### Update
106
+
59
107
  ```ruby
60
108
  params = {
109
+ id: 1,
61
110
  title: 'memo title',
62
111
  body: 'memo body',
63
112
  draft: false,
@@ -67,27 +116,42 @@ params = {
67
116
  notice: true,
68
117
  }
69
118
 
70
- client.posts(params).body
71
- # => {
72
- # id: 1,
73
- # title: 'memo title',
74
- # body: 'memo body',
75
- # draft: false,
76
- # url: 'https://kray.docbase.io/posts/1',
77
- # created_at: '2015-03-10T12:01:54+09:00',
78
- # tags: [
79
- # { name: 'rails' },
80
- # { name: 'ruby' },
81
- # ],
82
- # scope: 'group',
83
- # groups: [
84
- # { name: 'DocBase' }
85
- # ],
86
- # user: {
87
- # id: 1,
88
- # name: 'danny'
89
- # },
90
- # }
119
+ client.update_post(params)
120
+ ```
121
+
122
+ #### Delete
123
+
124
+ ```ruby
125
+ client.delete_post(1)
126
+ ```
127
+
128
+ ### Comment
129
+
130
+ #### Create
131
+
132
+ ```ruby
133
+ params = {
134
+ post_id: 1,
135
+ body: 'GJ!!',
136
+ notice: true,
137
+ }
138
+
139
+ client.create_comment(params)
140
+ ```
141
+
142
+ #### Delete
143
+
144
+ ```ruby
145
+ client.delete_comment(1)
146
+ ```
147
+
148
+ ### attachments
149
+
150
+ #### Create
151
+
152
+ ```ruby
153
+ client.upload('./test.jpg')
154
+ client.upload(['./test.jpg', './README.md'])
91
155
  ```
92
156
 
93
157
  ### switch team
@@ -109,4 +173,3 @@ client.tags.body
109
173
  ## License
110
174
 
111
175
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
112
-
@@ -5,8 +5,8 @@ require 'docbase/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'docbase'
7
7
  spec.version = DocBase::VERSION
8
- spec.authors = ['danny']
9
- spec.email = ['danny@kray.jp']
8
+ spec.authors = ['ttakuru88']
9
+ spec.email = ['asaumi+docbase-ruby@kray.jp']
10
10
 
11
11
  spec.summary = 'DocBase API Client, written in Ruby'
12
12
  spec.description = 'DocBase API Client, written in Ruby'
@@ -17,9 +17,9 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_runtime_dependency 'faraday', '~> 0.9.2'
21
- spec.add_runtime_dependency 'faraday_middleware', '~> 0.10.0'
22
- spec.add_development_dependency 'bundler', '~> 1.7'
23
- spec.add_development_dependency 'rake', '~> 10.0'
24
- spec.add_development_dependency 'rspec', '~> 3.4.0'
20
+ spec.add_runtime_dependency 'faraday', '~> 0.15.2'
21
+ spec.add_runtime_dependency 'faraday_middleware', '~> 0.12.2'
22
+ spec.add_development_dependency 'bundler', '~> 1.16'
23
+ spec.add_development_dependency 'rake', '~> 10.4'
24
+ spec.add_development_dependency 'rspec', '~> 3.8.0'
25
25
  end
@@ -1,3 +1,4 @@
1
+ require 'base64'
1
2
  require 'faraday'
2
3
  require 'faraday_middleware'
3
4
  require 'docbase/version'
@@ -4,21 +4,16 @@ module DocBase
4
4
  USER_AGENT = "DocBase Ruby Gem #{DocBase::VERSION}"
5
5
 
6
6
  class NotSetTeamError < StandardError; end
7
+ class NotSetPostIdError < StandardError; end
8
+
9
+ attr_accessor :team
7
10
 
8
11
  def initialize(access_token: nil, url: nil, team: nil)
9
12
  @access_token = access_token || ENV['DOCBASE_ACCESS_TOKEN']
10
- @team = team
13
+ self.team = team
11
14
  @url = url || DEFAULT_URL
12
15
  end
13
16
 
14
- def team=(team)
15
- @team = team
16
- end
17
-
18
- def team
19
- @team
20
- end
21
-
22
17
  def team!
23
18
  raise NotSetTeamError unless @team
24
19
  @team
@@ -36,10 +31,70 @@ module DocBase
36
31
  connection.get("/teams/#{team!}/groups")
37
32
  end
38
33
 
39
- def posts(params)
34
+ def group(id)
35
+ connection.get("/teams/#{team!}/groups/#{id}")
36
+ end
37
+
38
+ def create_group(params)
39
+ connection.post("/teams/#{team!}/groups", params)
40
+ end
41
+
42
+ def post(id)
43
+ connection.get("/teams/#{team!}/posts/#{id}")
44
+ end
45
+
46
+ def posts(q: '*')
47
+ connection.get("/teams/#{team!}/posts", q: q)
48
+ end
49
+
50
+ def create_post(params)
40
51
  connection.post("/teams/#{team!}/posts", params)
41
52
  end
42
53
 
54
+ def update_post(params)
55
+ post_id = params[:id].to_i
56
+ raise NotSetTeamError if post_id <= 0
57
+
58
+ post_params = except(params, :id)
59
+ connection.patch("/teams/#{team!}/posts/#{post_id}", post_params)
60
+ end
61
+
62
+ def delete_post(id)
63
+ connection.delete("/teams/#{team!}/posts/#{id}")
64
+ end
65
+
66
+ def create_comment(params)
67
+ post_id = params[:post_id].to_i
68
+ raise NotSetTeamError if post_id <= 0
69
+
70
+ comment_params = except(params, :post_id)
71
+ connection.post("/teams/#{team!}/posts/#{post_id}/comments", params)
72
+ end
73
+
74
+ def delete_comment(id)
75
+ connection.delete("/teams/#{team!}/comments/#{id}")
76
+ end
77
+
78
+ def upload(paths)
79
+ paths = [paths] unless paths.instance_of?(Array)
80
+
81
+ params = paths.map do |path|
82
+ file = File.new(path, 'r+b')
83
+ {
84
+ name: file.path.split('/').last,
85
+ content: Base64.strict_encode64(file.read),
86
+ }
87
+ end
88
+
89
+ connection.post("/teams/#{team!}/attachments", params)
90
+ end
91
+
92
+ private
93
+
94
+ def except(hash, reject_key)
95
+ hash.reject { |key, _| key == reject_key }
96
+ end
97
+
43
98
  def connection
44
99
  @connection ||= Faraday.new({ url: @url, headers: headers }) do |faraday|
45
100
  faraday.request :json
@@ -1,3 +1,3 @@
1
1
  module DocBase
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,95 +1,96 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - danny
7
+ - ttakuru88
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-24 00:00:00.000000000 Z
11
+ date: 2018-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.2
19
+ version: 0.15.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.9.2
26
+ version: 0.15.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday_middleware
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.10.0
33
+ version: 0.12.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.10.0
40
+ version: 0.12.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.7'
47
+ version: '1.16'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.7'
54
+ version: '1.16'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '10.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '10.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 3.4.0
75
+ version: 3.8.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 3.4.0
82
+ version: 3.8.0
83
83
  description: DocBase API Client, written in Ruby
84
84
  email:
85
- - danny@kray.jp
85
+ - asaumi+docbase-ruby@kray.jp
86
86
  executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - .gitignore
91
- - .rspec
92
- - .travis.yml
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".travis.yml"
93
+ - CHANGELOG.md
93
94
  - CODE_OF_CONDUCT.md
94
95
  - Gemfile
95
96
  - LICENSE.txt
@@ -111,17 +112,17 @@ require_paths:
111
112
  - lib
112
113
  required_ruby_version: !ruby/object:Gem::Requirement
113
114
  requirements:
114
- - - '>='
115
+ - - ">="
115
116
  - !ruby/object:Gem::Version
116
117
  version: '0'
117
118
  required_rubygems_version: !ruby/object:Gem::Requirement
118
119
  requirements:
119
- - - '>='
120
+ - - ">="
120
121
  - !ruby/object:Gem::Version
121
122
  version: '0'
122
123
  requirements: []
123
124
  rubyforge_project:
124
- rubygems_version: 2.0.14
125
+ rubygems_version: 2.7.6
125
126
  signing_key:
126
127
  specification_version: 4
127
128
  summary: DocBase API Client, written in Ruby