backlog-api-client 0.0.1 → 0.0.2

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
2
  SHA1:
3
- metadata.gz: eb36a99c98687e332dc99c78cf21d35fbb8160d5
4
- data.tar.gz: ba889529d74d33d33b362d4056971d60e720ff5c
3
+ metadata.gz: 200c8783133ef6deaf7610f8b51270d9adfccb2b
4
+ data.tar.gz: 65c204678b0602af546fa1ad21b3c38c4399b9d6
5
5
  SHA512:
6
- metadata.gz: 50e0775472d005c3b528b730fd8cf51e03265d904702504988a2dea3eb90f86d76051ef205bf8132ae0a3f9bbb4909f877f091973c6732af730a78cebb692d7c
7
- data.tar.gz: 1cb3bb5dc36c464c2d42e2e390840406b82a91c3c9d21ec01889321eb8d6065fa60a9ba22fd0f2ea8d3b8e56898fe3820a52510d315a4041277a67f09fa04542
6
+ metadata.gz: 883643aba5618bac1c48d1fbaef6b9014461612712ddbc84e24d7a38191b2c57a4c93771059a763e46807c249625f123ece192bb5695e419903e126ddb2f1c84
7
+ data.tar.gz: d33257bd858149ae5ad3364a74c0cdc485ae2cf4ad94b67ac94ac26f6df72a69d2307c8ce0e1436fbf0ad29e06d5e376a50a1a3f811b145554576b35803aeee9
data/README.md CHANGED
@@ -77,13 +77,14 @@ cli.issues.update('TST-3', {
77
77
  - Update Issue(/api/v2/issues/:issueIdOrKey)
78
78
  - Delete Issue(/api/v2/issues/:issueIdOrKey)
79
79
 
80
- ### How to use not support API
81
- You can use not support API by using BacklogApiClient::Client has methods.
80
+ ### How to use unsupported API
81
+ You can use unsupported API by using BacklogApiClient::Client has methods.
82
82
 
83
83
  - \#get
84
84
  - \#post
85
85
  - \#patch
86
86
  - \#put
87
+ - \#delete
87
88
  - \#file_upload
88
89
 
89
90
  But I would be glad if you send Pull Request without to use these methods.
@@ -110,8 +111,3 @@ cli.post('/api/v2/wikis', {
110
111
  3. Commit your changes (`git commit -am 'Add some feature'`)
111
112
  4. Push to the branch (`git push origin my-new-feature`)
112
113
  5. Create a new Pull Request
113
-
114
-
115
- ## Release
116
- - 0.0.1
117
- - first release
@@ -7,7 +7,8 @@ module BacklogApiClient
7
7
  def initialize(space_name, api_key)
8
8
  @space_name = space_name
9
9
  @api_key = { apiKey: api_key }
10
- @http_cli = Faraday.new(url: "https://#{space_name}#{API_PATH}")
10
+ backlog_url = (space_name =~ %r{^https?://.*} ? space_name : "https://#{space_name}")
11
+ @http_cli = Faraday.new(url: "#{backlog_url}#{API_PATH}")
11
12
  end
12
13
 
13
14
  def get(resource_path, params = {})
@@ -15,27 +16,27 @@ module BacklogApiClient
15
16
  @http_cli.get "#{resource_path}#{to_request_params(params)}"
16
17
  end
17
18
 
18
- def post(resource_path, request_body = {})
19
+ def post(resource_path, request = {})
19
20
  @http_cli.post do |req|
20
21
  req.url "#{resource_path}#{to_request_params(@api_key)}"
21
- req.headers['Content-Type'] = 'application/json'
22
- req.body = request_body.to_json
22
+ req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
23
+ req.body = build_request_body(request)
23
24
  end
24
25
  end
25
26
 
26
- def patch(resource_path, request_body = {})
27
+ def patch(resource_path, request = {})
27
28
  @http_cli.patch do |req|
28
29
  req.url "#{resource_path}#{to_request_params(@api_key)}"
29
- req.headers['Content-Type'] = 'application/json'
30
- req.body = request_body.to_json
30
+ req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
31
+ req.body = build_request_body(request)
31
32
  end
32
33
  end
33
34
 
34
- def put(resource_path, request_body = {})
35
+ def put(resource_path, request = {})
35
36
  @http_cli.put do |req|
36
37
  req.url "#{resource_path}#{to_request_params(@api_key)}"
37
- req.headers['Content-Type'] = 'application/json'
38
- req.body = request_body.to_json
38
+ req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
39
+ req.body = build_request_body(request)
39
40
  end
40
41
  end
41
42
 
@@ -63,6 +64,13 @@ module BacklogApiClient
63
64
 
64
65
  private
65
66
 
67
+ def build_request_body(request_hash)
68
+ request_hash.each_with_object('') do |(k, v), body|
69
+ body << '&' unless body.empty?
70
+ body << "#{k}=#{v}"
71
+ end
72
+ end
73
+
66
74
  def to_request_params(hash)
67
75
  hash.each_with_object('') do |(k, v), request_params|
68
76
  request_params << (request_params.empty? ? '?' : '&')
@@ -1,3 +1,3 @@
1
1
  module BacklogApiClient
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -2,31 +2,79 @@ require 'spec_helper'
2
2
 
3
3
  describe BacklogApiClient::Client do
4
4
  let(:http_cli) { double('http_cli') }
5
- let(:space_name) { 'test_space_name' }
6
5
  let(:api_key) { 'test_api_key' }
7
- before { expect(Faraday).to receive(:new).with(url: "https://#{space_name}/api/v2").and_return(http_cli) }
8
-
9
- describe '#get' do
10
- let(:params) { { params: 'test-param' } }
11
- let(:resource_path) { 'test/resource' }
12
- before { expect(http_cli).to receive(:get).with("#{resource_path}?#{q(params)}&apiKey=#{api_key}").and_return('ok') }
13
- subject { described_class.new(space_name, api_key).get(resource_path, params) }
14
- it { should eq 'ok' }
15
- end
16
6
 
17
- describe '#post' do
18
- # ToDo: write test
19
- end
7
+ context 'normal cases' do
8
+
9
+ let(:space_name) { 'test_space_name' }
10
+ before { expect(Faraday).to receive(:new).with(url: "https://#{space_name}/api/v2").and_return(http_cli) }
11
+
12
+ describe '#get' do
13
+ let(:params) { { params: 'test-param' } }
14
+ let(:resource_path) { 'test/resource' }
15
+ before { expect(http_cli).to receive(:get).with("#{resource_path}?#{q(params)}&apiKey=#{api_key}").and_return('ok') }
16
+ subject { described_class.new(space_name, api_key).get(resource_path, params) }
17
+ it { should eq 'ok' }
18
+ end
20
19
 
21
- describe '#patch' do
22
- # ToDo: write test
20
+ describe '#post' do
21
+ let(:params) { { param1: 'test-param1', param2: 'test-param2' } }
22
+ let(:resource_path) { 'test/resource' }
23
+ before do
24
+ request_header = { 'Content-Type' => '' }
25
+ request = double('request', url: 'test-url', headers: request_header)
26
+ expect(request).to receive(:body=).with('param1=test-param1&param2=test-param2')
27
+ expect(http_cli).to receive(:post).and_yield(request).and_return('ok')
28
+ end
29
+ subject { described_class.new(space_name, api_key).post(resource_path, params) }
30
+ it { should eq 'ok' }
31
+ end
32
+
33
+ describe '#patch' do
34
+ let(:params) { { param1: 'test-param1', param2: 'test-param2' } }
35
+ let(:resource_path) { 'test/resource' }
36
+ before do
37
+ request_header = { 'Content-Type' => '' }
38
+ request = double('request', url: 'test-url', headers: request_header)
39
+ expect(request).to receive(:body=).with('param1=test-param1&param2=test-param2')
40
+ expect(http_cli).to receive(:patch).and_yield(request).and_return('ok')
41
+ end
42
+ subject { described_class.new(space_name, api_key).patch(resource_path, params) }
43
+ it { should eq 'ok' }
44
+ end
45
+
46
+ describe '#put' do
47
+ let(:params) { { param1: 'test-param1', param2: 'test-param2' } }
48
+ let(:resource_path) { 'test/resource' }
49
+ before do
50
+ request_header = { 'Content-Type' => '' }
51
+ request = double('request', url: 'test-url', headers: request_header)
52
+ expect(request).to receive(:body=).with('param1=test-param1&param2=test-param2')
53
+ expect(http_cli).to receive(:put).and_yield(request).and_return('ok')
54
+ end
55
+ subject { described_class.new(space_name, api_key).put(resource_path, params) }
56
+ it { should eq 'ok' }
57
+ end
58
+
59
+ describe '#delete' do
60
+ let(:resource_path) { 'test/resource' }
61
+ before { expect(http_cli).to receive(:delete).with("#{resource_path}?apiKey=#{api_key}").and_return('ok') }
62
+ subject { described_class.new(space_name, api_key).delete(resource_path) }
63
+ it { should eq 'ok' }
64
+ end
23
65
  end
24
66
 
25
- describe '#delete' do
26
- let(:resource_path) { 'test/resource' }
27
- before { expect(http_cli).to receive(:delete).with("#{resource_path}?apiKey=#{api_key}").and_return('ok') }
28
- subject { described_class.new(space_name, api_key).delete(resource_path) }
29
- it { should eq 'ok' }
67
+ context 'http request' do
68
+ let(:space_name) { 'http://test_space_name' }
69
+ before { expect(Faraday).to receive(:new).with(url: "#{space_name}/api/v2").and_return(http_cli) }
70
+
71
+ describe '#get' do
72
+ let(:params) { { params: 'test-param' } }
73
+ let(:resource_path) { 'test/resource' }
74
+ before { expect(http_cli).to receive(:get).with("#{resource_path}?#{q(params)}&apiKey=#{api_key}").and_return('ok') }
75
+ subject { described_class.new(space_name, api_key).get(resource_path, params) }
76
+ it { should eq 'ok' }
77
+ end
30
78
  end
31
79
 
32
80
  def q(hash)
data/wercker.yml CHANGED
@@ -7,7 +7,7 @@ build:
7
7
  steps:
8
8
  # Uncomment this to force RVM to use a specific Ruby version
9
9
  - rvm-use:
10
- version: 2.1.2
10
+ version: 2.1.5
11
11
 
12
12
  - script:
13
13
  name: bundle
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backlog-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - joe-re
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-16 00:00:00.000000000 Z
11
+ date: 2014-12-03 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
19
  version: '0'
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
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
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
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
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
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: guard-rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '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
82
  version: '0'
83
83
  description: This is a simple and easy-to-use Backlog Restful Api client.
@@ -87,7 +87,7 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - ".gitignore"
90
+ - .gitignore
91
91
  - Gemfile
92
92
  - Guardfile
93
93
  - LICENSE.txt
@@ -117,17 +117,17 @@ require_paths:
117
117
  - lib
118
118
  required_ruby_version: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - ">="
120
+ - - '>='
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - ">="
125
+ - - '>='
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0'
128
128
  requirements: []
129
129
  rubyforge_project:
130
- rubygems_version: 2.2.2
130
+ rubygems_version: 2.0.14
131
131
  signing_key:
132
132
  specification_version: 4
133
133
  summary: ''