insnergy-api-ruby-client 0.11.0 → 0.12.0
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/VERSION +1 -1
- data/insnergy-api-ruby-client.gemspec +3 -3
- data/lib/insnergy-api-ruby-client.rb +129 -133
- data/spec/insnergy-api-ruby-client_spec.rb +29 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8728279bc391df17e4a5727f35bcdedb4055494a
|
4
|
+
data.tar.gz: 45f413e3b1886d7044e0708daf222325926ce8d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c684e0a06d9ceb673a9b505e8c0e224f39173b69cbb49f27c209dc0af211eecd5098cef16a114def233af8d82433e92d67c17163de71a72052efc41c17c0727
|
7
|
+
data.tar.gz: 41d6431347024d67fdb965adfd9e095625738cc0265df56a4b3b89137376a86a22fd883f374d27a95925c9a671ac1160503d68a03bc4de261680149e0d6e809a
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.12.0
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: insnergy-api-ruby-client 0.
|
5
|
+
# stub: insnergy-api-ruby-client 0.12.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "insnergy-api-ruby-client"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.12.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["kaogaau"]
|
14
|
-
s.date = "2016-10-
|
14
|
+
s.date = "2016-10-05"
|
15
15
|
s.description = "The ruby gem about In-Snergy Family"
|
16
16
|
s.email = "kaogaau@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -2,78 +2,140 @@ require 'json'
|
|
2
2
|
require 'rest-client'
|
3
3
|
|
4
4
|
module Insnergy
|
5
|
+
module Client
|
6
|
+
class Token
|
7
|
+
attr_accessor :domain, :oauth_key, :oauth_secert, :refresh_token
|
8
|
+
attr_reader :access_token, :user_id
|
9
|
+
|
10
|
+
def initialize(domain: nil, oauth_key: nil, oauth_secert: nil, refresh_token: nil)
|
11
|
+
@domain = domain
|
12
|
+
@oauth_key = oauth_key
|
13
|
+
@oauth_secert = oauth_secert
|
14
|
+
@refresh_token = refresh_token
|
15
|
+
@access_token = nil
|
16
|
+
@user_id = nil
|
17
|
+
token!
|
18
|
+
user_id!
|
19
|
+
end
|
20
|
+
|
21
|
+
def token!
|
22
|
+
response = JSON.parse(RestClient.post "#{@domain}/if/oauth/token" ,{:client_id => @oauth_key, :client_secret => @oauth_secert, :absytem => 'IFA', :grant_type => 'refresh_token', :refresh_token => @refresh_token }, :accept => :json)
|
23
|
+
raise "<no got refresh_token>\n#{response}" unless response.key?('refresh_token')
|
24
|
+
raise "<no got access_token>\n#{response}" unless response.key?('access_token')
|
25
|
+
@refresh_token = response['refresh_token']
|
26
|
+
@access_token = response['access_token']
|
27
|
+
end
|
28
|
+
|
29
|
+
def user_id!
|
30
|
+
response = JSON.parse(RestClient.get "#{@domain}/if/3/user/me" ,{:Authorization => "Bearer #{@access_token}"})
|
31
|
+
raise "<no got user_id>\n#{response}" unless response.key?('user') && response['user'].key?('user_id')
|
32
|
+
@user_id = response['user']['user_id']
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class Power
|
37
|
+
attr_accessor :device_ids, :start_time, :end_time
|
38
|
+
attr_reader :response
|
39
|
+
|
40
|
+
def initialize(client: nil, device_ids: [], start_time: nil, end_time: nil)
|
41
|
+
@access_token = client.access_token
|
42
|
+
@user_id = client.user_id
|
43
|
+
@domain = client.domain
|
44
|
+
@device_ids = device_ids
|
45
|
+
@dev_ids = ''
|
46
|
+
device_ids = Array(device_ids)
|
47
|
+
device_ids.each do |ele|
|
48
|
+
@dev_ids += ele
|
49
|
+
@dev_ids += ';'
|
50
|
+
end
|
51
|
+
@start_time = start_time
|
52
|
+
@end_time = end_time
|
53
|
+
@response = nil
|
54
|
+
response!
|
55
|
+
end
|
56
|
+
|
57
|
+
def response!
|
58
|
+
parameter = {:params => {:apsystem => "IFA", :email => @user_id, :attr => "dm1mi", :start_time => @start_time, :end_time => @end_time, :dev_ids => @dev_ids}, :Authorization => "Bearer #{@access_token}"}
|
59
|
+
@response = JSON.parse(RestClient.get "#{@domain}/if/3/device/history_ext", parameter)
|
60
|
+
raise "#{response['err']['code']}" unless response['err']['code'] == '0'
|
61
|
+
@response
|
62
|
+
end
|
63
|
+
end
|
5
64
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
65
|
+
class Widgets
|
66
|
+
attr_accessor :category, :client
|
67
|
+
attr_reader :response
|
68
|
+
|
69
|
+
def initialize(client: nil,category: nil)
|
70
|
+
@access_token = client.access_token
|
71
|
+
@user_id = client.user_id
|
72
|
+
@domain = client.domain
|
73
|
+
@category = category
|
74
|
+
@response = nil
|
75
|
+
response!
|
76
|
+
end
|
77
|
+
|
78
|
+
def response!
|
79
|
+
parameter = {:params => {:apsystem => "IFA", :email => @user_id, :type_code => 1, :dev_category => "#{@category}"}, :Authorization => "Bearer #{@access_token}"}
|
80
|
+
@response = JSON.parse(RestClient.get "#{@domain}/if/3/user/widgets", parameter)
|
81
|
+
raise "#{response['err']['code']}" unless response['err']['code'] == '0'
|
82
|
+
@response
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
class Control
|
87
|
+
attr_accessor :device_id, :action
|
88
|
+
attr_reader :response
|
89
|
+
def initialize(client: nil, device_id: nil, action: nil)
|
90
|
+
@access_token = client.access_token
|
91
|
+
@user_id = client.user_id
|
92
|
+
@domain = client.domain
|
93
|
+
@device_id = device_id
|
94
|
+
@action = action
|
95
|
+
@response = nil
|
96
|
+
response!
|
97
|
+
end
|
98
|
+
|
99
|
+
def response!
|
100
|
+
parameter = {:params => {:apsystem => "IFA", :email => @user_id, :dev_id => @device_id ,:action => @action}, :Authorization => "Bearer #{@access_token}"}
|
101
|
+
@response = JSON.parse(RestClient.get "#{@domain}/if/3/device/control" , parameter)
|
102
|
+
raise "#{response['err']['code']}" unless response['err']['code'] == '0'
|
103
|
+
@response
|
104
|
+
end
|
105
|
+
end
|
43
106
|
end
|
44
107
|
|
45
|
-
class
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
@
|
51
|
-
@
|
52
|
-
@
|
53
|
-
@
|
54
|
-
|
55
|
-
|
56
|
-
device_ids.each do |ele|
|
57
|
-
@dev_ids += ele
|
58
|
-
@dev_ids += ';'
|
108
|
+
class Widget
|
109
|
+
attr_reader :widget_alias, :widget_dev_id, :widget_dev_type_name, :widget_status
|
110
|
+
|
111
|
+
def initialize(opts = {})
|
112
|
+
@infos = Hash.new
|
113
|
+
@widget_dev_id = opts['dev_id']
|
114
|
+
@widget_dev_type_name = opts['dev_type_name']
|
115
|
+
@widget_alias = opts['alias']
|
116
|
+
@widget_status = opts['status']
|
117
|
+
opts['widget_infos'].each do |ele|
|
118
|
+
@infos[ele['info_name']] = ele['info_value']
|
59
119
|
end
|
60
|
-
@start_time = start_time
|
61
|
-
@end_time = end_time
|
62
|
-
@response = nil
|
63
|
-
response!
|
64
|
-
end
|
65
|
-
|
66
|
-
#def get_device
|
67
|
-
# Power.new(@response)
|
68
|
-
#end
|
69
|
-
|
70
|
-
def response!
|
71
|
-
parameter = {:params => {:apsystem => "IFA", :email => @user_id, :attr => "dm1mi", :start_time => @start_time, :end_time => @end_time, :dev_ids => @dev_ids}, :Authorization => "Bearer #{@access_token}"}
|
72
|
-
@response = JSON.parse(RestClient.get "#{@domain}/if/3/device/history_ext", parameter)
|
73
|
-
raise "#{response['err']['code']}" unless response['err']['code'] == '0'
|
74
|
-
@response
|
75
120
|
end
|
121
|
+
|
122
|
+
def widget_info_value
|
123
|
+
@widget_dev_type_name
|
124
|
+
end
|
125
|
+
|
126
|
+
def co_meter
|
127
|
+
@infos['400700']
|
128
|
+
end
|
129
|
+
|
130
|
+
def co2_meter
|
131
|
+
@infos['400600']
|
132
|
+
end
|
133
|
+
|
134
|
+
def sensor_th_ty
|
135
|
+
"#{@infos['400100']}|#{@infos['400200']}"
|
136
|
+
end
|
76
137
|
end
|
138
|
+
end
|
77
139
|
|
78
140
|
=begin
|
79
141
|
class Power
|
@@ -106,70 +168,4 @@ module Insnergy
|
|
106
168
|
@alias = opts['devices'][0]['alias']
|
107
169
|
end
|
108
170
|
end
|
109
|
-
=end
|
110
|
-
class Widgets
|
111
|
-
attr_accessor :category, :client
|
112
|
-
attr_reader :response
|
113
|
-
|
114
|
-
def initialize(client: nil,category: nil)
|
115
|
-
@access_token = client.access_token
|
116
|
-
@user_id = client.user_id
|
117
|
-
@domain = client.domain
|
118
|
-
@category = category
|
119
|
-
@response = nil
|
120
|
-
response!
|
121
|
-
end
|
122
|
-
|
123
|
-
#def get_device
|
124
|
-
# @widgets = Array.new
|
125
|
-
# get_response!['widgets'].each do |ele|
|
126
|
-
# @widgets << Sensor.new(ele)
|
127
|
-
# end
|
128
|
-
#end
|
129
|
-
|
130
|
-
#def each
|
131
|
-
# @widgets.each do |ele|
|
132
|
-
# yield ele
|
133
|
-
# end
|
134
|
-
#end
|
135
|
-
|
136
|
-
def response!
|
137
|
-
parameter = {:params => {:apsystem => "IFA", :email => @user_id, :type_code => 1, :dev_category => "#{@category}"}, :Authorization => "Bearer #{@access_token}"}
|
138
|
-
@response = JSON.parse(RestClient.get "#{@domain}/if/3/user/widgets", parameter)
|
139
|
-
raise "#{response['err']['code']}" unless response['err']['code'] == '0'
|
140
|
-
@response
|
141
|
-
end
|
142
|
-
end
|
143
|
-
=begin
|
144
|
-
class Sensor
|
145
|
-
attr_reader :widgets_alias, :dev_id, :dev_type_name, :status
|
146
|
-
|
147
|
-
def initialize(opts = {})
|
148
|
-
@infos = Hash.new
|
149
|
-
@widgets_alias = opts['alias']
|
150
|
-
@dev_id = opts['dev_id']
|
151
|
-
@dev_type_name = opts['dev_type_name']
|
152
|
-
@status = opts['status']
|
153
|
-
opts['widget_infos'].each do |ele|
|
154
|
-
@infos[ele['info_name']] = ele['info_value']
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
def widgets_info_value
|
159
|
-
@dev_type_name
|
160
|
-
end
|
161
|
-
|
162
|
-
def co_meter
|
163
|
-
@infos['400700']
|
164
|
-
end
|
165
|
-
|
166
|
-
def co2_meter
|
167
|
-
@infos['400600']
|
168
|
-
end
|
169
|
-
|
170
|
-
def sensor_th_ty
|
171
|
-
"#{@infos['400100']}|#{@infos['400200']}"
|
172
|
-
end
|
173
|
-
end
|
174
|
-
=end
|
175
|
-
end
|
171
|
+
=end
|
@@ -8,16 +8,16 @@ RSpec.configure do |config|
|
|
8
8
|
|
9
9
|
end
|
10
10
|
|
11
|
-
describe Insnergy do
|
11
|
+
describe Insnergy::Client do
|
12
12
|
before(:all) do #itri-tomato.project@insnergy.com
|
13
13
|
domain = 'https://if3.insnergy.com'
|
14
14
|
oauth_key = 'aac61d6e-b9df-4cf6-a44e-dbba0518b339'
|
15
15
|
oauth_secert = 'ffaa37d1-74eb-42db-a555-91aa59d4f540'
|
16
16
|
refresh_token = '43add8e7-621d-41e9-bd14-e8153d95b3ac'
|
17
|
-
@insnergy = Insnergy::Client.new(domain: domain, oauth_key: oauth_key, oauth_secert: oauth_secert, refresh_token: refresh_token)
|
17
|
+
@insnergy = Insnergy::Client::Token.new(domain: domain, oauth_key: oauth_key, oauth_secert: oauth_secert, refresh_token: refresh_token)
|
18
18
|
end
|
19
19
|
|
20
|
-
describe Insnergy::Client do
|
20
|
+
describe Insnergy::Client::Token do
|
21
21
|
before(:all) do
|
22
22
|
@access_token = @insnergy.access_token
|
23
23
|
@user_id = @insnergy.user_id
|
@@ -60,9 +60,9 @@ describe Insnergy do
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
describe Insnergy::Widgets do
|
63
|
+
describe Insnergy::Client::Widgets do
|
64
64
|
before(:all) do
|
65
|
-
@widgets = Insnergy::Widgets.new(client: @insnergy, category: 'sensor')
|
65
|
+
@widgets = Insnergy::Client::Widgets.new(client: @insnergy, category: 'sensor')
|
66
66
|
end
|
67
67
|
|
68
68
|
describe "#initialize" do
|
@@ -102,7 +102,7 @@ describe Insnergy do
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
-
describe Insnergy::Power do
|
105
|
+
describe Insnergy::Client::Power do
|
106
106
|
|
107
107
|
def this_month_day1
|
108
108
|
Time.new(Time.now.year, Time.now.month, 1).to_i*1000
|
@@ -114,7 +114,7 @@ describe Insnergy do
|
|
114
114
|
|
115
115
|
before(:all) do
|
116
116
|
device_ids = ['RS06000D6F0003BB8B88','II09000D6F0003BBAE83']
|
117
|
-
@power = Insnergy::Power.new(client: @insnergy, device_ids: device_ids, start_time: this_month_day1, end_time: next_month_day1)
|
117
|
+
@power = Insnergy::Client::Power.new(client: @insnergy, device_ids: device_ids, start_time: this_month_day1, end_time: next_month_day1)
|
118
118
|
end
|
119
119
|
|
120
120
|
describe "#initialize" do
|
@@ -126,4 +126,26 @@ describe Insnergy do
|
|
126
126
|
end
|
127
127
|
end
|
128
128
|
end
|
129
|
+
|
130
|
+
describe Insnergy::Client::Control do
|
131
|
+
before(:all) do
|
132
|
+
@device_id = 'II09000D6F0003BBAE83'
|
133
|
+
@control = Insnergy::Client::Control.new(client: @insnergy, device_id: @device_id, action: 'on')
|
134
|
+
end
|
135
|
+
|
136
|
+
describe "#initialize" do
|
137
|
+
context "when initialize a new object" do
|
138
|
+
it "must exist response" do
|
139
|
+
@control_response = @control.response
|
140
|
+
expect(@control_response).not_to eq(nil)
|
141
|
+
end
|
142
|
+
|
143
|
+
it "response'structre must exist relay_status and br on" do
|
144
|
+
@control_response = @control.response
|
145
|
+
expect(@control_response['relay_status']).to eq('on')
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
end
|
129
151
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: insnergy-api-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaogaau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|