analytics-psw 0.3.3 → 0.3.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 +4 -4
- data/lib/analytics-psw/customers.rb +1 -2
- data/lib/analytics-psw/dimension_properties.rb +4 -8
- data/lib/analytics-psw/dimensions.rb +5 -8
- data/lib/analytics-psw/event_types.rb +5 -7
- data/lib/analytics-psw/events.rb +1 -1
- data/lib/analytics-psw/recent_events.rb +9 -0
- data/lib/analytics-psw/reports.rb +8 -14
- data/lib/analytics-psw/services.rb +2 -4
- data/lib/analytics-psw/utilities.rb +7 -4
- data/lib/analytics-psw.rb +4 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f718295fde446b1e90031da42fff34f5ac528c02
|
4
|
+
data.tar.gz: 1abbd19425aaf4b1ad35bb77c707d0f42f3f77d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4065b7e304d7c25919b3ed1ffa00790db55a5ea549ebd9fd5cf59b48ecd3d728a3a84baaac970f4cd1d3e1519049804ec03f359581bbd7bda60414925daa17cb
|
7
|
+
data.tar.gz: 010b07685d2db3ad6e2603d2ba29e428e7b94710ea1744e99bd309a39fe3b5118ea13cbafb8f96f9ce3899b3cff5f5c09de5041692773ba399d575e8b12658bb
|
@@ -1,27 +1,23 @@
|
|
1
1
|
module AnalyticsPSW
|
2
2
|
module DimensionProperties
|
3
3
|
def list_dimension_properties(dimension_name)
|
4
|
-
|
5
|
-
parse_json_response(resp)
|
4
|
+
http_request(:get, "#{@service_location}/dimensions/#{dimension_name}/properties")
|
6
5
|
end
|
7
6
|
|
8
7
|
def show_dimension_properties(dimension_name, dimension_value)
|
9
|
-
|
10
|
-
parse_json_response(resp)
|
8
|
+
http_request(:get, "#{@service_location}/dimensions/#{dimension_name}/properties/#{dimension_value}")
|
11
9
|
end
|
12
10
|
|
13
11
|
def create_dimension_properties(dimension_name, dimension_value, properties = {})
|
14
12
|
metadata = create_dimension_properties_metadata(dimension_value, properties)
|
15
13
|
body = create_json_body('dimension_property', metadata)
|
16
|
-
|
17
|
-
parse_json_response(response)
|
14
|
+
http_request(:post, "#{@service_location}/dimensions/#{dimension_name}/properties/#{dimension_value}", nil, body)
|
18
15
|
end
|
19
16
|
|
20
17
|
def update_dimension_properties(dimension_name, dimension_value, properties = {})
|
21
18
|
metadata = create_dimension_properties_metadata(dimension_value, properties)
|
22
19
|
body = create_json_body('dimension_property', metadata)
|
23
|
-
|
24
|
-
parse_json_response(response)
|
20
|
+
http_request(:put, "#{@service_location}/dimensions/#{dimension_name}/properties/#{dimension_value}", nil, body)
|
25
21
|
end
|
26
22
|
|
27
23
|
def create_or_update_dimension_properties(dimension_name, dimension_value, properties = {})
|
@@ -4,23 +4,20 @@ module AnalyticsPSW
|
|
4
4
|
def create_dimension(name, data_type, units = '', description = '')
|
5
5
|
body = create_json_body('dimension', {:name => name.to_s, :description => description, :data_type => data_type, :units => units})
|
6
6
|
resp = http_request(:post, "#{@service_location}/dimensions", nil, body)
|
7
|
-
@dimensions |= [name.to_s] if resp
|
8
|
-
|
7
|
+
@dimensions |= [name.to_s] if resp['status'] && [200, 201, 202].include?(resp['status'])
|
8
|
+
resp
|
9
9
|
end
|
10
10
|
|
11
11
|
def list_dimensions
|
12
|
-
|
13
|
-
parse_json_response(resp)
|
12
|
+
http_request(:get, "#{@service_location}/dimensions")
|
14
13
|
end
|
15
14
|
|
16
15
|
def show_dimension_resources(dimension_name)
|
17
|
-
|
18
|
-
parse_json_response(resp)
|
16
|
+
http_request(:get, "#{@service_location}/dimensions/#{dimension_name}")
|
19
17
|
end
|
20
18
|
|
21
19
|
def show_dimension_metadata(dimension_name)
|
22
|
-
|
23
|
-
parse_json_response(resp)
|
20
|
+
http_request(:get, "#{@service_location}/dimensions/#{dimension_name}/metadata")
|
24
21
|
end
|
25
22
|
|
26
23
|
private
|
@@ -3,19 +3,17 @@ module AnalyticsPSW
|
|
3
3
|
|
4
4
|
def create_event_type(name, description = "")
|
5
5
|
body = create_json_body('event_type', {:name => name.to_s, :description => description})
|
6
|
-
|
7
|
-
@event_types |= [name.to_s] if
|
8
|
-
|
6
|
+
event_type_response = http_request(:post, "#{@service_location}/event_types", nil, body)
|
7
|
+
@event_types |= [name.to_s] if event_type_response['status'] && [200, 201, 202].include?(event_type_response['status'])
|
8
|
+
event_type_response
|
9
9
|
end
|
10
10
|
|
11
11
|
def list_event_types
|
12
|
-
|
13
|
-
parse_json_response(resp)
|
12
|
+
http_request(:get, "#{@service_location}/event_types")
|
14
13
|
end
|
15
14
|
|
16
15
|
def show_event_type(event_name)
|
17
|
-
|
18
|
-
parse_json_response(resp)
|
16
|
+
http_request(:get, "#{@service_location}/event_types/#{event_name.to_s}")
|
19
17
|
end
|
20
18
|
|
21
19
|
private
|
data/lib/analytics-psw/events.rb
CHANGED
@@ -6,7 +6,7 @@ module AnalyticsPSW
|
|
6
6
|
return invalid_metadata_response unless dimensions_exist? metadata
|
7
7
|
metadata[:event_type] = event_type.to_s
|
8
8
|
body = create_json_body('event', metadata)
|
9
|
-
|
9
|
+
http_request(:post, "#{@service_location}/events", nil, body)
|
10
10
|
end
|
11
11
|
|
12
12
|
private
|
@@ -5,9 +5,8 @@ module AnalyticsPSW
|
|
5
5
|
module Reports
|
6
6
|
|
7
7
|
def query_analytics(query_parameters)
|
8
|
-
|
9
|
-
|
10
|
-
create_analytics_report(parsed_report)
|
8
|
+
report_response = http_request(:get, "#{@service_location}/reports/query.json", query_parameters)
|
9
|
+
create_analytics_report(report_response)
|
11
10
|
end
|
12
11
|
|
13
12
|
def multi_query_analytics(query_parameters)
|
@@ -21,29 +20,24 @@ module AnalyticsPSW
|
|
21
20
|
def create_report(name, query_parameters)
|
22
21
|
query_parameters[:name] = name.to_s
|
23
22
|
body = create_json_body('report', query_parameters)
|
24
|
-
|
25
|
-
parse_json_response(resp)
|
23
|
+
http_request(:post, "#{@service_location}/reports", nil, body)
|
26
24
|
end
|
27
25
|
|
28
26
|
def list_reports
|
29
|
-
|
30
|
-
parse_json_response(resp)
|
27
|
+
http_request(:get, "#{@service_location}/reports")
|
31
28
|
end
|
32
29
|
|
33
30
|
def report_criteria(report_name)
|
34
|
-
|
35
|
-
parse_json_response(resp)
|
31
|
+
http_request(:get, "#{@service_location}/reports/#{report_name}/criteria")
|
36
32
|
end
|
37
33
|
|
38
34
|
def run_report(report_name, where_criteria = {})
|
39
|
-
|
40
|
-
|
41
|
-
create_analytics_report(parsed_report)
|
35
|
+
report_response = http_request(:get, "#{@service_location}/reports/#{report_name}/results", where_criteria)
|
36
|
+
create_analytics_report(report_response)
|
42
37
|
end
|
43
38
|
|
44
39
|
def delete_report(report_name)
|
45
|
-
|
46
|
-
parse_json_response(resp)
|
40
|
+
http_request(:delete, "#{@service_location}/reports/#{report_name}")
|
47
41
|
end
|
48
42
|
|
49
43
|
private
|
@@ -1,13 +1,11 @@
|
|
1
1
|
module AnalyticsPSW
|
2
2
|
module Services
|
3
3
|
def show_service_resources(service_name)
|
4
|
-
|
5
|
-
parse_json_response(resp)
|
4
|
+
http_request(:get, "/services/#{service_name.to_s}")
|
6
5
|
end
|
7
6
|
|
8
7
|
def show_service_metadata(service_name)
|
9
|
-
|
10
|
-
parse_json_response(resp)
|
8
|
+
http_request(:get, "/services/#{service_name.to_s}/metadata")
|
11
9
|
end
|
12
10
|
end
|
13
11
|
end
|
@@ -3,10 +3,11 @@ module AnalyticsPSW
|
|
3
3
|
private
|
4
4
|
|
5
5
|
def update_token
|
6
|
+
@expires = nil
|
6
7
|
url = "#{@server_url}/oauth/token?client_id=#{@client_id}&client_secret=#{@client_secret}"
|
7
|
-
|
8
|
-
|
9
|
-
@
|
8
|
+
token_response = http_request(:post, url)
|
9
|
+
@token = token_response['body']['access_token']
|
10
|
+
@expires = Time.now + token_response['body']['expires_in']
|
10
11
|
end
|
11
12
|
|
12
13
|
def faraday_connection
|
@@ -14,6 +15,7 @@ module AnalyticsPSW
|
|
14
15
|
end
|
15
16
|
|
16
17
|
def http_request(http_method, url, params = nil, body = nil)
|
18
|
+
update_token if @expires and Time.now > @expires
|
17
19
|
json_block = ->(req) do
|
18
20
|
req.url url
|
19
21
|
req.headers['Content-Type'] = 'application/json'
|
@@ -21,10 +23,11 @@ module AnalyticsPSW
|
|
21
23
|
req.params = params if params
|
22
24
|
req.body = body if body
|
23
25
|
end
|
24
|
-
@conn.send(http_method, &json_block)
|
26
|
+
parse_json_response(@conn.send(http_method, &json_block))
|
25
27
|
end
|
26
28
|
|
27
29
|
def multi_get_json(service_location, query_parameters)
|
30
|
+
update_token if @expires and Time.now > @expires
|
28
31
|
results = []
|
29
32
|
EventMachine.run do
|
30
33
|
multi = EventMachine::MultiRequest.new
|
data/lib/analytics-psw.rb
CHANGED
@@ -11,6 +11,7 @@ require 'analytics-psw/dimension_properties'
|
|
11
11
|
require 'analytics-psw/dimensions'
|
12
12
|
require 'analytics-psw/customers'
|
13
13
|
require 'analytics-psw/utilities'
|
14
|
+
require 'analytics-psw/recent_events'
|
14
15
|
|
15
16
|
module AnalyticsPSW
|
16
17
|
class Analytics
|
@@ -22,7 +23,8 @@ module AnalyticsPSW
|
|
22
23
|
AnalyticsPSW::Events,
|
23
24
|
AnalyticsPSW::Dimensions,
|
24
25
|
AnalyticsPSW::DimensionProperties,
|
25
|
-
AnalyticsPSW::Utilities
|
26
|
+
AnalyticsPSW::Utilities,
|
27
|
+
AnalyticsPSW::RecentEvents
|
26
28
|
|
27
29
|
attr_accessor :service_location
|
28
30
|
|
@@ -32,7 +34,7 @@ module AnalyticsPSW
|
|
32
34
|
update_token if @client_id && @client_secret
|
33
35
|
@service_location = "#{@server_url}/services/#{@service_name}"
|
34
36
|
resp = http_request(:get, @service_location)
|
35
|
-
raise 'The service name provided does not appear to be valid' unless resp
|
37
|
+
raise 'The service name provided does not appear to be valid' unless resp['status'] == 200
|
36
38
|
find_or_create_event_types
|
37
39
|
find_or_create_dimensions(@dimensions) if @dimensions
|
38
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: analytics-psw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lexmark International Technology S.A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -152,6 +152,7 @@ files:
|
|
152
152
|
- lib/analytics-psw/dimensions.rb
|
153
153
|
- lib/analytics-psw/event_types.rb
|
154
154
|
- lib/analytics-psw/events.rb
|
155
|
+
- lib/analytics-psw/recent_events.rb
|
155
156
|
- lib/analytics-psw/reports.rb
|
156
157
|
- lib/analytics-psw/services.rb
|
157
158
|
- lib/analytics-psw/utilities.rb
|