ecoportal-api 0.2.2 → 0.3.0.pre1
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/ecoportal/api.rb +1 -0
- data/lib/ecoportal/api/common.rb +1 -0
- data/lib/ecoportal/api/common/client.rb +47 -9
- data/lib/ecoportal/api/common/logging.rb +17 -0
- data/lib/ecoportal/api/internal.rb +7 -4
- data/lib/ecoportal/api/v1.rb +6 -3
- data/lib/ecoportal/api/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83c71a815e9029a177b05a72733165c2a4d4868a8df3c9ef6c93f27a7a5e2458
|
4
|
+
data.tar.gz: 57e7f0759ca52ad93150da122fd92220ad043668b4402128c8550c284c90f91b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf01726252c61adbb66f8ff78f4b0d5c05efec942b3248ef64b92df8e66c2d105e886d9e7bbb61f4d305d233359e73706659ed40522e5114387f5736e83572f9
|
7
|
+
data.tar.gz: e2b12acff4f9fbf1fdd6841ccce074c4c41ff330aa5f59de7184462b29f8642b8afa467babbc80583f0f91f5e7bb0c52c34b39c3499ddfb304d03a9173477d25
|
data/lib/ecoportal/api.rb
CHANGED
data/lib/ecoportal/api/common.rb
CHANGED
@@ -3,37 +3,52 @@ module Ecoportal
|
|
3
3
|
module API
|
4
4
|
module Common
|
5
5
|
class Client
|
6
|
-
def initialize(api_key:, version: "v1", host: "live.ecoportal.com")
|
6
|
+
def initialize(api_key:, version: "v1", host: "live.ecoportal.com", logger: nil)
|
7
7
|
@version = version
|
8
8
|
@api_key = api_key
|
9
|
+
@logger = logger
|
9
10
|
if host.match(/^localhost|^127\.0\.0\.1/)
|
10
11
|
@base_uri = "http://#{host}/api/"
|
11
12
|
else
|
12
13
|
@base_uri = "https://#{host}/api/"
|
13
14
|
end
|
15
|
+
log(:info) { "#{version} client initialized pointing at #{host}" }
|
16
|
+
log(:info) { "Api-key: #{@api_key}" }
|
17
|
+
end
|
18
|
+
|
19
|
+
def log(level, &block)
|
20
|
+
@logger.send(level, &block) if @logger
|
14
21
|
end
|
15
22
|
|
16
23
|
def get(path, params: {})
|
17
|
-
|
18
|
-
|
24
|
+
instrument("GET", path, params) do
|
25
|
+
request do |http|
|
26
|
+
http.get(url_for(path), params: params)
|
27
|
+
end
|
19
28
|
end
|
20
29
|
end
|
21
30
|
|
22
31
|
def post(path, data:)
|
23
|
-
|
24
|
-
|
32
|
+
instrument("POST", path, data) do
|
33
|
+
request do |http|
|
34
|
+
http.post(url_for(path), json: data)
|
35
|
+
end
|
25
36
|
end
|
26
37
|
end
|
27
38
|
|
28
39
|
def patch(path, data:)
|
29
|
-
|
30
|
-
|
40
|
+
instrument("PATCH", path, data) do
|
41
|
+
request do |http|
|
42
|
+
http.patch(url_for(path), json: data)
|
43
|
+
end
|
31
44
|
end
|
32
45
|
end
|
33
46
|
|
34
47
|
def delete(path)
|
35
|
-
|
36
|
-
http
|
48
|
+
instrument("DELETE", path) do
|
49
|
+
request do |http|
|
50
|
+
http.delete(url_for(path))
|
51
|
+
end
|
37
52
|
end
|
38
53
|
end
|
39
54
|
|
@@ -52,6 +67,29 @@ module Ecoportal
|
|
52
67
|
def url_for(path)
|
53
68
|
@base_uri+@version+path
|
54
69
|
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def instrument(method, path, data = nil)
|
74
|
+
start_time = Time.now.to_f
|
75
|
+
log :info do
|
76
|
+
"GET #{url_for(path)}"
|
77
|
+
end
|
78
|
+
JSON.pretty_generate(data).lines.each.with_index do |line, index|
|
79
|
+
line = "Data: " + line if index.zero?
|
80
|
+
log(:info) { line.chomp }
|
81
|
+
end
|
82
|
+
yield.tap do |result|
|
83
|
+
end_time = Time.now.to_f
|
84
|
+
log :info do
|
85
|
+
"Took %.2fs, Status #{result.status}" % (end_time - start_time)
|
86
|
+
end
|
87
|
+
JSON.pretty_generate(result.body).lines.each.with_index do |line, index|
|
88
|
+
line = "Response: " + line if index.zero?
|
89
|
+
log(:debug) { line.chomp }
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
55
93
|
end
|
56
94
|
end
|
57
95
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
module Common
|
4
|
+
module Logging
|
5
|
+
private
|
6
|
+
def default_logger
|
7
|
+
Logger.new(STDOUT).tap do |_logger|
|
8
|
+
_logger.formatter = proc do |severity, datetime, progname, msg|
|
9
|
+
"#{severity.to_s[0]}: #{datetime.strftime("%Y-%m-%d %H:%M:%S")} > #{msg}\n"
|
10
|
+
end
|
11
|
+
_logger.level = Logger::DEBUG
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,12 +1,15 @@
|
|
1
1
|
module Ecoportal
|
2
2
|
module API
|
3
3
|
class Internal
|
4
|
-
|
5
|
-
|
4
|
+
include Common::Logging
|
5
|
+
attr_reader :client, :logger
|
6
|
+
def initialize(api_key, host: "live.ecoportal.com", logger: default_logger)
|
7
|
+
@logger = logger
|
6
8
|
@client = Common::Client.new(
|
7
9
|
api_key: api_key,
|
8
10
|
host: host,
|
9
|
-
version: "v0"
|
11
|
+
version: "v0",
|
12
|
+
logger: @logger
|
10
13
|
)
|
11
14
|
end
|
12
15
|
def people
|
@@ -28,4 +31,4 @@ end
|
|
28
31
|
require 'ecoportal/api/internal/people'
|
29
32
|
require 'ecoportal/api/internal/person_schemas'
|
30
33
|
require 'ecoportal/api/internal/policy_groups'
|
31
|
-
require 'ecoportal/api/internal/login_providers'
|
34
|
+
require 'ecoportal/api/internal/login_providers'
|
data/lib/ecoportal/api/v1.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
module Ecoportal
|
2
2
|
module API
|
3
3
|
class V1
|
4
|
-
|
5
|
-
|
4
|
+
include Common::Logging
|
5
|
+
attr_reader :client, :logger
|
6
|
+
def initialize(api_key, host: "live.ecoportal.com", logger: default_logger)
|
7
|
+
@logger = logger
|
6
8
|
@client = Common::Client.new(
|
7
9
|
api_key: api_key,
|
8
10
|
host: host,
|
9
|
-
version: "v1"
|
11
|
+
version: "v1",
|
12
|
+
logger: @logger
|
10
13
|
)
|
11
14
|
end
|
12
15
|
def people
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecoportal-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tapio Saarinen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- lib/ecoportal/api/common/client.rb
|
107
107
|
- lib/ecoportal/api/common/doc_helpers.rb
|
108
108
|
- lib/ecoportal/api/common/hash_diff.rb
|
109
|
+
- lib/ecoportal/api/common/logging.rb
|
109
110
|
- lib/ecoportal/api/common/response.rb
|
110
111
|
- lib/ecoportal/api/common/wrapped_response.rb
|
111
112
|
- lib/ecoportal/api/internal.rb
|
@@ -149,9 +150,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
150
|
version: '0'
|
150
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
152
|
requirements:
|
152
|
-
- - "
|
153
|
+
- - ">"
|
153
154
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
155
|
+
version: 1.3.1
|
155
156
|
requirements: []
|
156
157
|
rubyforge_project:
|
157
158
|
rubygems_version: 2.7.6
|