analytics-psw 0.3.3 → 0.3.4

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: 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