docbase 0.1.2 → 0.2.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 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