bwapi 1.0.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.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.travis.yml +10 -0
  4. data/Gemfile +6 -0
  5. data/LICENCE.md +20 -0
  6. data/README.md +15 -0
  7. data/bin/bwapi +2 -0
  8. data/bwapi.gemspec +26 -0
  9. data/lib/bwapi.rb +28 -0
  10. data/lib/bwapi/authentication.rb +42 -0
  11. data/lib/bwapi/client.rb +54 -0
  12. data/lib/bwapi/client/admin.rb +35 -0
  13. data/lib/bwapi/client/admin/become.rb +21 -0
  14. data/lib/bwapi/client/admin/search.rb +41 -0
  15. data/lib/bwapi/client/admin/sub_clients.rb +109 -0
  16. data/lib/bwapi/client/admin/users.rb +95 -0
  17. data/lib/bwapi/client/admin/users/sharing.rb +35 -0
  18. data/lib/bwapi/client/brandwatch.rb +33 -0
  19. data/lib/bwapi/client/brandwatch/become.rb +19 -0
  20. data/lib/bwapi/client/brandwatch/client_modules.rb +26 -0
  21. data/lib/bwapi/client/client.rb +22 -0
  22. data/lib/bwapi/client/error_codes.rb +14 -0
  23. data/lib/bwapi/client/filters.rb +14 -0
  24. data/lib/bwapi/client/logout.rb +24 -0
  25. data/lib/bwapi/client/me.rb +42 -0
  26. data/lib/bwapi/client/oauth.rb +78 -0
  27. data/lib/bwapi/client/ping.rb +42 -0
  28. data/lib/bwapi/client/projects.rb +94 -0
  29. data/lib/bwapi/client/projects/categories.rb +70 -0
  30. data/lib/bwapi/client/projects/data.rb +62 -0
  31. data/lib/bwapi/client/projects/data_download.rb +49 -0
  32. data/lib/bwapi/client/projects/facebook_queries.rb +55 -0
  33. data/lib/bwapi/client/projects/queries.rb +99 -0
  34. data/lib/bwapi/client/projects/queries/backfill.rb +63 -0
  35. data/lib/bwapi/client/projects/queries/date_range.rb +67 -0
  36. data/lib/bwapi/client/projects/queries/mentions.rb +53 -0
  37. data/lib/bwapi/client/projects/query_groups.rb +70 -0
  38. data/lib/bwapi/client/projects/sharing.rb +57 -0
  39. data/lib/bwapi/client/projects/signals.rb +39 -0
  40. data/lib/bwapi/client/projects/summary.rb +21 -0
  41. data/lib/bwapi/client/projects/tags.rb +61 -0
  42. data/lib/bwapi/client/projects/users.rb +17 -0
  43. data/lib/bwapi/client/projects/workflow.rb +17 -0
  44. data/lib/bwapi/client/query_validation.rb +27 -0
  45. data/lib/bwapi/client/sso.rb +18 -0
  46. data/lib/bwapi/client/test_search.rb +14 -0
  47. data/lib/bwapi/client/user.rb +58 -0
  48. data/lib/bwapi/client/user/notifications.rb +36 -0
  49. data/lib/bwapi/configuration.rb +59 -0
  50. data/lib/bwapi/connection.rb +33 -0
  51. data/lib/bwapi/error.rb +42 -0
  52. data/lib/bwapi/request.rb +93 -0
  53. data/lib/bwapi/version.rb +3 -0
  54. data/lib/faraday/response/brandwatch_error.rb +25 -0
  55. data/lib/faraday/utils/utils.rb +25 -0
  56. data/spec/bwapi/authentication_spec.rb +57 -0
  57. data/spec/bwapi/client_spec.rb +205 -0
  58. data/spec/bwapi_spec.rb +23 -0
  59. data/spec/fixtures/.netrc +3 -0
  60. data/spec/helper.rb +12 -0
  61. metadata +178 -0
@@ -0,0 +1,205 @@
1
+ require 'helper'
2
+
3
+ describe BWAPI::Client do
4
+
5
+ before do
6
+ BWAPI.reset
7
+ end
8
+
9
+ describe 'when called' do
10
+ it 'should be a client class instance' do
11
+ BWAPI::Client.new.should be_an_instance_of BWAPI::Client
12
+ end
13
+ end
14
+
15
+ describe 'configuration' do
16
+ describe 'instance variables' do
17
+ it 'should create a api_endpoint instance variable' do
18
+ expect(BWAPI::Client.new.respond_to?(:api_endpoint)).to eq(true)
19
+ end
20
+
21
+ it 'should create a user_agent instance variable' do
22
+ expect(BWAPI::Client.new.respond_to?(:user_agent)).to eq(true)
23
+ end
24
+
25
+ it 'should create a adapter instance variable' do
26
+ expect(BWAPI::Client.new.respond_to?(:adapter)).to eq(true)
27
+ end
28
+
29
+ it 'should create a username instance variable' do
30
+ expect(BWAPI::Client.new.respond_to?(:username)).to eq(true)
31
+ end
32
+
33
+ it 'should create a password instance variable' do
34
+ expect(BWAPI::Client.new.respond_to?(:password)).to eq(true)
35
+ end
36
+
37
+ it 'should create a grant_type instance variable' do
38
+ expect(BWAPI::Client.new.respond_to?(:grant_type)).to eq(true)
39
+ end
40
+
41
+ it 'should create a access_token instance variable' do
42
+ expect(BWAPI::Client.new.respond_to?(:access_token)).to eq(true)
43
+ end
44
+
45
+ it 'should create a refresh_token instance variable' do
46
+ expect(BWAPI::Client.new.respond_to?(:refresh_token)).to eq(true)
47
+ end
48
+
49
+ it 'should create a expires_in instance variable' do
50
+ expect(BWAPI::Client.new.respond_to?(:expires_in)).to eq(true)
51
+ end
52
+
53
+ it 'should create a client_id instance variable' do
54
+ expect(BWAPI::Client.new.respond_to?(:client_id)).to eq(true)
55
+ end
56
+
57
+ it 'should create a client_secret instance variable' do
58
+ expect(BWAPI::Client.new.respond_to?(:client_secret)).to eq(true)
59
+ end
60
+
61
+ it 'should create a netrc instance variable' do
62
+ expect(BWAPI::Client.new.respond_to?(:netrc)).to eq(true)
63
+ end
64
+
65
+ it 'should create a netrc_file instance variable' do
66
+ expect(BWAPI::Client.new.respond_to?(:netrc_file)).to eq(true)
67
+ end
68
+ end
69
+
70
+ describe 'configuration values' do
71
+ describe 'default_adapter' do
72
+ it 'should have a default default_adapter value' do
73
+ expect(BWAPI::Client.new.adapter).to eql(:net_http)
74
+ end
75
+
76
+ it 'should allow a user to set a default_adapter value' do
77
+ bw = BWAPI::Client.new :adapter => 'custom_adapter'
78
+ expect(bw.adapter).to eql('custom_adapter')
79
+ end
80
+ end
81
+
82
+ describe 'user_agent' do
83
+ it 'should have a default user_agent value' do
84
+ expect(BWAPI::Client.new.user_agent).to eql("BWAPI Ruby Gem #{BWAPI::VERSION}")
85
+ end
86
+
87
+ it 'should allow a user to set a user_agent value' do
88
+ bw = BWAPI::Client.new :user_agent => 'custom_user_agent'
89
+ expect(bw.user_agent).to eql('custom_user_agent')
90
+ end
91
+ end
92
+
93
+ describe 'api_endpoint' do
94
+ it 'should have a default api_endpoint value' do
95
+ expect(BWAPI::Client.new.api_endpoint).to eql("http://newapi.brandwatch.com/")
96
+ end
97
+
98
+ it 'should allow a user to set a api_endpoint value' do
99
+ bw = BWAPI::Client.new :api_endpoint => 'http://newapi.custom.brandwatch.com'
100
+ expect(bw.api_endpoint).to eql('http://newapi.custom.brandwatch.com')
101
+ end
102
+ end
103
+
104
+ describe 'client_id' do
105
+ it 'should have a default client_id value' do
106
+ expect(BWAPI::Client.new.client_id).to eql("brandwatch-api-client")
107
+ end
108
+
109
+ it 'should allow a user to set a client_id value' do
110
+ bw = BWAPI::Client.new :client_id => 'custom_client_id'
111
+ expect(bw.client_id).to eql('custom_client_id')
112
+ end
113
+ end
114
+
115
+ describe 'netrc' do
116
+ it 'should have a default netrc value' do
117
+ expect(BWAPI::Client.new.netrc).to eql(false)
118
+ end
119
+
120
+ it 'should allow a user to set a netrc value' do
121
+ bw = BWAPI::Client.new :netrc => true
122
+ expect(bw.netrc).to eql(true)
123
+ end
124
+ end
125
+
126
+ describe 'netrc_file' do
127
+ it 'should have a default netrc value' do
128
+ expect(BWAPI::Client.new.netrc_file).to eql("#{ENV['HOME'] + '/' + '.netrc'}")
129
+ end
130
+
131
+ it 'should allow a user to set a netrc_file value' do
132
+ bw = BWAPI::Client.new :netrc_file => 'example/.netrc'
133
+ expect(bw.netrc_file).to eql('example/.netrc')
134
+ end
135
+ end
136
+
137
+ describe 'username' do
138
+ it 'should have a default value of nil for username' do
139
+ expect(BWAPI::Client.new.username).to eql(nil)
140
+ end
141
+
142
+ it 'should allow a user to set a username value' do
143
+ bw = BWAPI::Client.new :username => 'jonathan@brandwatch.com'
144
+ expect(bw.username).to eql('jonathan@brandwatch.com')
145
+ end
146
+ end
147
+
148
+ describe 'password' do
149
+ it 'should have a default value of nil for password' do
150
+ expect(BWAPI::Client.new.password).to eql(nil)
151
+ end
152
+
153
+ it 'should allow a user to set a password value' do
154
+ bw = BWAPI::Client.new :password => 'pa55w0rd'
155
+ expect(bw.password).to eql('pa55w0rd')
156
+ end
157
+ end
158
+
159
+ describe 'grant_type' do
160
+ it 'should have a default value of nil for grant_type' do
161
+ expect(BWAPI::Client.new.grant_type).to eql(nil)
162
+ end
163
+
164
+ it 'should allow a user to set a grant_type value' do
165
+ bw = BWAPI::Client.new :grant_type => 'custom_grant_type'
166
+ expect(bw.grant_type).to eql('custom_grant_type')
167
+ end
168
+ end
169
+
170
+ describe 'access_token' do
171
+ it 'should have a default value of nil for access_token' do
172
+ expect(BWAPI::Client.new.access_token).to eql(nil)
173
+ end
174
+
175
+ it 'should allow a user to set a access_token value' do
176
+ bw = BWAPI::Client.new :access_token => 'abcdef-ghijkl-123456-789012'
177
+ expect(bw.access_token).to eql('abcdef-ghijkl-123456-789012')
178
+ end
179
+ end
180
+
181
+ describe 'refresh_token' do
182
+ it 'should have a default value of nil for refresh_token' do
183
+ expect(BWAPI::Client.new.refresh_token).to eql(nil)
184
+ end
185
+
186
+ it 'should allow a user to set a refresh_token value' do
187
+ bw = BWAPI::Client.new :refresh_token => 'abcdef-ghijkl-123456-789012'
188
+ expect(bw.refresh_token).to eql('abcdef-ghijkl-123456-789012')
189
+ end
190
+ end
191
+
192
+ describe 'client_secret' do
193
+ it 'should have a default value of nil for client_secret' do
194
+ expect(BWAPI::Client.new.client_secret).to eql(nil)
195
+ end
196
+
197
+ it 'should allow a user to set a client_secret value' do
198
+ bw = BWAPI::Client.new :client_secret => 'custom_client_secret'
199
+ expect(bw.client_secret).to eql('custom_client_secret')
200
+ end
201
+ end
202
+ end
203
+
204
+ end
205
+ end
@@ -0,0 +1,23 @@
1
+ require 'helper'
2
+
3
+ describe BWAPI do
4
+
5
+ describe 'when called' do
6
+ it 'should be an instance of Module' do
7
+ BWAPI.should be_an_instance_of Module
8
+ end
9
+ end
10
+
11
+ describe '.new' do
12
+ it 'is a BWAPI::Client' do
13
+ expect(BWAPI.new).to be_a BWAPI::Client
14
+ end
15
+ end
16
+
17
+ describe '.respond_to?' do
18
+ it 'returns true if new method exists' do
19
+ expect(BWAPI.respond_to?(:new, true)).to eq(true)
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,3 @@
1
+ machine newapi.brandwatch.com
2
+ login testuser@brandwatch.com
3
+ password password
@@ -0,0 +1,12 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+ require 'bwapi'
4
+
5
+ RSpec.configure do |config|
6
+ config.color_enabled = true
7
+ config.formatter = :documentation
8
+ end
9
+
10
+ def fixture_path
11
+ File.expand_path("../fixtures", __FILE__)
12
+ end
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bwapi
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jonathan Chrisp
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 2.13.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 2.13.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.12.2
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.12.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.8.7
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.7
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday_middleware
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 0.9.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: netrc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 0.7.7
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 0.7.7
83
+ description: A Ruby wrapper for the Brandwatch v2 API
84
+ email: jonathan@brandwatch.com
85
+ executables:
86
+ - bwapi
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - .gitignore
91
+ - .travis.yml
92
+ - Gemfile
93
+ - LICENCE.md
94
+ - README.md
95
+ - bin/bwapi
96
+ - bwapi.gemspec
97
+ - lib/bwapi.rb
98
+ - lib/bwapi/authentication.rb
99
+ - lib/bwapi/client.rb
100
+ - lib/bwapi/client/admin.rb
101
+ - lib/bwapi/client/admin/become.rb
102
+ - lib/bwapi/client/admin/search.rb
103
+ - lib/bwapi/client/admin/sub_clients.rb
104
+ - lib/bwapi/client/admin/users.rb
105
+ - lib/bwapi/client/admin/users/sharing.rb
106
+ - lib/bwapi/client/brandwatch.rb
107
+ - lib/bwapi/client/brandwatch/become.rb
108
+ - lib/bwapi/client/brandwatch/client_modules.rb
109
+ - lib/bwapi/client/client.rb
110
+ - lib/bwapi/client/error_codes.rb
111
+ - lib/bwapi/client/filters.rb
112
+ - lib/bwapi/client/logout.rb
113
+ - lib/bwapi/client/me.rb
114
+ - lib/bwapi/client/oauth.rb
115
+ - lib/bwapi/client/ping.rb
116
+ - lib/bwapi/client/projects.rb
117
+ - lib/bwapi/client/projects/categories.rb
118
+ - lib/bwapi/client/projects/data.rb
119
+ - lib/bwapi/client/projects/data_download.rb
120
+ - lib/bwapi/client/projects/facebook_queries.rb
121
+ - lib/bwapi/client/projects/queries.rb
122
+ - lib/bwapi/client/projects/queries/backfill.rb
123
+ - lib/bwapi/client/projects/queries/date_range.rb
124
+ - lib/bwapi/client/projects/queries/mentions.rb
125
+ - lib/bwapi/client/projects/query_groups.rb
126
+ - lib/bwapi/client/projects/sharing.rb
127
+ - lib/bwapi/client/projects/signals.rb
128
+ - lib/bwapi/client/projects/summary.rb
129
+ - lib/bwapi/client/projects/tags.rb
130
+ - lib/bwapi/client/projects/users.rb
131
+ - lib/bwapi/client/projects/workflow.rb
132
+ - lib/bwapi/client/query_validation.rb
133
+ - lib/bwapi/client/sso.rb
134
+ - lib/bwapi/client/test_search.rb
135
+ - lib/bwapi/client/user.rb
136
+ - lib/bwapi/client/user/notifications.rb
137
+ - lib/bwapi/configuration.rb
138
+ - lib/bwapi/connection.rb
139
+ - lib/bwapi/error.rb
140
+ - lib/bwapi/request.rb
141
+ - lib/bwapi/version.rb
142
+ - lib/faraday/response/brandwatch_error.rb
143
+ - lib/faraday/utils/utils.rb
144
+ - spec/bwapi/authentication_spec.rb
145
+ - spec/bwapi/client_spec.rb
146
+ - spec/bwapi_spec.rb
147
+ - spec/fixtures/.netrc
148
+ - spec/helper.rb
149
+ homepage: https://github.com/jonathanchrisp/bwapi
150
+ licenses:
151
+ - MIT
152
+ metadata: {}
153
+ post_install_message:
154
+ rdoc_options: []
155
+ require_paths:
156
+ - lib
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - '>='
160
+ - !ruby/object:Gem::Version
161
+ version: 1.9.2
162
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubyforge_project:
169
+ rubygems_version: 2.0.5
170
+ signing_key:
171
+ specification_version: 4
172
+ summary: Brandwatch v2 API Wrapper
173
+ test_files:
174
+ - spec/bwapi/authentication_spec.rb
175
+ - spec/bwapi/client_spec.rb
176
+ - spec/bwapi_spec.rb
177
+ - spec/fixtures/.netrc
178
+ - spec/helper.rb