bwapi 10.0.0 → 11.0.0.pre.550
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 +13 -5
- data/.editorconfig +1 -1
- data/.gitignore +1 -1
- data/lib/bwapi/client.rb +26 -3
- data/lib/bwapi/client/admin.rb +2 -0
- data/lib/bwapi/client/admin/demographics.rb +17 -0
- data/lib/bwapi/client/aggregates.rb +13 -0
- data/lib/bwapi/client/author.rb +56 -0
- data/lib/bwapi/client/brandwatch.rb +6 -0
- data/lib/bwapi/client/brandwatch/become.rb +0 -2
- data/lib/bwapi/client/brandwatch/clients.rb +2 -8
- data/lib/bwapi/client/brandwatch/clients/command_center.rb +20 -0
- data/lib/bwapi/client/brandwatch/clients/command_center/limits.rb +33 -0
- data/lib/bwapi/client/brandwatch/clients/command_center/scene_types.rb +26 -0
- data/lib/bwapi/client/brandwatch/clients/command_center/themes.rb +26 -0
- data/lib/bwapi/client/brandwatch/clients/command_center/users.rb +30 -0
- data/lib/bwapi/client/brandwatch/clients/command_center/users/access.rb +28 -0
- data/lib/bwapi/client/brandwatch/clients/users.rb +0 -2
- data/lib/bwapi/client/brandwatch/command_center.rb +14 -0
- data/lib/bwapi/client/brandwatch/command_center/scene_types.rb +31 -0
- data/lib/bwapi/client/brandwatch/command_center/themes.rb +17 -0
- data/lib/bwapi/client/brandwatch/log_level.rb +17 -0
- data/lib/bwapi/client/brandwatch/price_structures.rb +45 -0
- data/lib/bwapi/client/brandwatch/usage_report.rb +19 -0
- data/lib/bwapi/client/command_center.rb +12 -0
- data/lib/bwapi/client/command_center/category_colours.rb +15 -0
- data/lib/bwapi/client/command_center/colour_palette.rb +22 -0
- data/lib/bwapi/client/command_center/display_access.rb +12 -0
- data/lib/bwapi/client/command_center/display_access/users.rb +14 -0
- data/lib/bwapi/client/command_center/display_access/users/access.rb +21 -0
- data/lib/bwapi/client/command_center/displays/scenes.rb +1 -1
- data/lib/bwapi/client/command_center/projects.rb +16 -0
- data/lib/bwapi/client/command_center/projects/category_colours.rb +45 -0
- data/lib/bwapi/client/command_center/projects/data.rb +21 -0
- data/lib/bwapi/client/command_center/projects/tag_colours.rb +45 -0
- data/lib/bwapi/client/command_center/query_colours.rb +36 -0
- data/lib/bwapi/client/command_center/scene_types.rb +3 -3
- data/lib/bwapi/client/command_center/tag_colours.rb +15 -0
- data/lib/bwapi/client/dimensions.rb +13 -0
- data/lib/bwapi/client/oauth.rb +2 -1
- data/lib/bwapi/client/projects.rb +13 -11
- data/lib/bwapi/client/projects/{bulkactions.rb → bulk_actions.rb} +2 -2
- data/lib/bwapi/client/projects/{bulkactions → bulk_actions}/author.rb +0 -0
- data/lib/bwapi/client/projects/{bulkactions → bulk_actions}/mentions.rb +0 -0
- data/lib/bwapi/client/projects/data.rb +20 -0
- data/lib/bwapi/client/projects/data/audience.rb +21 -0
- data/lib/bwapi/client/projects/data/audience_activity.rb +21 -0
- data/lib/bwapi/client/projects/data/channel_metrics.rb +21 -0
- data/lib/bwapi/client/projects/data/emoticons.rb +23 -0
- data/lib/bwapi/client/projects/data/hashtags.rb +23 -0
- data/lib/bwapi/client/projects/data/headlines.rb +20 -0
- data/lib/bwapi/client/projects/data/impressions.rb +21 -0
- data/lib/bwapi/client/projects/data/mentioned_authors.rb +23 -0
- data/lib/bwapi/client/projects/data/mentions.rb +32 -2
- data/lib/bwapi/client/projects/data/owner_activity.rb +21 -0
- data/lib/bwapi/client/projects/data/urls.rb +23 -0
- data/lib/bwapi/client/projects/query/mentionfind.rb +21 -0
- data/lib/bwapi/client/projects/signals/groups.rb +18 -5
- data/lib/bwapi/client/user.rb +2 -0
- data/lib/bwapi/client/user/instagram_credentials.rb +32 -0
- data/lib/bwapi/configuration.rb +3 -2
- data/lib/bwapi/default.rb +7 -3
- data/lib/bwapi/error.rb +0 -2
- data/lib/bwapi/version.rb +1 -1
- data/spec/bwapi/client_spec.rb +29 -167
- data/spec/bwapi/configuration_spec.rb +499 -0
- data/spec/bwapi/default_spec.rb +242 -0
- metadata +72 -30
@@ -0,0 +1,21 @@
|
|
1
|
+
module BWAPI
|
2
|
+
class Client
|
3
|
+
module Projects
|
4
|
+
module Query
|
5
|
+
# mentionfind module for projects/project_id/query/query_id/mentionfind endpoint
|
6
|
+
module MentionFind
|
7
|
+
# Returns the mention for a specific URL
|
8
|
+
#
|
9
|
+
# @param project_id [Integer] Id of project
|
10
|
+
# @param query id [Integer] Id of the query
|
11
|
+
# @param opts [hash] options Hash of parameters
|
12
|
+
# @option opts [string] URL of the mention
|
13
|
+
# @return [Hash] Returns whether a URL is in a query
|
14
|
+
def mention_find(project_id, query_id, opts = {})
|
15
|
+
get "projects/#{project_id}/query/#{query_id}/mentionfind", opts
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -10,20 +10,22 @@ module BWAPI
|
|
10
10
|
# @param projectId [Integer] Id of the existing project
|
11
11
|
# @option opts [Integer] page Page of results to retrieve
|
12
12
|
# @option opts [Integer] pageSize Results per page of results
|
13
|
-
# @return [Hash] All signal groups for project
|
13
|
+
# @return [Hash] Returns All signal groups for project
|
14
14
|
def signal_groups(project_id, opts = {})
|
15
15
|
get "/projects/#{project_id}/signals/groups", opts
|
16
16
|
end
|
17
17
|
|
18
18
|
# Get a specific signal group
|
19
|
+
#
|
19
20
|
# @param projectId [Integer] Id of project
|
20
21
|
# @param groupId [Integer] Id of group
|
21
|
-
# @return [Hash] specific signals group
|
22
|
+
# @return [Hash] Returns a specific signals group
|
22
23
|
def get_signal_group(project_id, group_id)
|
23
24
|
get "/projects/#{project_id}/signals/groups/#{group_id}"
|
24
25
|
end
|
25
26
|
|
26
27
|
# Create a new signal group
|
28
|
+
#
|
27
29
|
# @param projectId [Integer] Project ID of the Signal Group to be updated
|
28
30
|
# @param opts [Hash] options hash of parameters
|
29
31
|
# @option opts [Integer] projectId Project ID of Signal Group
|
@@ -33,12 +35,13 @@ module BWAPI
|
|
33
35
|
# @option opts [Date] lastModified Last modified date of the Signal Group
|
34
36
|
# @option opts [Integer] id ID of Signal Group
|
35
37
|
# @option opts [String] creator Creator of the Signal Group
|
36
|
-
# @return [Hash] new signal group
|
38
|
+
# @return [Hash] Retuns the new signal group
|
37
39
|
def create_signal_group(project_id, opts = {})
|
38
40
|
post "/projects/#{project_id}/signals/groups", opts
|
39
41
|
end
|
40
42
|
|
41
43
|
# Update a signal group
|
44
|
+
#
|
42
45
|
# @param projectId [Integer] Project ID of the Signal Group to be updated
|
43
46
|
# @param groupId [Integer] Id of group
|
44
47
|
# @param opts [Hash] options hash of parameters
|
@@ -49,18 +52,28 @@ module BWAPI
|
|
49
52
|
# @option opts [Date] lastModified Last modified date of the Signal Group
|
50
53
|
# @option opts [Integer] id ID of Signal Group
|
51
54
|
# @option opts [String] creator Creator of the Signal Group
|
52
|
-
# @return [Hash] updated signal group
|
55
|
+
# @return [Hash] Returns the updated signal group
|
53
56
|
def update_signal_group(project_id, group_id, opts = {})
|
54
57
|
put "/projects/#{project_id}/signals/groups/#{group_id}", opts
|
55
58
|
end
|
56
59
|
|
57
60
|
# Delete a signal group
|
61
|
+
#
|
58
62
|
# @param projectId [Integer] Id of project
|
59
63
|
# @param groupId [Integer] Id of group
|
60
|
-
# @return [Hash] deleted signal group
|
64
|
+
# @return [Hash] Returns the deleted signal group
|
61
65
|
def delete_signal_group(project_id, group_id)
|
62
66
|
delete "/projects/#{project_id}/signals/groups/#{group_id}"
|
63
67
|
end
|
68
|
+
|
69
|
+
# Get all signals for a specific group
|
70
|
+
#
|
71
|
+
# @param projectId [Integer] Id of project
|
72
|
+
# @param groupId [Integer] Id of group
|
73
|
+
# @return [Hash] Returns a specific signal group signals
|
74
|
+
def get_signal_group_signals(project_id, group_id)
|
75
|
+
get "/projects/#{project_id}/signals/groups/#{group_id}/signals"
|
76
|
+
end
|
64
77
|
end
|
65
78
|
end
|
66
79
|
end
|
data/lib/bwapi/client/user.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'bwapi/client/user/instagram_credentials'
|
1
2
|
require 'bwapi/client/user/notifications'
|
2
3
|
|
3
4
|
module BWAPI
|
@@ -51,6 +52,7 @@ module BWAPI
|
|
51
52
|
user.uiRole
|
52
53
|
end
|
53
54
|
|
55
|
+
include BWAPI::Client::User::InstagramCredentials
|
54
56
|
include BWAPI::Client::User::Notifications
|
55
57
|
end
|
56
58
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module BWAPI
|
2
|
+
class Client
|
3
|
+
module User
|
4
|
+
# InstagramCredentials module for user/instagramcredentials endpoints
|
5
|
+
module InstagramCredentials
|
6
|
+
# Get current user Instagram credentials
|
7
|
+
#
|
8
|
+
# @return [Hash] Current user Instagram credentials
|
9
|
+
def instagram_credentials
|
10
|
+
get '/user/instagramcredentials'
|
11
|
+
end
|
12
|
+
|
13
|
+
# Delete current user Instagram credentials
|
14
|
+
#
|
15
|
+
# @return [Hash] Current users deleted Instagram credentials
|
16
|
+
def delete_instagram_credentials
|
17
|
+
delete '/user/instagramcredentials'
|
18
|
+
end
|
19
|
+
|
20
|
+
# Store the current user's Instagram credentials
|
21
|
+
#
|
22
|
+
# @param opts [Hash] options Hash of parameters
|
23
|
+
# @option opts [String] accessToken Instagram API access token
|
24
|
+
# @option opts [String] clientId Instagram API client id
|
25
|
+
# @return [Hash] Current user Instagram credentials
|
26
|
+
def update_instagram_credentials(opts = {})
|
27
|
+
put '/user/instagramcredentials', opts
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/bwapi/configuration.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
module BWAPI
|
2
2
|
# Configuration module
|
3
3
|
module Configuration
|
4
|
-
attr_accessor :access_token, :adapter, :api_endpoint, :client_id, :debug,
|
5
|
-
:logger, :performance, :refresh_token, :user_agent, :username, :verify_ssl
|
4
|
+
attr_accessor :access_token, :access_token_expiry, :adapter, :api_endpoint, :client_id, :debug,
|
5
|
+
:grant_type, :logger, :performance, :refresh_token, :user_agent, :username, :verify_ssl
|
6
6
|
|
7
7
|
attr_writer :client_secret, :password
|
8
8
|
|
@@ -11,6 +11,7 @@ module BWAPI
|
|
11
11
|
def keys
|
12
12
|
@keys ||= [
|
13
13
|
:access_token,
|
14
|
+
:access_token_expiry,
|
14
15
|
:adapter,
|
15
16
|
:api_endpoint,
|
16
17
|
:client_id,
|
data/lib/bwapi/default.rb
CHANGED
@@ -26,8 +26,12 @@ module BWAPI
|
|
26
26
|
ENV['BWAPI_ACCESS_TOKEN']
|
27
27
|
end
|
28
28
|
|
29
|
+
def access_token_expiry
|
30
|
+
nil
|
31
|
+
end
|
32
|
+
|
29
33
|
def adapter
|
30
|
-
ENV['BWAPI_ADAPTER']
|
34
|
+
ENV['BWAPI_ADAPTER'].is_a?(String) ? ENV['BWAPI_ADAPTER'].to_sym : ADAPTER
|
31
35
|
end
|
32
36
|
|
33
37
|
def api_endpoint
|
@@ -54,7 +58,7 @@ module BWAPI
|
|
54
58
|
end
|
55
59
|
|
56
60
|
def debug
|
57
|
-
ENV['BWAPI_DEBUG']
|
61
|
+
ENV['BWAPI_DEBUG'] == 'true' ? true : false
|
58
62
|
end
|
59
63
|
|
60
64
|
def grant_type
|
@@ -86,7 +90,7 @@ module BWAPI
|
|
86
90
|
end
|
87
91
|
|
88
92
|
def verify_ssl
|
89
|
-
ENV['BWAPI_VERIFY_SSL']
|
93
|
+
ENV['BWAPI_VERIFY_SSL'] == 'true' ? true : false
|
90
94
|
end
|
91
95
|
end
|
92
96
|
end
|
data/lib/bwapi/error.rb
CHANGED
data/lib/bwapi/version.rb
CHANGED
data/spec/bwapi/client_spec.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
describe BWAPI::Client do
|
4
|
-
before
|
5
|
-
BWAPI.reset
|
6
|
-
end
|
4
|
+
before { BWAPI.reset }
|
7
5
|
|
8
6
|
describe 'when called' do
|
9
7
|
it 'should be a client class instance' do
|
@@ -12,16 +10,37 @@ describe BWAPI::Client do
|
|
12
10
|
end
|
13
11
|
|
14
12
|
describe '.authenticated?' do
|
15
|
-
it 'returns
|
13
|
+
it 'returns false when not authenticated' do
|
16
14
|
expect(BWAPI::Client.new.authenticated?).to eql(false)
|
17
15
|
end
|
18
16
|
|
19
|
-
it 'returns
|
20
|
-
bw = BWAPI::Client.new access_token: 'abcdef-ghijkl-123456-789012'
|
17
|
+
it 'returns true when authenticated' do
|
18
|
+
bw = BWAPI::Client.new access_token: 'abcdef-ghijkl-123456-789012', access_token_expiry: (Time.now + 3600).iso8601
|
21
19
|
expect(bw.authenticated?).to eql(true)
|
22
20
|
end
|
23
21
|
end
|
24
22
|
|
23
|
+
describe '.access_token_expired?' do
|
24
|
+
it 'returns true if access_token is set to nil' do
|
25
|
+
expect(BWAPI::Client.new.access_token_expired?).to eql(true)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'returns true if access_token_expiry is set to nil' do
|
29
|
+
bw = BWAPI::Client.new access_token: 'abcdef-ghijkl-123456-789012'
|
30
|
+
expect(bw.access_token_expired?).to eql(true)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'returns true if access token has expired' do
|
34
|
+
bw = BWAPI::Client.new access_token: 'abcdef-ghijkl-123456-789012', access_token_expiry: (Time.now - 3600).iso8601
|
35
|
+
expect(bw.access_token_expired?).to eql(true)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'returns false if access token has not expired' do
|
39
|
+
bw = BWAPI::Client.new access_token: 'abcdef-ghijkl-123456-789012', access_token_expiry: (Time.now + 3600).iso8601
|
40
|
+
expect(bw.access_token_expired?).to eql(false)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
25
44
|
describe '.application_client?' do
|
26
45
|
it 'returns true when client is a brandwatch-application-client' do
|
27
46
|
bw = BWAPI::Client.new client_id: 'brandwatch-application-client'
|
@@ -45,167 +64,10 @@ describe BWAPI::Client do
|
|
45
64
|
end
|
46
65
|
end
|
47
66
|
|
48
|
-
describe '
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'should create a user_agent instance variable' do
|
55
|
-
expect(BWAPI::Client.new.respond_to?(:user_agent)).to eq(true)
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'should create a adapter instance variable' do
|
59
|
-
expect(BWAPI::Client.new.respond_to?(:adapter)).to eq(true)
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'should create a username instance variable' do
|
63
|
-
expect(BWAPI::Client.new.respond_to?(:username)).to eq(true)
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'should create a password instance variable which cannot be accessed' do
|
67
|
-
expect(BWAPI::Client.new.respond_to?(:password)).to eq(false)
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'should create a grant_type instance variable' do
|
71
|
-
expect(BWAPI::Client.new.respond_to?(:grant_type)).to eq(true)
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'should create a access_token instance variable' do
|
75
|
-
expect(BWAPI::Client.new.respond_to?(:access_token)).to eq(true)
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'should create a refresh_token instance variable' do
|
79
|
-
expect(BWAPI::Client.new.respond_to?(:refresh_token)).to eq(true)
|
80
|
-
end
|
81
|
-
|
82
|
-
it 'should create a client_id instance variable' do
|
83
|
-
expect(BWAPI::Client.new.respond_to?(:client_id)).to eq(true)
|
84
|
-
end
|
85
|
-
|
86
|
-
it 'should create a client_secret instance variable which cannot accessed' do
|
87
|
-
expect(BWAPI::Client.new.respond_to?(:client_secret)).to eq(false)
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'should create a logger instance variable' do
|
91
|
-
expect(BWAPI::Client.new.respond_to?(:logger)).to eq(true)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
describe 'configuration values' do
|
96
|
-
describe 'default_adapter' do
|
97
|
-
it 'should have a default default_adapter value' do
|
98
|
-
expect(BWAPI::Client.new.adapter).to eql(:net_http)
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'should allow a user to set a default_adapter value' do
|
102
|
-
bw = BWAPI::Client.new adapter: 'custom_adapter'
|
103
|
-
expect(bw.adapter).to eql('custom_adapter')
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
describe 'user_agent' do
|
108
|
-
it 'should have a default user_agent value' do
|
109
|
-
expect(BWAPI::Client.new.user_agent).to eql("BWAPI Ruby Gem #{BWAPI::VERSION}")
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'should allow a user to set a user_agent value' do
|
113
|
-
bw = BWAPI::Client.new user_agent: 'custom_user_agent'
|
114
|
-
expect(bw.user_agent).to eql('custom_user_agent')
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
describe 'api_endpoint' do
|
119
|
-
it 'should have a default api_endpoint value' do
|
120
|
-
expect(BWAPI::Client.new.api_endpoint).to eql('https://newapi.brandwatch.com/')
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'should allow a user to set a api_endpoint value' do
|
124
|
-
bw = BWAPI::Client.new api_endpoint: 'http://newapi.custom.brandwatch.com'
|
125
|
-
expect(bw.api_endpoint).to eql('http://newapi.custom.brandwatch.com')
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
describe 'client_id' do
|
130
|
-
it 'should have a default client_id value' do
|
131
|
-
expect(BWAPI::Client.new.client_id).to eql('brandwatch-api-client')
|
132
|
-
end
|
133
|
-
|
134
|
-
it 'should allow a user to set a client_id value' do
|
135
|
-
bw = BWAPI::Client.new client_id: 'custom_client_id'
|
136
|
-
expect(bw.client_id).to eql('custom_client_id')
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
describe 'username' do
|
141
|
-
it 'should have a default value of nil for username' do
|
142
|
-
expect(BWAPI::Client.new.username).to eql(nil)
|
143
|
-
end
|
144
|
-
|
145
|
-
it 'should allow a user to set a username value' do
|
146
|
-
bw = BWAPI::Client.new username: 'jonathan@brandwatch.com'
|
147
|
-
expect(bw.username).to eql('jonathan@brandwatch.com')
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
describe 'password' do
|
152
|
-
it 'should allow a user to set a password value' do
|
153
|
-
bw = BWAPI::Client.new password: 'pa55w0rd'
|
154
|
-
expect(bw.instance_eval { @password }).to eql('pa55w0rd')
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
describe 'grant_type' do
|
159
|
-
it 'should have a default value of api-password for grant_type' do
|
160
|
-
expect(BWAPI::Client.new.grant_type).to eql('api-password')
|
161
|
-
end
|
162
|
-
|
163
|
-
it 'should allow a user to set a grant_type value' do
|
164
|
-
bw = BWAPI::Client.new grant_type: 'custom_grant_type'
|
165
|
-
expect(bw.grant_type).to eql('custom_grant_type')
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
describe 'access_token' do
|
170
|
-
it 'should have a default value of nil for access_token' do
|
171
|
-
expect(BWAPI::Client.new.access_token).to eql(nil)
|
172
|
-
end
|
173
|
-
|
174
|
-
it 'should allow a user to set a access_token value' do
|
175
|
-
bw = BWAPI::Client.new access_token: 'abcdef-ghijkl-123456-789012'
|
176
|
-
expect(bw.access_token).to eql('abcdef-ghijkl-123456-789012')
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
180
|
-
describe 'refresh_token' do
|
181
|
-
it 'should have a default value of nil for refresh_token' do
|
182
|
-
expect(BWAPI::Client.new.refresh_token).to eql(nil)
|
183
|
-
end
|
184
|
-
|
185
|
-
it 'should allow a user to set a refresh_token value' do
|
186
|
-
bw = BWAPI::Client.new refresh_token: 'abcdef-ghijkl-123456-789012'
|
187
|
-
expect(bw.refresh_token).to eql('abcdef-ghijkl-123456-789012')
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
describe 'client_secret' do
|
192
|
-
it 'should allow a user to set a client_secret value' do
|
193
|
-
bw = BWAPI::Client.new client_secret: 'custom_client_secret'
|
194
|
-
expect(bw.instance_eval { @client_secret }).to eql('custom_client_secret')
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
|
-
describe 'logger' do
|
199
|
-
it 'should have a default value of nil for logger' do
|
200
|
-
expect(BWAPI::Client.new.logger).to eql(nil)
|
201
|
-
end
|
202
|
-
|
203
|
-
it 'should allow a user to set a logger value' do
|
204
|
-
logger = Object.new
|
205
|
-
bw = BWAPI::Client.new logger: logger
|
206
|
-
expect(bw.logger).to eql(logger)
|
207
|
-
end
|
208
|
-
end
|
67
|
+
describe '.seconds_until_access_token_expires' do
|
68
|
+
it 'should return the number of seconds until the access token expires' do
|
69
|
+
bw = BWAPI::Client.new access_token_expiry: (Time.now + 3600).iso8601
|
70
|
+
expect(bw.send(:seconds_until_access_token_expires)).to eql(3600)
|
209
71
|
end
|
210
72
|
end
|
211
73
|
end
|
@@ -0,0 +1,499 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'logger'
|
3
|
+
|
4
|
+
describe BWAPI::Configuration do
|
5
|
+
let(:bwapi) { BWAPI::Client.new }
|
6
|
+
|
7
|
+
describe 'instance variables' do
|
8
|
+
it 'should create a access_token instance variable' do
|
9
|
+
expect(bwapi.respond_to?(:access_token)).to eq(true)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should create a access_token_expiry instance variable' do
|
13
|
+
expect(bwapi.respond_to?(:access_token_expiry)).to eq(true)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should create a adapter instance variable' do
|
17
|
+
expect(bwapi.respond_to?(:adapter)).to eq(true)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should create a api_endpoint instance variable' do
|
21
|
+
expect(bwapi.respond_to?(:api_endpoint)).to eq(true)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should create a client_id instance variable' do
|
25
|
+
expect(bwapi.respond_to?(:client_id)).to eq(true)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should create a client_secret instance variable which cannot accessed' do
|
29
|
+
expect(bwapi.respond_to?(:client_secret)).to eq(false)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should create a debug instance variable' do
|
33
|
+
expect(bwapi.respond_to?(:debug)).to eq(true)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should create a grant_type instance variable' do
|
37
|
+
expect(bwapi.respond_to?(:grant_type)).to eq(true)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should create a logger instance variable' do
|
41
|
+
expect(bwapi.respond_to?(:logger)).to eq(true)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should create a password instance variable which cannot be accessed' do
|
45
|
+
expect(bwapi.respond_to?(:password)).to eq(false)
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should create a performance instance variable' do
|
49
|
+
expect(bwapi.respond_to?(:performance)).to eq(true)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should create a refresh_token instance variable' do
|
53
|
+
expect(bwapi.respond_to?(:refresh_token)).to eq(true)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should create a user_agent instance variable' do
|
57
|
+
expect(bwapi.respond_to?(:user_agent)).to eq(true)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should create a username instance variable' do
|
61
|
+
expect(bwapi.respond_to?(:username)).to eq(true)
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should create a logger instance variable' do
|
65
|
+
expect(bwapi.respond_to?(:logger)).to eq(true)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should create a verify_ssl instance variable' do
|
69
|
+
expect(bwapi.respond_to?(:verify_ssl)).to eq(true)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe 'default and custom values' do
|
74
|
+
before { bwapi.reset }
|
75
|
+
|
76
|
+
describe 'access_token' do
|
77
|
+
it 'should have a default value of nil for access_token' do
|
78
|
+
expect(bwapi.access_token).to eql(nil)
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should allow a user to set a access_token value' do
|
82
|
+
bwapi.access_token = 'abcdef-ghijkl-123456-789012'
|
83
|
+
expect(bwapi.access_token).to eql('abcdef-ghijkl-123456-789012')
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe 'access_token_expiry' do
|
88
|
+
it 'should have a default value of nil for access_token_expiry' do
|
89
|
+
expect(bwapi.access_token_expiry).to eql(nil)
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should allow a user to set a access_token_expiry value' do
|
93
|
+
bwapi.access_token_expiry = '2015-01-08T16:13:03-08:00'
|
94
|
+
expect(bwapi.access_token_expiry).to eql('2015-01-08T16:13:03-08:00')
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe 'adapter' do
|
99
|
+
it 'should have a default adapter value' do
|
100
|
+
expect(bwapi.adapter).to eql(:net_http)
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should allow a user to set a default_adapter value' do
|
104
|
+
bwapi.adapter = 'custom_adapter'
|
105
|
+
expect(bwapi.adapter).to eql('custom_adapter')
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe 'api_endpoint' do
|
110
|
+
it 'should have a default api_endpoint value' do
|
111
|
+
expect(bwapi.api_endpoint).to eql('https://newapi.brandwatch.com/')
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'should allow a user to set a api_endpoint value' do
|
115
|
+
bwapi.api_endpoint = 'http://newapi.custom.brandwatch.com'
|
116
|
+
expect(bwapi.api_endpoint).to eql('http://newapi.custom.brandwatch.com')
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe 'client_id' do
|
121
|
+
it 'should have a default client_id value' do
|
122
|
+
expect(bwapi.client_id).to eql('brandwatch-api-client')
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'should allow a user to set a client_id value' do
|
126
|
+
bwapi.client_id = 'custom_client_id'
|
127
|
+
expect(bwapi.client_id).to eql('custom_client_id')
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
describe 'client_secret' do
|
132
|
+
it 'should allow a user to set a client_secret value' do
|
133
|
+
bwapi.client_secret = 'custom_client_secret'
|
134
|
+
expect(bwapi.instance_eval { @client_secret }).to eql('custom_client_secret')
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe 'debug' do
|
139
|
+
it 'should have a default debug value' do
|
140
|
+
expect(bwapi.debug).to eql(false)
|
141
|
+
end
|
142
|
+
|
143
|
+
it 'should allow a user to set a debug value' do
|
144
|
+
bwapi.debug = true
|
145
|
+
expect(bwapi.debug).to eql(true)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
describe 'grant_type' do
|
150
|
+
it 'should have a default value of api-password for grant_type' do
|
151
|
+
expect(bwapi.grant_type).to eql('api-password')
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'should allow a user to set a grant_type value' do
|
155
|
+
bwapi.grant_type = 'custom_grant_type'
|
156
|
+
expect(bwapi.grant_type).to eql('custom_grant_type')
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
describe 'logger' do
|
161
|
+
it 'should have a default value of nil for logger' do
|
162
|
+
expect(bwapi.logger).to eql(nil)
|
163
|
+
end
|
164
|
+
|
165
|
+
it 'should allow a user to set a logger value' do
|
166
|
+
logger = Logger.new(STDOUT)
|
167
|
+
bwapi.logger = logger
|
168
|
+
expect(bwapi.logger).to eql(logger)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
describe 'password' do
|
173
|
+
it 'should allow a user to set a password value' do
|
174
|
+
bwapi.password = 'pa55w0rd'
|
175
|
+
expect(bwapi.instance_eval { @password }).to eql('pa55w0rd')
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
describe 'performance' do
|
180
|
+
it 'should have a default performance value' do
|
181
|
+
expect(bwapi.performance).to eql({})
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
describe 'refresh_token' do
|
186
|
+
it 'should have a default value of nil for refresh_token' do
|
187
|
+
expect(bwapi.refresh_token).to eql(nil)
|
188
|
+
end
|
189
|
+
|
190
|
+
it 'should allow a user to set a refresh_token value' do
|
191
|
+
bwapi.refresh_token = 'abcdef-ghijkl-123456-789012'
|
192
|
+
expect(bwapi.refresh_token).to eql('abcdef-ghijkl-123456-789012')
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
describe 'user_agent' do
|
197
|
+
it 'should have a default user_agent value' do
|
198
|
+
expect(bwapi.user_agent).to eql("BWAPI Ruby Gem #{BWAPI::VERSION}")
|
199
|
+
end
|
200
|
+
|
201
|
+
it 'should allow a user to set a user_agent value' do
|
202
|
+
bwapi.user_agent = 'custom_user_agent'
|
203
|
+
expect(bwapi.user_agent).to eql('custom_user_agent')
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
describe 'username' do
|
208
|
+
it 'should have a default value of nil for username' do
|
209
|
+
expect(bwapi.username).to eql(nil)
|
210
|
+
end
|
211
|
+
|
212
|
+
it 'should allow a user to set a username value' do
|
213
|
+
bwapi.username = 'jonathan@brandwatch.com'
|
214
|
+
expect(bwapi.username).to eql('jonathan@brandwatch.com')
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
describe 'verify_ssl' do
|
219
|
+
it 'should have a default verify_ssl value' do
|
220
|
+
expect(bwapi.verify_ssl).to eql(false)
|
221
|
+
end
|
222
|
+
|
223
|
+
it 'should allow a user to set a verify_ssl value' do
|
224
|
+
bwapi.verify_ssl = true
|
225
|
+
expect(bwapi.verify_ssl).to eql(true)
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
describe '.keys' do
|
231
|
+
it 'should return the correct list of keys' do
|
232
|
+
expect(BWAPI::Configuration.keys).to eql([
|
233
|
+
:access_token,
|
234
|
+
:access_token_expiry,
|
235
|
+
:adapter,
|
236
|
+
:api_endpoint,
|
237
|
+
:client_id,
|
238
|
+
:client_secret,
|
239
|
+
:connection_options,
|
240
|
+
:debug,
|
241
|
+
:grant_type,
|
242
|
+
:logger,
|
243
|
+
:password,
|
244
|
+
:performance,
|
245
|
+
:refresh_token,
|
246
|
+
:user_agent,
|
247
|
+
:username,
|
248
|
+
:verify_ssl
|
249
|
+
])
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
describe '.configure' do
|
254
|
+
before do
|
255
|
+
bwapi.configure do |c|
|
256
|
+
c.access_token = '1234-5678-9010-1112'
|
257
|
+
c.access_token_expiry = '2015-01-08 14:09:16 -0800'
|
258
|
+
c.adapter = :test
|
259
|
+
c.api_endpoint = 'http://newapi.test.brandwatch.com'
|
260
|
+
c.client_id = 'brandwatch-test-client'
|
261
|
+
c.client_secret = 'test'
|
262
|
+
c.debug = true
|
263
|
+
c.grant_type = 'test-grant'
|
264
|
+
c.logger = Logger.new(STDOUT)
|
265
|
+
c.password = 'password123'
|
266
|
+
c.refresh_token = '1234-5678-9010-1112'
|
267
|
+
c.user_agent = 'Test User Agent'
|
268
|
+
c.username = 'testing@brandwatch.com'
|
269
|
+
c.verify_ssl = true
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
after { bwapi.reset }
|
274
|
+
|
275
|
+
it 'should set the configured access_token' do
|
276
|
+
expect(bwapi.access_token).to eql('1234-5678-9010-1112')
|
277
|
+
end
|
278
|
+
|
279
|
+
it 'should set the configured access_token_expiry' do
|
280
|
+
expect(bwapi.access_token_expiry).to eql('2015-01-08 14:09:16 -0800')
|
281
|
+
end
|
282
|
+
|
283
|
+
it 'should set the configured adapter' do
|
284
|
+
expect(bwapi.adapter).to eql(:test)
|
285
|
+
end
|
286
|
+
|
287
|
+
it 'should set the configured api_endpoint' do
|
288
|
+
expect(bwapi.api_endpoint).to eql('http://newapi.test.brandwatch.com')
|
289
|
+
end
|
290
|
+
|
291
|
+
it 'should set the configured client_id' do
|
292
|
+
expect(bwapi.client_id).to eql('brandwatch-test-client')
|
293
|
+
end
|
294
|
+
|
295
|
+
it 'should set the configured client_secret' do
|
296
|
+
expect(bwapi.instance_variable_get(:@client_secret)).to eql('test')
|
297
|
+
end
|
298
|
+
|
299
|
+
it 'should set the configured debug flag' do
|
300
|
+
expect(bwapi.debug).to eql(true)
|
301
|
+
end
|
302
|
+
|
303
|
+
it 'should set the configured grant type' do
|
304
|
+
expect(bwapi.grant_type).to eql('test-grant')
|
305
|
+
end
|
306
|
+
|
307
|
+
it 'should set the configured logger' do
|
308
|
+
expect(bwapi.logger).to be_an_instance_of Logger
|
309
|
+
end
|
310
|
+
|
311
|
+
it 'should set the configured password' do
|
312
|
+
expect(bwapi.instance_variable_get(:@password)).to eql('password123')
|
313
|
+
end
|
314
|
+
|
315
|
+
it 'should set the configured refresh_token' do
|
316
|
+
expect(bwapi.refresh_token).to eql('1234-5678-9010-1112')
|
317
|
+
end
|
318
|
+
|
319
|
+
it 'should set the configured user agent' do
|
320
|
+
expect(bwapi.user_agent).to eql('Test User Agent')
|
321
|
+
end
|
322
|
+
|
323
|
+
it 'should set the configured username' do
|
324
|
+
expect(bwapi.username).to eql('testing@brandwatch.com')
|
325
|
+
end
|
326
|
+
|
327
|
+
it 'should set the configured verify_ssl flag' do
|
328
|
+
expect(bwapi.verify_ssl).to eql(true)
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
332
|
+
describe '.reset' do
|
333
|
+
before { bwapi.reset }
|
334
|
+
|
335
|
+
it 'should reset the access token value' do
|
336
|
+
expect(bwapi.access_token).to eql(nil)
|
337
|
+
end
|
338
|
+
|
339
|
+
it 'should reset the access token expiry value' do
|
340
|
+
expect(bwapi.access_token_expiry).to eql(nil)
|
341
|
+
end
|
342
|
+
|
343
|
+
it 'should reset the adapter value' do
|
344
|
+
expect(bwapi.adapter).to eql(:net_http)
|
345
|
+
end
|
346
|
+
|
347
|
+
it 'should reset the api_endpoint value' do
|
348
|
+
expect(bwapi.api_endpoint).to eql('https://newapi.brandwatch.com/')
|
349
|
+
end
|
350
|
+
|
351
|
+
it 'should reset the client_id value' do
|
352
|
+
expect(bwapi.client_id).to eql('brandwatch-api-client')
|
353
|
+
end
|
354
|
+
|
355
|
+
it 'should reset the client_secret value' do
|
356
|
+
expect(bwapi.instance_variable_get(:@client_secret)).to eql(nil)
|
357
|
+
end
|
358
|
+
|
359
|
+
it 'should reset the connection value' do
|
360
|
+
expect(bwapi.instance_variable_get(:@connection)).to eql(nil)
|
361
|
+
end
|
362
|
+
|
363
|
+
it 'should reset the debug value' do
|
364
|
+
expect(bwapi.debug).to eql(false)
|
365
|
+
end
|
366
|
+
|
367
|
+
it 'should reset the grant_type value' do
|
368
|
+
expect(bwapi.grant_type).to eql('api-password')
|
369
|
+
end
|
370
|
+
|
371
|
+
it 'should reset the logger value' do
|
372
|
+
expect(bwapi.logger).to eql(nil)
|
373
|
+
end
|
374
|
+
|
375
|
+
it 'should reset the password value' do
|
376
|
+
expect(bwapi.instance_variable_get(:@password)).to eql(nil)
|
377
|
+
end
|
378
|
+
|
379
|
+
it 'should reset the performance value' do
|
380
|
+
expect(bwapi.performance).to eql({})
|
381
|
+
end
|
382
|
+
|
383
|
+
it 'should reset the refresh_token value' do
|
384
|
+
expect(bwapi.refresh_token).to eql(nil)
|
385
|
+
end
|
386
|
+
|
387
|
+
it 'should reset the user_agent value' do
|
388
|
+
expect(bwapi.user_agent).to eql('BWAPI Ruby Gem 11.0.0')
|
389
|
+
end
|
390
|
+
|
391
|
+
it 'should reset the username value' do
|
392
|
+
expect(bwapi.username).to eql(nil)
|
393
|
+
end
|
394
|
+
|
395
|
+
it 'should reset the verify_ssl value' do
|
396
|
+
expect(bwapi.verify_ssl).to eql(false)
|
397
|
+
end
|
398
|
+
end
|
399
|
+
|
400
|
+
describe '.destroy' do
|
401
|
+
before { bwapi.destroy }
|
402
|
+
|
403
|
+
it 'should reset the access token value' do
|
404
|
+
expect(bwapi.access_token).to eql(nil)
|
405
|
+
end
|
406
|
+
|
407
|
+
it 'should reset the access token expiry value' do
|
408
|
+
expect(bwapi.access_token_expiry).to eql(nil)
|
409
|
+
end
|
410
|
+
|
411
|
+
it 'should reset the adapter value' do
|
412
|
+
expect(bwapi.adapter).to eql(nil)
|
413
|
+
end
|
414
|
+
|
415
|
+
it 'should reset the api_endpoint value' do
|
416
|
+
expect(bwapi.api_endpoint).to eql(nil)
|
417
|
+
end
|
418
|
+
|
419
|
+
it 'should reset the client_id value' do
|
420
|
+
expect(bwapi.client_id).to eql(nil)
|
421
|
+
end
|
422
|
+
|
423
|
+
it 'should reset the client_secret value' do
|
424
|
+
expect(bwapi.instance_variable_get(:@client_secret)).to eql(nil)
|
425
|
+
end
|
426
|
+
|
427
|
+
it 'should reset the connection value' do
|
428
|
+
expect(bwapi.instance_variable_get(:@connection)).to eql(nil)
|
429
|
+
end
|
430
|
+
|
431
|
+
it 'should reset the debug value' do
|
432
|
+
expect(bwapi.debug).to eql(nil)
|
433
|
+
end
|
434
|
+
|
435
|
+
it 'should reset the grant_type value' do
|
436
|
+
expect(bwapi.grant_type).to eql(nil)
|
437
|
+
end
|
438
|
+
|
439
|
+
it 'should reset the logger value' do
|
440
|
+
expect(bwapi.logger).to eql(nil)
|
441
|
+
end
|
442
|
+
|
443
|
+
it 'should reset the password value' do
|
444
|
+
expect(bwapi.instance_variable_get(:@password)).to eql(nil)
|
445
|
+
end
|
446
|
+
|
447
|
+
it 'should reset the performance value' do
|
448
|
+
expect(bwapi.performance).to eql(nil)
|
449
|
+
end
|
450
|
+
|
451
|
+
it 'should reset the refresh_token value' do
|
452
|
+
expect(bwapi.refresh_token).to eql(nil)
|
453
|
+
end
|
454
|
+
|
455
|
+
it 'should reset the user_agent value' do
|
456
|
+
expect(bwapi.user_agent).to eql(nil)
|
457
|
+
end
|
458
|
+
|
459
|
+
it 'should reset the username value' do
|
460
|
+
expect(bwapi.username).to eql(nil)
|
461
|
+
end
|
462
|
+
|
463
|
+
it 'should reset the verify_ssl value' do
|
464
|
+
expect(bwapi.verify_ssl).to eql(nil)
|
465
|
+
end
|
466
|
+
end
|
467
|
+
|
468
|
+
describe '.options' do
|
469
|
+
before { bwapi.reset }
|
470
|
+
|
471
|
+
it 'should return the current configuration set' do
|
472
|
+
expect(bwapi.send(:options)).to eql(
|
473
|
+
access_token: nil,
|
474
|
+
access_token_expiry: nil,
|
475
|
+
adapter: :net_http,
|
476
|
+
api_endpoint: 'https://newapi.brandwatch.com/',
|
477
|
+
client_id: 'brandwatch-api-client',
|
478
|
+
client_secret: nil,
|
479
|
+
connection_options: {
|
480
|
+
headers: {
|
481
|
+
user_agent: 'BWAPI Ruby Gem 11.0.0'
|
482
|
+
},
|
483
|
+
request: {
|
484
|
+
params_encoder: Faraday::FlatParamsEncoder
|
485
|
+
}
|
486
|
+
},
|
487
|
+
debug: false,
|
488
|
+
grant_type: 'api-password',
|
489
|
+
logger: nil,
|
490
|
+
password: nil,
|
491
|
+
performance: {},
|
492
|
+
refresh_token: nil,
|
493
|
+
user_agent: 'BWAPI Ruby Gem 11.0.0',
|
494
|
+
username: nil,
|
495
|
+
verify_ssl: false
|
496
|
+
)
|
497
|
+
end
|
498
|
+
end
|
499
|
+
end
|