webtrekk_connector 0.0.1 → 0.0.3
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/webtrekk_connector.rb +49 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a0994104ef677b582c381c9551c5e69810722c814ef10c700d4a3f8cff90f88
|
4
|
+
data.tar.gz: 753a1052acb21d43b3c1aa9fca32fac7eeb262df06f6d630687ccfa30d97b014
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95c843b3abc88691ec607b5af66db42dc0ec1c4118f10818f2e53f1d6ac0735a4c5f88f996f86a3a38dc2550ffb9fb64d83e7f13b45af721bfc46163acce2291
|
7
|
+
data.tar.gz: 06f4e36e67b93eaad35952e6e1f0218d983ad183b30c3c5582a44092657c804c111bd55fc9d6d598a75ea57e200461a5069b5586b804cb47cb3ef2910ec8abca
|
data/lib/webtrekk_connector.rb
CHANGED
@@ -3,7 +3,19 @@ require 'openssl'
|
|
3
3
|
require 'logger'
|
4
4
|
require 'json'
|
5
5
|
|
6
|
+
# This class is a wrapper around the Webtrekk/Mapp Analytics JSON/RPC API.
|
7
|
+
|
6
8
|
class WebtrekkConnector
|
9
|
+
|
10
|
+
# Create an instance of WebtrekkConnector.
|
11
|
+
#
|
12
|
+
# @param conf[Hash] the configuration object for the connector
|
13
|
+
# @option conf [String] :endpoint the API endpoint, e.g. +https://xyz.webtrekk.com/cgi-bin/wt/JSONRPC.cgi+ (*required*)
|
14
|
+
# @option conf [String] :user the user name to use with the API (*required*)
|
15
|
+
# @option conf [String] :pwd the password for +:user+ (*required*)
|
16
|
+
# @option conf [String] :customerId the customer Id to used for all requests (optional).
|
17
|
+
# If not set, the id of the first account retrieved via +getAccountList+ will be used.
|
18
|
+
# @option conf [Logger] :logger the logging object to use for logging output (optional, _defaults_ _to_ +Logger.new(STDERR)+)
|
7
19
|
def initialize(conf)
|
8
20
|
@endpoint = conf[:endpoint]
|
9
21
|
@user = conf[:user]
|
@@ -13,6 +25,13 @@ class WebtrekkConnector
|
|
13
25
|
@logger.info("Connector set up for #{@endpoint}.")
|
14
26
|
end
|
15
27
|
|
28
|
+
# Send the actual HTTP(s) request.
|
29
|
+
#
|
30
|
+
# @param uri[URI] where to send the request
|
31
|
+
# @param payload[Object] the payload to be sent, will be converted by calling +payload.to_json+
|
32
|
+
#
|
33
|
+
# @return [String] the response body
|
34
|
+
# @raise [Net::HTTPError] if the response code is not 200
|
16
35
|
def make_https_request(uri, payload=nil)
|
17
36
|
@logger.info("sending request (method #{payload[:method]}) ...")
|
18
37
|
Net::HTTP.start(uri.host, uri.port,
|
@@ -32,6 +51,12 @@ class WebtrekkConnector
|
|
32
51
|
end
|
33
52
|
end
|
34
53
|
|
54
|
+
# Call a method on the API.
|
55
|
+
#
|
56
|
+
# @param method[String] the method name
|
57
|
+
# @param params[Hash] the method parameters
|
58
|
+
#
|
59
|
+
# @return [Object] the response body converted to a Ruby object by calling +JSON.parse(response)+
|
35
60
|
def call_method(method, params={})
|
36
61
|
@logger.info("call_method: #{method}")
|
37
62
|
payload = {
|
@@ -44,10 +69,16 @@ class WebtrekkConnector
|
|
44
69
|
data['result']
|
45
70
|
end
|
46
71
|
|
72
|
+
# Call the +getConnectionTest+ method.
|
73
|
+
#
|
74
|
+
# @return [Object] the response body as a Ruby object
|
47
75
|
def get_connection_test
|
48
76
|
response = call_method('getConnectionTest')
|
49
77
|
end
|
50
78
|
|
79
|
+
# Get a token from the API by calling the +login+ method.
|
80
|
+
#
|
81
|
+
# @return [String] the token returned by the API
|
51
82
|
def get_token
|
52
83
|
unless @customerId
|
53
84
|
@customerId = self.get_first_account['customerId']
|
@@ -60,12 +91,17 @@ class WebtrekkConnector
|
|
60
91
|
}
|
61
92
|
response = call_method('login', params)
|
62
93
|
end
|
63
|
-
|
64
|
-
|
94
|
+
|
95
|
+
# Log into the API by setting the \@token attribute.
|
96
|
+
#
|
97
|
+
# @return [String] the token returned by the API
|
65
98
|
def login
|
66
99
|
@token = get_token
|
67
100
|
end
|
68
101
|
|
102
|
+
# Get the list of accounts associated with \@user.
|
103
|
+
#
|
104
|
+
# @return [Array] the list of accounts
|
69
105
|
def get_account_list
|
70
106
|
params = {
|
71
107
|
:login => @user,
|
@@ -74,11 +110,19 @@ class WebtrekkConnector
|
|
74
110
|
response = call_method('getAccountList', params)
|
75
111
|
end
|
76
112
|
|
113
|
+
# Get the first account associated with \@user.
|
114
|
+
#
|
115
|
+
# @return [Hash] the first account as a Hash
|
77
116
|
def get_first_account
|
78
117
|
account_list = get_account_list
|
79
118
|
account_list.first
|
80
119
|
end
|
81
120
|
|
121
|
+
# Call the +getAnalysisData+ method.
|
122
|
+
#
|
123
|
+
# @param analysis_config[Hash] the +analysisConfig+ object as a Ruby Hash.
|
124
|
+
#
|
125
|
+
# @return [Hash] the response body converted as a Hash
|
82
126
|
def request_analysis(analysis_config)
|
83
127
|
params = {
|
84
128
|
:token => @token ,
|
@@ -87,6 +131,9 @@ class WebtrekkConnector
|
|
87
131
|
response = call_method("getAnalysisData", params)
|
88
132
|
end
|
89
133
|
|
134
|
+
# Call the +getAnalysisObjectsAndMetricsList+ method.
|
135
|
+
#
|
136
|
+
# @return [Hash] the response body as a Hash
|
90
137
|
def get_analysis_objects_and_metrics_list
|
91
138
|
params = {
|
92
139
|
:token => @token
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webtrekk_connector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Knud Möller
|
@@ -17,7 +17,7 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- lib/webtrekk_connector.rb
|
20
|
-
homepage: https://
|
20
|
+
homepage: https://github.com/berlinonline/webtrekk_connector
|
21
21
|
licenses:
|
22
22
|
- MIT
|
23
23
|
metadata: {}
|