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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5bd2ac49dc5a4f6a747f7ee132c50bc7d5f7fdb
4
- data.tar.gz: cecfcc3fb2835f8ec0063208699444d3a323a7bc
3
+ metadata.gz: f718295fde446b1e90031da42fff34f5ac528c02
4
+ data.tar.gz: 1abbd19425aaf4b1ad35bb77c707d0f42f3f77d4
5
5
  SHA512:
6
- metadata.gz: 3ba8d918d1c2bd5d55afd34f23b1f707aa10560500c798db71905c51fcf9ec3e44820a4b8f40781f54525c235132def794cbf8c5ed0d637155e36308054478cf
7
- data.tar.gz: e837e674a81bee0d9768d43d65f8a78d8be9b7e525feb27b3d52c406333313800198e7ba99e81348090cdd104be23052b47e32c0858ffb83ec265b216ee0cadc
6
+ metadata.gz: 4065b7e304d7c25919b3ed1ffa00790db55a5ea549ebd9fd5cf59b48ecd3d728a3a84baaac970f4cd1d3e1519049804ec03f359581bbd7bda60414925daa17cb
7
+ data.tar.gz: 010b07685d2db3ad6e2603d2ba29e428e7b94710ea1744e99bd309a39fe3b5118ea13cbafb8f96f9ce3899b3cff5f5c09de5041692773ba399d575e8b12658bb
@@ -1,8 +1,7 @@
1
1
  module AnalyticsPSW
2
2
  module Customers
3
3
  def list_customers
4
- resp = http_request(:get, "#{@service_location}/customers")
5
- parse_json_response(resp)
4
+ http_request(:get, "#{@service_location}/customers")
6
5
  end
7
6
  end
8
7
  end
@@ -1,27 +1,23 @@
1
1
  module AnalyticsPSW
2
2
  module DimensionProperties
3
3
  def list_dimension_properties(dimension_name)
4
- resp = http_request(:get, "#{@service_location}/dimensions/#{dimension_name}/properties")
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
- resp = http_request(:get, "#{@service_location}/dimensions/#{dimension_name}/properties/#{dimension_value}")
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
- response = http_request(:post, "#{@service_location}/dimensions/#{dimension_name}/properties/#{dimension_value}", nil, body)
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
- response = http_request(:put, "#{@service_location}/dimensions/#{dimension_name}/properties/#{dimension_value}", nil, body)
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.status && [200, 201, 202].include?(resp.status)
8
- parse_json_response(resp)
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
- resp = http_request(:get, "#{@service_location}/dimensions")
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
- resp = http_request(:get, "#{@service_location}/dimensions/#{dimension_name}")
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
- resp = http_request(:get, "#{@service_location}/dimensions/#{dimension_name}/metadata")
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
- resp = http_request(:post, "#{@service_location}/event_types", nil, body)
7
- @event_types |= [name.to_s] if resp.status && [200, 201, 202].include?(resp.status)
8
- parse_json_response(resp)
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
- resp = http_request(:get, "#{@service_location}/event_types")
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
- resp = http_request(:get, "#{@service_location}/event_types/#{event_name.to_s}")
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
@@ -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
- parse_json_response(http_request(:post, "#{@service_location}/events", nil, body))
9
+ http_request(:post, "#{@service_location}/events", nil, body)
10
10
  end
11
11
 
12
12
  private
@@ -0,0 +1,9 @@
1
+ module AnalyticsPSW
2
+ module RecentEvents
3
+ #recent events can take in 2 params, "customer" and "limit", ie 'customer'=>'qa_customer'
4
+ def recent_events(options={})
5
+ http_request(:get, "#{@service_location}/recent_events",options)
6
+ end
7
+
8
+ end
9
+ end
@@ -5,9 +5,8 @@ module AnalyticsPSW
5
5
  module Reports
6
6
 
7
7
  def query_analytics(query_parameters)
8
- raw_report = http_request(:get, "#{@service_location}/reports/query.json", query_parameters)
9
- parsed_report = parse_json_response(raw_report)
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
- resp = http_request(:post, "#{@service_location}/reports", nil, body)
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
- resp = http_request(:get, "#{@service_location}/reports")
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
- resp = http_request(:get, "#{@service_location}/reports/#{report_name}/criteria")
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
- raw_report = http_request(:get, "#{@service_location}/reports/#{report_name}/results", where_criteria)
40
- parsed_report = parse_json_response(raw_report)
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
- resp = http_request(:delete, "#{@service_location}/reports/#{report_name}")
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
- resp = http_request(:get, "/services/#{service_name.to_s}")
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
- resp = http_request(:get, "/services/#{service_name.to_s}/metadata")
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
- raw = http_request(:post, url)
8
- resp = parse_json_response(raw)
9
- @token = resp['body']['access_token']
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.status == 200
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.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-08-13 00:00:00.000000000 Z
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