crowi-client 0.1.3 → 0.1.4

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
2
  SHA256:
3
- metadata.gz: eb8de429163b68735051986cd2d5f170432a86cfcad3c3c9f7bd4603eab4c1aa
4
- data.tar.gz: f3c30c62593640650ea8d0bd205a6eb5a6575989bfd0184bdb4d1e590c841ac3
3
+ metadata.gz: 27b61000e5d32781330c8b28a95bd5fae5cec26cb9ad1e525575d2a285a7a971
4
+ data.tar.gz: de26c5480ae0c69df1142215cc7dec282655b79458787191f29bd768f5334cfb
5
5
  SHA512:
6
- metadata.gz: dc7d6343d24f79765b24e4bc91cde68405c900768042d41a56c27d96db91dd3e0b1777bee59163a980a10085356aaba266286389b7eb1db8bd46d1a8b998e651
7
- data.tar.gz: 2b0a7733d190acda7830b2fe250cc75d230fbecfb67be3232c58c39e43d2fc1897c6b6c91d9d78f850ecb4af6e4b2cdaff702227206f284bde3745f83af71248
6
+ metadata.gz: 468e265e36c000263960f29e72171f93a5f580dc3f23a680fe27a9481055cc27ba6b1c1e16e8fd86e8bbcb2ed973f02f6499c9c4ecbf4ec1ec7db36760148b63
7
+ data.tar.gz: 8721f9e22543c7f362c27334ff51d748d56f48dc1d828687092f59a3147c3f0157444bd40cd0579ab63638f9fbc5436de975787e6878ee779bda14ef3afa84ba
data/.gitignore CHANGED
File without changes
data/.rspec CHANGED
File without changes
File without changes
File without changes
data/Gemfile CHANGED
File without changes
data/LICENSE CHANGED
File without changes
File without changes
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![wercker status](https://app.wercker.com/status/8d49d851e9cdf0c7e1b7c840cc2fe6ad/s/master "wercker status")](https://app.wercker.com/project/byKey/8d49d851e9cdf0c7e1b7c840cc2fe6ad)
2
+
1
3
  # crowi-client -- client of crowi with use API
2
4
 
3
5
  A client of crowi with use API.
@@ -32,15 +34,15 @@ require 'crowi-client'
32
34
 
33
35
  crowi_client = CrowiClient.new(crowi_url: ENV['CROWI_URL'], access_token: ENV['CROWI_ACCESS_TOKEN'])
34
36
 
35
- puts crowi_client.page_exist?( path_exp: '/' )
36
- puts crowi_client.attachment_exist?( path_exp: '/', attachment_name: 'LICENSE.txt' )
37
+ p crowi_client.page_exist?( path_exp: '/' )
38
+ p crowi_client.attachment_exist?( path_exp: '/', attachment_name: 'LICENSE.txt' )
37
39
  ```
38
40
 
39
41
  ## Examples
40
42
 
41
43
  ```ruby
42
44
  # get page's ID
43
- puts crowi_client.page_id( path_exp: '/' )
45
+ p crowi_client.page_id( path_exp: '/' )
44
46
  ```
45
47
 
46
48
  ```ruby
@@ -55,30 +57,30 @@ crowi_client.attachment_exist?( path_exp: '/', attachment_name: 'LICENSE.txt' )
55
57
 
56
58
  ```ruby
57
59
  # get attachment's ID
58
- puts crowi_client.attachment_id( path_exp: '/', attachment_name: 'LICENSE.txt' )
60
+ p crowi_client.attachment_id( path_exp: '/', attachment_name: 'LICENSE.txt' )
59
61
  ```
60
62
 
61
63
  ```ruby
62
64
  # get attachment (return data is object of CrowiAttachment)
63
- puts crowi_client.attachment( path_exp: '/', attachment_name: 'LICENSE.txt' )
65
+ p crowi_client.attachment( path_exp: '/', attachment_name: 'LICENSE.txt' )
64
66
  ```
65
67
 
66
68
  ```ruby
67
69
  # pages list
68
70
  req = CPApiRequestPagesList.new path_exp: '/'
69
- puts crowi_client.request(req)
71
+ p crowi_client.request(req)
70
72
  ```
71
73
 
72
74
  ```ruby
73
75
  # pages get - path_exp
74
76
  req = CPApiRequestPagesList.new path_exp: '/'
75
- puts crowi_client.request(req)
77
+ p crowi_client.request(req)
76
78
  ```
77
79
 
78
80
  ```ruby
79
81
  # pages get - page_id
80
82
  req = CPApiRequestPagesGet.new page_id: crowi_client.page_id(path_exp: '/')
81
- puts crowi_client.request(req)
83
+ p crowi_client.request(req)
82
84
  ```
83
85
 
84
86
  ```ruby
@@ -88,7 +90,7 @@ ret = crowi_client.request(reqtmp)
88
90
  path = ret.data[0].path
89
91
  revision_id = ret.data[0].revision._id
90
92
  req = CPApiRequestPagesGet.new path: path, revision_id: revision_id
91
- puts crowi_client.request(req)
93
+ p crowi_client.request(req)
92
94
  ```
93
95
 
94
96
  ```ruby
@@ -97,7 +99,7 @@ test_page_path = '/tmp/crowi-client test page'
97
99
  body = "# crowi-client\n"
98
100
  req = CPApiRequestPagesCreate.new path: test_page_path,
99
101
  body: body
100
- puts crowi_client.request(req)
102
+ p crowi_client.request(req)
101
103
  ```
102
104
 
103
105
  ```ruby
@@ -112,7 +114,7 @@ test_cases.each do |grant|
112
114
  body = body + grant.to_s
113
115
  req = CPApiRequestPagesUpdate.new page_id: page_id,
114
116
  body: body, grant: grant
115
- puts crowi_client.request(req)
117
+ p crowi_client.request(req)
116
118
  end
117
119
  ```
118
120
 
@@ -120,7 +122,7 @@ end
120
122
  # pages seen
121
123
  page_id = crowi_client.page_id(path_exp: '/')
122
124
  req = CPApiRequestPagesSeen.new page_id: page_id
123
- puts crowi_client.request(req)
125
+ p crowi_client.request(req)
124
126
  ```
125
127
 
126
128
  ```ruby
@@ -128,7 +130,7 @@ puts crowi_client.request(req)
128
130
  test_page_path = '/tmp/crowi-client test page'
129
131
  page_id = crowi_client.page_id(path_exp: test_page_path)
130
132
  req = CPApiRequestLikesAdd.new page_id: page_id
131
- puts crowi_client.request(req)
133
+ p crowi_client.request(req)
132
134
  ```
133
135
 
134
136
  ```ruby
@@ -136,14 +138,14 @@ puts crowi_client.request(req)
136
138
  test_page_path = '/tmp/crowi-client test page'
137
139
  page_id = crowi_client.page_id(path_exp: test_page_path)
138
140
  req = CPApiRequestLikesRemove.new page_id: page_id
139
- puts crowi_client.request(req)
141
+ p crowi_client.request(req)
140
142
  ```
141
143
 
142
144
  ```ruby
143
145
  # update post
144
146
  test_page_path = '/tmp/crowi-client test page'
145
147
  req = CPApiRequestPagesUpdatePost.new path: test_page_path
146
- puts crowi_client.request(req)
148
+ p crowi_client.request(req)
147
149
  ```
148
150
 
149
151
 
@@ -152,7 +154,7 @@ puts crowi_client.request(req)
152
154
  test_page_path = '/tmp/crowi-client test page'
153
155
  page_id = crowi_client.page_id(path_exp: test_page_path)
154
156
  req = CPApiRequestAttachmentsList.new page_id: page_id
155
- puts crowi_client.request(req)
157
+ p crowi_client.request(req)
156
158
  ```
157
159
 
158
160
  ```ruby
@@ -161,7 +163,7 @@ test_page_path = '/tmp/crowi-client test page'
161
163
  page_id = crowi_client.page_id(path_exp: test_page_path)
162
164
  req = CPApiRequestAttachmentsAdd.new page_id: page_id,
163
165
  file: File.new('LICENSE.txt')
164
- puts crowi_client.request(req)
166
+ p crowi_client.request(req)
165
167
  ```
166
168
 
167
169
  ```ruby
@@ -172,7 +174,24 @@ reqtmp = CPApiRequestAttachmentsList.new page_id: page_id
172
174
  ret = crowi_client.request(reqtmp)
173
175
  attachment_id = ret.data[0]._id
174
176
  req = CPApiRequestAttachmentsRemove.new attachment_id: attachment_id
175
- puts crowi_client.request(req)
177
+ p crowi_client.request(req)
178
+ ```
179
+
180
+ ### Basic Authentication
181
+
182
+ ```ruby
183
+ require 'crowi-client'
184
+
185
+ # Create crowiclient instance with username and password that is used by basic authentication
186
+ crowi_client = CrowiClient.new(crowi_url: ENV['CROWI_URL'], access_token: ENV['CROWI_ACCESS_TOKEN'],
187
+ rest_client_param: { user: 'who', password: 'bar'})
188
+
189
+ # Check existence of page
190
+ p crowi_client.page_exist?( path_exp: '/' ) ? '/ exist' : '/ not exist'
191
+
192
+ # Create page whose path is '/tmp'
193
+ req = CPApiRequestPagesCreate.new path: '/tmp', body: 'tmp'
194
+ p crowi_client.request(req)
176
195
  ```
177
196
 
178
197
  ## Development
@@ -195,4 +214,4 @@ Everyone interacting in the Crowi::Client project’s codebases, issue trackers,
195
214
 
196
215
  ## ToDo
197
216
 
198
- - [ ] Support crowi with basic Authentication
217
+ - [x] Support crowi with basic Authentication
data/Rakefile CHANGED
File without changes
File without changes
File without changes
@@ -14,12 +14,14 @@ class CPApiRequestAttachmentsList < CPApiRequestBase
14
14
  # リクエストを実行する
15
15
  # @override
16
16
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
17
- # @return [CrowiPage] リクエスト実行結果
18
- def execute(entry_point)
17
+ # @param [Hash] rest_client_param RestClientのパラメータ
18
+ # @return [Array] リクエスト実行結果
19
+ def execute(entry_point, rest_client_param: {})
19
20
  if invalid?
20
21
  return validation_msg
21
22
  end
22
- ret = JSON.parse RestClient.get entry_point, params: @param
23
+ params = { method: :get, url: entry_point, headers: { params: @param } }.merge(rest_client_param)
24
+ ret = JSON.parse RestClient::Request.execute params
23
25
  if (ret['ok'] == false)
24
26
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
25
27
  end
@@ -57,12 +59,13 @@ class CPApiRequestAttachmentsAdd < CPApiRequestBase
57
59
  # リクエストを実行する
58
60
  # @override
59
61
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
60
- # @return [String] リクエスト実行結果(JSON形式)
61
- def execute(entry_point)
62
+ # @param [Hash] rest_client_param RestClientのパラメータ
63
+ # @return [Array] リクエスト実行結果
64
+ def execute(entry_point, rest_client_param: {})
62
65
  if invalid?
63
66
  return validation_msg
64
67
  end
65
- req = RestClient::Request.new(
68
+ params = {
66
69
  method: :post,
67
70
  url: entry_point,
68
71
  payload: {
@@ -70,8 +73,8 @@ class CPApiRequestAttachmentsAdd < CPApiRequestBase
70
73
  page_id: @param[:page_id],
71
74
  file: @param[:file]
72
75
  }
73
- )
74
- ret = JSON.parse req.execute
76
+ }.merge(rest_client_param)
77
+ ret = JSON.parse RestClient::Request.execute params
75
78
  if (ret['ok'] == false)
76
79
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
77
80
  end
@@ -103,17 +106,20 @@ class CPApiRequestAttachmentsRemove < CPApiRequestBase
103
106
  { attachment_id: param[:attachment_id] })
104
107
  end
105
108
 
106
-
107
109
  # リクエストを実行する
108
110
  # @override
109
111
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
110
- # @return [CrowiPage] リクエスト実行結果
111
- def execute(entry_point)
112
+ # @param [Hash] rest_client_param RestClientのパラメータ
113
+ # @return [Array] リクエスト実行結果
114
+ def execute(entry_point, rest_client_param: {})
112
115
  if invalid?
113
116
  return validation_msg
114
117
  end
115
- ret = JSON.parse RestClient.post entry_point, @param.to_json,
116
- { content_type: :json, accept: :json }
118
+ params = { method: :post, url: entry_point,
119
+ payload: @param.to_json,
120
+ headers: { content_type: :json, accept: :json }
121
+ }.merge(rest_client_param)
122
+ ret = JSON.parse RestClient::Request.execute params
117
123
  if (ret['ok'] == false)
118
124
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
119
125
  end
@@ -74,8 +74,9 @@ class CPApiRequestBase
74
74
 
75
75
  # リクエストを実行する
76
76
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
77
+ # @param [Hash] rest_client_param RestClientのパラメータ
77
78
  # @return [String] リクエスト実行結果(CPApiReturnオブジェクト)
78
- def execute(entry_point)
79
+ def execute(entry_point, rest_client_param: {})
79
80
 
80
81
  if invalid?
81
82
  return validation_msg
@@ -83,11 +84,12 @@ class CPApiRequestBase
83
84
 
84
85
  case @method
85
86
  when 'GET'
86
- ret_json = RestClient.get entry_point, params: @param
87
+ params = { method: :get, url: entry_point, headers: { params: @param } }.merge(rest_client_param)
87
88
  when 'POST'
88
- ret_json = RestClient.post entry_point, @param.to_json,
89
- { content_type: :json, accept: :json }
89
+ params = { method: :post, url: entry_point, content_type: :json, accept: :json,
90
+ headers: { params: @param.to_json } }.merge()
90
91
  end
92
+ ret_json = RestClient::Request.execute params
91
93
  ret = JSON.parse(ret_json)
92
94
  return CPApiReturn.new(ok: ret['ok'], data: ret.reject { |k,v| k == 'ok' })
93
95
  end
@@ -16,14 +16,16 @@ class CPApiRequestPagesList < CPApiRequestBase
16
16
  # リクエストを実行する
17
17
  # @override
18
18
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
19
+ # @param [Hash] rest_client_param RestClientのパラメータ
19
20
  # @return [Array] リクエスト実行結果
20
- def execute(entry_point)
21
+ def execute(entry_point, rest_client_param: {})
21
22
 
22
23
  if invalid?
23
24
  return validation_msg
24
25
  end
25
26
 
26
- ret = JSON.parse RestClient.get entry_point, params: @param
27
+ params = { method: :get, url: entry_point, headers: { params: @param } }.merge(rest_client_param)
28
+ ret = JSON.parse RestClient::Request.execute params
27
29
  if (ret['ok'] == false)
28
30
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
29
31
  end
@@ -41,7 +43,10 @@ protected
41
43
  # @return [nil/CPInvalidRequest] バリデーションエラー結果
42
44
  def _invalid
43
45
  if ! (@param[:path] || @param[:user])
44
- return CPInvalidRequest.new 'Parameter path or page_id is required.'
46
+ return CPInvalidRequest.new 'Parameter path or user is required.'
47
+ end
48
+ if (@param[:path] && @param[:user])
49
+ return CPInvalidRequest.new 'Parameter path and user can not be specified both.'
45
50
  end
46
51
  end
47
52
 
@@ -64,13 +69,15 @@ class CPApiRequestPagesGet < CPApiRequestBase
64
69
  # リクエストを実行する
65
70
  # @override
66
71
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
67
- # @return [CrowiPage] リクエスト実行結果
68
- def execute(entry_point)
72
+ # @param [Hash] rest_client_param RestClientのパラメータ
73
+ # @return [Array] リクエスト実行結果
74
+ def execute(entry_point, rest_client_param: {})
69
75
 
70
76
  if invalid?
71
77
  return validation_msg
72
78
  end
73
- ret = JSON.parse RestClient.get entry_point, params: @param
79
+ params = { method: :get, url: entry_point, headers: { params: @param } }.merge(rest_client_param)
80
+ ret = JSON.parse RestClient::Request.execute params
74
81
  if (ret['ok'] == false)
75
82
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
76
83
  end
@@ -106,14 +113,19 @@ class CPApiRequestPagesCreate < CPApiRequestBase
106
113
  # リクエストを実行する
107
114
  # @override
108
115
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
109
- # @return [CrowiPage] リクエスト実行結果
110
- def execute(entry_point)
116
+ # @param [Hash] rest_client_param RestClientのパラメータ
117
+ # @return [Array] リクエスト実行結果
118
+ def execute(entry_point, rest_client_param: {})
111
119
 
112
120
  if invalid?
113
121
  return validation_msg
114
122
  end
115
- ret = JSON.parse RestClient.post entry_point, @param.to_json,
116
- { content_type: :json, accept: :json }
123
+
124
+ params = { method: :post, url: entry_point,
125
+ payload: @param.to_json,
126
+ headers: { content_type: :json, accept: :json }
127
+ }.merge(rest_client_param)
128
+ ret = JSON.parse RestClient::Request.execute params
117
129
  if (ret['ok'] == false)
118
130
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
119
131
  end
@@ -149,14 +161,18 @@ class CPApiRequestPagesUpdate < CPApiRequestBase
149
161
  # リクエストを実行する
150
162
  # @override
151
163
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
152
- # @return [CrowiPage] リクエスト実行結果
153
- def execute(entry_point)
164
+ # @param [Hash] rest_client_param RestClientのパラメータ
165
+ # @return [Array] リクエスト実行結果
166
+ def execute(entry_point, rest_client_param: {})
154
167
 
155
168
  if invalid?
156
169
  return validation_msg
157
170
  end
158
- ret = JSON.parse RestClient.post entry_point, @param.to_json,
159
- { content_type: :json, accept: :json }
171
+ params = { method: :post, url: entry_point,
172
+ payload: @param.to_json,
173
+ headers: { content_type: :json, accept: :json }
174
+ }.merge(rest_client_param)
175
+ ret = JSON.parse RestClient::Request.execute params
160
176
  if (ret['ok'] == false)
161
177
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
162
178
  end
@@ -191,14 +207,18 @@ class CPApiRequestPagesSeen < CPApiRequestBase
191
207
  # リクエストを実行する
192
208
  # @override
193
209
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
194
- # @return [CrowiPage] リクエスト実行結果
195
- def execute(entry_point)
210
+ # @param [Hash] rest_client_param RestClientのパラメータ
211
+ # @return [Array] リクエスト実行結果
212
+ def execute(entry_point, rest_client_param: {})
196
213
 
197
214
  if invalid?
198
215
  return validation_msg
199
216
  end
200
- ret = JSON.parse RestClient.post entry_point, @param.to_json,
201
- { content_type: :json, accept: :json }
217
+ params = { method: :post, url: entry_point,
218
+ payload: @param.to_json,
219
+ headers: { content_type: :json, accept: :json }
220
+ }.merge(rest_client_param)
221
+ ret = JSON.parse RestClient::Request.execute params
202
222
  if (ret['ok'] == false)
203
223
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
204
224
  end
@@ -232,14 +252,18 @@ class CPApiRequestLikesAdd < CPApiRequestBase
232
252
  # リクエストを実行する
233
253
  # @override
234
254
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
235
- # @return [CrowiPage] リクエスト実行結果
236
- def execute(entry_point)
255
+ # @param [Hash] rest_client_param RestClientのパラメータ
256
+ # @return [Array] リクエスト実行結果
257
+ def execute(entry_point, rest_client_param: {})
237
258
 
238
259
  if invalid?
239
260
  return validation_msg
240
261
  end
241
- ret = JSON.parse RestClient.post entry_point, @param.to_json,
242
- { content_type: :json, accept: :json }
262
+ params = { method: :post, url: entry_point,
263
+ payload: @param.to_json,
264
+ headers: { content_type: :json, accept: :json }
265
+ }.merge(rest_client_param)
266
+ ret = JSON.parse RestClient::Request.execute params
243
267
  if (ret['ok'] == false)
244
268
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
245
269
  end
@@ -273,14 +297,18 @@ class CPApiRequestLikesRemove < CPApiRequestBase
273
297
  # リクエストを実行する
274
298
  # @override
275
299
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
276
- # @return [CrowiPage] リクエスト実行結果
277
- def execute(entry_point)
300
+ # @param [Hash] rest_client_param RestClientのパラメータ
301
+ # @return [Array] リクエスト実行結果
302
+ def execute(entry_point, rest_client_param: {})
278
303
 
279
304
  if invalid?
280
305
  return validation_msg
281
306
  end
282
- ret = JSON.parse RestClient.post entry_point, @param.to_json,
283
- { content_type: :json, accept: :json }
307
+ params = { method: :post, url: entry_point,
308
+ payload: @param.to_json,
309
+ headers: { content_type: :json, accept: :json }
310
+ }.merge(rest_client_param)
311
+ ret = JSON.parse RestClient::Request.execute params
284
312
  if (ret['ok'] == false)
285
313
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
286
314
  end
@@ -315,13 +343,15 @@ class CPApiRequestPagesUpdatePost < CPApiRequestBase
315
343
  # リクエストを実行する
316
344
  # @override
317
345
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
318
- # @return [CrowiPage] リクエスト実行結果
319
- def execute(entry_point)
346
+ # @param [Hash] rest_client_param RestClientのパラメータ
347
+ # @return [Array] リクエスト実行結果
348
+ def execute(entry_point, rest_client_param: {})
320
349
 
321
350
  if invalid?
322
351
  return validation_msg
323
352
  end
324
- ret = JSON.parse RestClient.get entry_point, params: @param
353
+ params = { method: :get, url: entry_point, headers: { params: @param } }.merge(rest_client_param)
354
+ ret = JSON.parse RestClient::Request.execute params
325
355
  if (ret['ok'] == false)
326
356
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
327
357
  end
@@ -361,13 +391,15 @@ class CPApiRequestPagesRemove < CPApiRequestBase
361
391
  # リクエストを実行する
362
392
  # @override
363
393
  # @param [String] entry_point APIのエントリーポイントとなるURL(ex. http://localhost:3000/_api/pages.list)
364
- # @return [CrowiPage] リクエスト実行結果
365
- def execute(entry_point)
394
+ # @param [Hash] rest_client_param RestClientのパラメータ
395
+ # @return [Array] リクエスト実行結果
396
+ def execute(entry_point, rest_client_param: {})
366
397
 
367
398
  if invalid?
368
399
  return validation_msg
369
400
  end
370
- ret = JSON.parse RestClient.get entry_point, params: @param
401
+ param = { method: :get, url: entry_point, headers: { params: @param } }.merge(rest_client_param)
402
+ ret = JSON.parse RestClient::Request.execute param
371
403
  if (ret['ok'] == false)
372
404
  return CPInvalidRequest.new "API return false with msg: #{ret['msg']}"
373
405
  end
@@ -10,12 +10,13 @@ require 'crowi/client/apireq/api_request_attachments'
10
10
  class CrowiClient
11
11
 
12
12
  # コンストラクタ
13
- def initialize(crowi_url: '', access_token: '')
13
+ def initialize(crowi_url: '', access_token: '', rest_client_param: {})
14
14
  raise ArgumentError, 'Config `crowi_url` is required.' if crowi_url.empty?
15
15
  raise ArgumentError, 'Config `access_token` is required.' if access_token.empty?
16
16
 
17
17
  @crowi_url = crowi_url
18
- @access_toke = access_token
18
+ @access_token = access_token
19
+ @rest_client_param = rest_client_param
19
20
  @cp_entry_point = URI.join(crowi_url, '/_api/').to_s
20
21
  end
21
22
 
@@ -23,8 +24,9 @@ class CrowiClient
23
24
  # @param [ApiRequestBase] req APIリクエスト
24
25
  # @return [String] APIリクエストの応答(JSON形式)
25
26
  def request(req)
26
- req.param[:access_token] = @access_toke
27
- return req.execute URI.join(@cp_entry_point, req.entry_point).to_s
27
+ req.param[:access_token] = @access_token
28
+ return req.execute URI.join(@cp_entry_point, req.entry_point).to_s,
29
+ rest_client_param: @rest_client_param
28
30
  end
29
31
 
30
32
  # ページIDを取得する
@@ -56,17 +58,16 @@ class CrowiClient
56
58
  # @param [String] path_exp ページパス(正規表現)
57
59
  # @return [String] attachment's file name
58
60
  def attachment_id(path_exp: nil, attachment_name: nil)
59
- ret = request(CPApiRequestAttachmentsList.new page_id: page_id(path_exp: path_exp))
60
- return ret&.data&.find { |a| a.originalName == attachment_name }&._id
61
+ ret = request(CPApiRequestAttachmentsList.new page_id: page_id(path_exp: path_exp))
62
+ return ret&.data&.find { |a| a.originalName == attachment_name }&._id
61
63
  end
62
64
 
63
65
  # 指定した添付ファイル情報を取得する
64
66
  # @param [String] path_exp ページパス(正規表現)
65
67
  # @return [String] attachment's file name
66
68
  def attachment(path_exp: nil, attachment_name: nil)
67
- ret = request(CPApiRequestAttachmentsList.new page_id: page_id(path_exp: path_exp))
68
- return ret&.data&.find { |a| a.originalName == attachment_name }
69
+ ret = request(CPApiRequestAttachmentsList.new page_id: page_id(path_exp: path_exp))
70
+ return ret&.data&.find { |a| a.originalName == attachment_name }
69
71
  end
70
72
 
71
73
  end
72
-
File without changes
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  module Crowi
2
2
  module Client
3
- VERSION = "0.1.3"
3
+ VERSION = "0.1.4"
4
4
  end
5
5
  end
@@ -0,0 +1,89 @@
1
+ box: ruby:2.5.1
2
+
3
+ # Run weseek/growi, mongo, elasticsearch
4
+ services:
5
+ - name: mongo
6
+ id: mongo:3.4
7
+
8
+ build:
9
+ # Steps make up the actions in your pipeline
10
+ # Read more about steps on our dev center:
11
+ # http://devcenter.wercker.com/docs/steps/index.html
12
+ steps:
13
+ - bundle-install
14
+
15
+ - script:
16
+ name: "Install utility tools"
17
+ code: |
18
+ apt-get update
19
+ apt-get install -y netcat
20
+
21
+ - script:
22
+ name: "Wait for MongoDB connection"
23
+ code: |
24
+ echo Wait for connect to $MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT
25
+ while ! nc -q 1 $MONGO_PORT_27017_TCP_ADDR $MONGO_PORT_27017_TCP_PORT </dev/null; do
26
+ echo "...waiting 3s"; sleep 3;
27
+ done
28
+
29
+ - internal/docker-run:
30
+ image: weseek/growi:3.1.12
31
+ name: growi
32
+ env: >
33
+ MONGO_URI=mongodb://$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/growi
34
+ PASSWORD_SEED=empty
35
+ FILE_UPLOAD=local
36
+
37
+ - script:
38
+ name: "Wait for GROWI connection"
39
+ code: |
40
+ echo Wait for connect to growi:3000
41
+ while ! nc -q 1 growi 3000 < /dev/null; do
42
+ echo "...waiting 3s"; sleep 3;
43
+ done
44
+ export GROWI_URL=http://growi:3000
45
+
46
+ - script:
47
+ name: "Create admin user"
48
+ code: |
49
+ export ADMIN_USER_NAME=admin1
50
+ export ADMIN_USER_PASS=admin1pass
51
+ LOGIN_COOKIE=login.cookie
52
+ OUTPUT_PAGE_NAME=installer.html
53
+ curl $GROWI_URL/installer -c ${LOGIN_COOKIE} -o ${OUTPUT_PAGE_NAME}
54
+ CSRF=`grep data-csrftoken ${OUTPUT_PAGE_NAME} | awk -F'=' '{ print $2 }' | sed -e s/\"//g`
55
+ curl $GROWI_URL/installer/createAdmin -b ${LOGIN_COOKIE} -X POST \
56
+ -d "registerForm[name]=${ADMIN_USER_NAME}&registerForm[username]=${ADMIN_USER_NAME}&registerForm[email]=${ADMIN_USER_NAME}@localhost&registerForm[password]=${ADMIN_USER_PASS}&_csrf=${CSRF}"
57
+
58
+ - script:
59
+ name: "Login as admin1"
60
+ code: |
61
+ OUTPUT_PAGE_NAME=login.html
62
+ curl $GROWI_URL/login -c ${LOGIN_COOKIE} -o ${OUTPUT_PAGE_NAME}
63
+ CSRF=`grep data-csrftoken ${OUTPUT_PAGE_NAME} | awk -F'=' '{ print $2 }' | sed -e s/\"//g`
64
+ curl $GROWI_URL/login -b ${LOGIN_COOKIE} -X POST -d "loginForm[username]=${ADMIN_USER_NAME}&loginForm[password]=${ADMIN_USER_PASS}&_csrf=${CSRF}"
65
+
66
+ - script:
67
+ name: "Generate API token"
68
+ code: |
69
+ OUTPUT_PAGE_NAME=apiToken.html
70
+ curl $GROWI_URL/me/apiToken -b ${LOGIN_COOKIE} -o ${OUTPUT_PAGE_NAME}
71
+ CSRF=`grep data-csrftoken ${OUTPUT_PAGE_NAME} | awk -F'=' '{ print $2 }' | sed -e s/\"//g`
72
+ curl $GROWI_URL/me/apiToken -b ${LOGIN_COOKIE} -X POST -d "apiTokenForm[confirm]=1&_csrf=${CSRF}"
73
+ curl $GROWI_URL/me/apiToken -b ${LOGIN_COOKIE} -o ${OUTPUT_PAGE_NAME}
74
+ export APITOKEN=`grep -A 10 'Current API Token' ${OUTPUT_PAGE_NAME} | grep '<input' | awk -F'value=' '{ print $2 }' | awk -F'"' '{ print $2 }'`
75
+
76
+ - script:
77
+ name: "Export environment variables"
78
+ code: |
79
+ export CROWI_URL=$GROWI_URL
80
+ export CROWI_ACCESS_TOKEN=$APITOKEN
81
+
82
+ - script:
83
+ name: "View environment variables"
84
+ code: |
85
+ env
86
+
87
+ - script:
88
+ name: rspec
89
+ code: bundle exec rspec
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crowi-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryu Sato
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-08 00:00:00.000000000 Z
11
+ date: 2018-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -125,6 +125,7 @@ files:
125
125
  - lib/crowi/client/model/crowi_page_revision.rb
126
126
  - lib/crowi/client/model/crowi_user.rb
127
127
  - lib/crowi/client/version.rb
128
+ - wercker.yml
128
129
  homepage: https://github.com/ryu-sato/crowi-client
129
130
  licenses:
130
131
  - MIT