analytics-psw 0.0.5 → 0.0.6
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.rb +99 -99
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe0c7434249cf66e30bf8b4615b8fc059ef26f52
|
4
|
+
data.tar.gz: 9d491fa4a11171f9f977cb5ec073302bcf59f4a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 886806b59dc92b9bf7332944bdde76917285771abb895b25a499384db405c1f46ce4db6a37bef456b2adad34adfe68dbe2d90a13dc723d164282cbca9dfaeb0d
|
7
|
+
data.tar.gz: ba1ff44fbab4d5c1e95eeb18e81cb1ebac8edfb5b3d7c5d564ffe23fe233074aa5542e236302f8d47d25c781525ce1d0853c5f6878797993381bfda3262301a1
|
data/lib/analytics-psw.rb
CHANGED
@@ -1,100 +1,100 @@
|
|
1
|
-
require 'faraday'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
class AnalyticsPSW
|
5
|
-
|
6
|
-
VERSION = "0.0.
|
7
|
-
API_VERSION = "v#{VERSION}"
|
8
|
-
API_URL = "/api/#{API_VERSION}/services"
|
9
|
-
JSON_CONTENT_TYPE = 'application/json'
|
10
|
-
|
11
|
-
attr_accessor :service_location
|
12
|
-
|
13
|
-
def initialize(opts = {})
|
14
|
-
@server_url = opts['server_url']
|
15
|
-
service_name = opts['service']
|
16
|
-
raise "Please ensure you have provided the appropriate server url and service name" unless @server_url && service_name
|
17
|
-
@proxy = opts['proxy']
|
18
|
-
@proxy = "" if @server_url.start_with?("http://127.0.0.1") or @server_url.start_with?("http://localhost")
|
19
|
-
@conn = faraday_connection
|
20
|
-
@service_location = find_or_create_service(service_name)
|
21
|
-
end
|
22
|
-
|
23
|
-
def record_event(event_type, metadata = {})
|
24
|
-
metadata[:event_type] = event_type
|
25
|
-
post_json("#{@service_location}/events", "event", metadata)
|
26
|
-
end
|
27
|
-
|
28
|
-
def query_analytics(query_parameters)
|
29
|
-
resp = get_with_hash("#{@service_location}/reports/query.json", query_parameters)
|
30
|
-
raise "Problem with your query. Please check the required parameters and try again" if resp.status == 400
|
31
|
-
JSON.parse(resp.body)
|
32
|
-
end
|
33
|
-
|
34
|
-
def create_event_type(name, description = "")
|
35
|
-
metadata = create_metadata({:name => name, :description => description})
|
36
|
-
post_json("#{@service_location}/event_types", "event_type", metadata)
|
37
|
-
end
|
38
|
-
|
39
|
-
def create_dimension(name, data_type, units = "", description = "")
|
40
|
-
metadata = create_metadata({:name => name, :description => description, :data_type => data_type, :units => units})
|
41
|
-
post_json("#{@service_location}/dimensions", "dimension", metadata)
|
42
|
-
end
|
43
|
-
|
44
|
-
private
|
45
|
-
|
46
|
-
def post_json(url, object_type, metadata)
|
47
|
-
json_object = create_json_object(object_type, metadata)
|
48
|
-
@conn.post do |req|
|
49
|
-
req.url url
|
50
|
-
req.headers['Content-Type'] = JSON_CONTENT_TYPE
|
51
|
-
req.body = json_object
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def get_with_hash(url, hash_object = {})
|
56
|
-
@conn.get url, hash_object
|
57
|
-
end
|
58
|
-
|
59
|
-
def create_json_object(object_type, metadata = {})
|
60
|
-
json_object= {object_type => metadata}
|
61
|
-
json_object.to_json
|
62
|
-
end
|
63
|
-
|
64
|
-
def create_metadata(hashmap)
|
65
|
-
metadata = {}
|
66
|
-
hashmap.each do |key, value|
|
67
|
-
metadata[key] = value unless value == ""
|
68
|
-
end
|
69
|
-
metadata
|
70
|
-
end
|
71
|
-
|
72
|
-
def find_or_create_service(service_name)
|
73
|
-
service_location = find_service_location(service_name)
|
74
|
-
if !service_location
|
75
|
-
resp = create_service(service_name)
|
76
|
-
service_location = resp["location"]
|
77
|
-
end
|
78
|
-
service_location
|
79
|
-
end
|
80
|
-
|
81
|
-
def find_service_location(service_name)
|
82
|
-
service_location = nil
|
83
|
-
all_services = JSON.parse(get_with_hash("#{API_URL}.json").body)
|
84
|
-
all_services["services"].each do |service|
|
85
|
-
service_location = service["location"] if service["name"] == service_name
|
86
|
-
end
|
87
|
-
service_location
|
88
|
-
end
|
89
|
-
|
90
|
-
def create_service(name, description = "")
|
91
|
-
metadata = create_metadata({:name => name, :description => description})
|
92
|
-
post_json(API_URL, "service", metadata)
|
93
|
-
end
|
94
|
-
|
95
|
-
def faraday_connection
|
96
|
-
return Faraday.new(@server_url)
|
97
|
-
Faraday.new(@server_url, {:proxy => {:uri => @proxy}})
|
98
|
-
end
|
99
|
-
|
1
|
+
require 'faraday'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class AnalyticsPSW
|
5
|
+
|
6
|
+
VERSION = "0.0.6"
|
7
|
+
API_VERSION = "v#{VERSION}"
|
8
|
+
API_URL = "/api/#{API_VERSION}/services"
|
9
|
+
JSON_CONTENT_TYPE = 'application/json'
|
10
|
+
|
11
|
+
attr_accessor :service_location
|
12
|
+
|
13
|
+
def initialize(opts = {})
|
14
|
+
@server_url = opts['server_url']
|
15
|
+
service_name = opts['service']
|
16
|
+
raise "Please ensure you have provided the appropriate server url and service name" unless @server_url && service_name
|
17
|
+
@proxy = opts['proxy']
|
18
|
+
@proxy = "" if @server_url.start_with?("http://127.0.0.1") or @server_url.start_with?("http://localhost")
|
19
|
+
@conn = faraday_connection
|
20
|
+
@service_location = find_or_create_service(service_name)
|
21
|
+
end
|
22
|
+
|
23
|
+
def record_event(event_type, metadata = {})
|
24
|
+
metadata[:event_type] = event_type
|
25
|
+
post_json("#{@service_location}/events", "event", metadata)
|
26
|
+
end
|
27
|
+
|
28
|
+
def query_analytics(query_parameters)
|
29
|
+
resp = get_with_hash("#{@service_location}/reports/query.json", query_parameters)
|
30
|
+
raise "Problem with your query. Please check the required parameters and try again" if resp.status == 400
|
31
|
+
JSON.parse(resp.body)
|
32
|
+
end
|
33
|
+
|
34
|
+
def create_event_type(name, description = "")
|
35
|
+
metadata = create_metadata({:name => name, :description => description})
|
36
|
+
post_json("#{@service_location}/event_types", "event_type", metadata)
|
37
|
+
end
|
38
|
+
|
39
|
+
def create_dimension(name, data_type, units = "", description = "")
|
40
|
+
metadata = create_metadata({:name => name, :description => description, :data_type => data_type, :units => units})
|
41
|
+
post_json("#{@service_location}/dimensions", "dimension", metadata)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def post_json(url, object_type, metadata)
|
47
|
+
json_object = create_json_object(object_type, metadata)
|
48
|
+
@conn.post do |req|
|
49
|
+
req.url url
|
50
|
+
req.headers['Content-Type'] = JSON_CONTENT_TYPE
|
51
|
+
req.body = json_object
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def get_with_hash(url, hash_object = {})
|
56
|
+
@conn.get url, hash_object
|
57
|
+
end
|
58
|
+
|
59
|
+
def create_json_object(object_type, metadata = {})
|
60
|
+
json_object= {object_type => metadata}
|
61
|
+
json_object.to_json
|
62
|
+
end
|
63
|
+
|
64
|
+
def create_metadata(hashmap)
|
65
|
+
metadata = {}
|
66
|
+
hashmap.each do |key, value|
|
67
|
+
metadata[key] = value unless value == ""
|
68
|
+
end
|
69
|
+
metadata
|
70
|
+
end
|
71
|
+
|
72
|
+
def find_or_create_service(service_name)
|
73
|
+
service_location = find_service_location(service_name)
|
74
|
+
if !service_location
|
75
|
+
resp = create_service(service_name)
|
76
|
+
service_location = resp["location"]
|
77
|
+
end
|
78
|
+
service_location
|
79
|
+
end
|
80
|
+
|
81
|
+
def find_service_location(service_name)
|
82
|
+
service_location = nil
|
83
|
+
all_services = JSON.parse(get_with_hash("#{API_URL}.json").body)
|
84
|
+
all_services["services"].each do |service|
|
85
|
+
service_location = service["location"] if service["name"] == service_name
|
86
|
+
end
|
87
|
+
service_location
|
88
|
+
end
|
89
|
+
|
90
|
+
def create_service(name, description = "")
|
91
|
+
metadata = create_metadata({:name => name, :description => description})
|
92
|
+
post_json(API_URL, "service", metadata)
|
93
|
+
end
|
94
|
+
|
95
|
+
def faraday_connection
|
96
|
+
return Faraday.new(@server_url) if @proxy == "" or @proxy == nil
|
97
|
+
Faraday.new(@server_url, {:proxy => {:uri => @proxy}})
|
98
|
+
end
|
99
|
+
|
100
100
|
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.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Keyes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
111
|
rubyforge_project:
|
112
|
-
rubygems_version: 2.
|
112
|
+
rubygems_version: 2.1.11
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Perceptive Cloud Platform Analytics Service Wrapper
|