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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5a35a351cc4e1c56fa2859ae98c5689a92d95a61
4
- data.tar.gz: 3a459fd0f9c7c743adc368440002a8facc3a555c
3
+ metadata.gz: 8728279bc391df17e4a5727f35bcdedb4055494a
4
+ data.tar.gz: 45f413e3b1886d7044e0708daf222325926ce8d4
5
5
  SHA512:
6
- metadata.gz: 95ea86908078ae67f638586e7b65cbbacd49b677db0cf10a56003c4b6b28b894abf4251fde3990a0d669aeba76601533468e12565083df01ab5c5671d37ece21
7
- data.tar.gz: a8a585ad1bdb52d9a24a794df10a44a4deda087ad1118f4c569abcfd489d9ee2e242ed357a6e6489ea8109a72fe7af0cea625f63d4b51b9c31509fbeefe914f9
6
+ metadata.gz: 4c684e0a06d9ceb673a9b505e8c0e224f39173b69cbb49f27c209dc0af211eecd5098cef16a114def233af8d82433e92d67c17163de71a72052efc41c17c0727
7
+ data.tar.gz: 41d6431347024d67fdb965adfd9e095625738cc0265df56a4b3b89137376a86a22fd883f374d27a95925c9a671ac1160503d68a03bc4de261680149e0d6e809a
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.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.11.0 ruby lib
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.11.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-04"
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
- class Client
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
-
35
- #def sensor
36
- # Client::Sensor.new(client: self, category: 'sensor')
37
- #end
38
-
39
- #def power(device_id: nil, start_time: nil, end_time: nil)
40
- # client = Client::Power.new(client: self, device_id: device_id, start_time: start_time, end_time: end_time)
41
- # client.get_device
42
- #end
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 Power
46
- attr_accessor :device_ids, :start_time, :end_time
47
- attr_reader :response
48
-
49
- def initialize(client: nil, device_ids: [], start_time: nil, end_time: nil)
50
- @access_token = client.access_token
51
- @user_id = client.user_id
52
- @domain = client.domain
53
- @device_ids = device_ids
54
- @dev_ids = ''
55
- device_ids = Array(device_ids)
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.11.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-04 00:00:00.000000000 Z
11
+ date: 2016-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client