insnergy-api-ruby-client 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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