insnergy-api-ruby-client 0.10.0 → 0.11.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: 328a474003cee9ef80e2ff401edcfa893459ec2d
4
- data.tar.gz: 4554709f3a064f3b1c03ef26eb3e54fb87b2a993
3
+ metadata.gz: 5a35a351cc4e1c56fa2859ae98c5689a92d95a61
4
+ data.tar.gz: 3a459fd0f9c7c743adc368440002a8facc3a555c
5
5
  SHA512:
6
- metadata.gz: 9d50d45a95404e920ef3f24a721d5370e90cb110949af9aa10f3fb2a51a0bde549cd8a6b427d8749eac62045b363efc5aae6bce2ecf2a2b6953aa24a94fd604c
7
- data.tar.gz: f0f5a564e56c615b0941d936cf9f821ca06e0156fd5235a53b79fa8abd8fe4b93f6858ac4a69b02ee9e5ab128bb8ad2b2fa0e162a379f2d6fae765ae27477ed0
6
+ metadata.gz: 95ea86908078ae67f638586e7b65cbbacd49b677db0cf10a56003c4b6b28b894abf4251fde3990a0d669aeba76601533468e12565083df01ab5c5671d37ece21
7
+ data.tar.gz: a8a585ad1bdb52d9a24a794df10a44a4deda087ad1118f4c569abcfd489d9ee2e242ed357a6e6489ea8109a72fe7af0cea625f63d4b51b9c31509fbeefe914f9
data/.DS_Store ADDED
Binary file
data/Gemfile CHANGED
@@ -16,4 +16,5 @@ group :development do
16
16
  gem "simplecov", ">= 0"
17
17
  gem 'rest-client'
18
18
  gem 'json', '~> 1.8.1'
19
+ gem 'rspec'
19
20
  end
data/Gemfile.lock CHANGED
@@ -11,6 +11,7 @@ GEM
11
11
  concurrent-ruby (1.0.2)
12
12
  descendants_tracker (0.0.4)
13
13
  thread_safe (~> 0.3, >= 0.3.1)
14
+ diff-lcs (1.2.5)
14
15
  docile (1.1.5)
15
16
  domain_name (0.5.20160310)
16
17
  unf (>= 0.0.5, < 1.0.0)
@@ -65,6 +66,19 @@ GEM
65
66
  http-cookie (>= 1.0.2, < 2.0)
66
67
  mime-types (>= 1.16, < 3.0)
67
68
  netrc (~> 0.7)
69
+ rspec (3.5.0)
70
+ rspec-core (~> 3.5.0)
71
+ rspec-expectations (~> 3.5.0)
72
+ rspec-mocks (~> 3.5.0)
73
+ rspec-core (3.5.2)
74
+ rspec-support (~> 3.5.0)
75
+ rspec-expectations (3.5.0)
76
+ diff-lcs (>= 1.2.0, < 2.0)
77
+ rspec-support (~> 3.5.0)
78
+ rspec-mocks (3.5.0)
79
+ diff-lcs (>= 1.2.0, < 2.0)
80
+ rspec-support (~> 3.5.0)
81
+ rspec-support (3.5.0)
68
82
  semver (1.0.1)
69
83
  shoulda (3.5.0)
70
84
  shoulda-context (~> 1.0, >= 1.0.1)
@@ -93,6 +107,7 @@ DEPENDENCIES
93
107
  juwelier (~> 2.1.0)
94
108
  rdoc (~> 3.12)
95
109
  rest-client
110
+ rspec
96
111
  shoulda
97
112
  simplecov
98
113
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.0
1
+ 0.11.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.10.0 ruby lib
5
+ # stub: insnergy-api-ruby-client 0.11.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "insnergy-api-ruby-client"
9
- s.version = "0.10.0"
9
+ s.version = "0.11.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-09-30"
14
+ s.date = "2016-10-04"
15
15
  s.description = "The ruby gem about In-Snergy Family"
16
16
  s.email = "kaogaau@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  "README.rdoc"
20
20
  ]
21
21
  s.files = [
22
+ ".DS_Store",
22
23
  ".document",
23
24
  "Gemfile",
24
25
  "Gemfile.lock",
@@ -27,7 +28,8 @@ Gem::Specification.new do |s|
27
28
  "Rakefile",
28
29
  "VERSION",
29
30
  "insnergy-api-ruby-client.gemspec",
30
- "lib/insnergy-api-ruby-client.rb"
31
+ "lib/insnergy-api-ruby-client.rb",
32
+ "spec/insnergy-api-ruby-client_spec.rb"
31
33
  ]
32
34
  s.homepage = "http://github.com/kaogaau/insnergy-api-ruby-client"
33
35
  s.licenses = ["MIT"]
@@ -47,6 +49,7 @@ Gem::Specification.new do |s|
47
49
  s.add_development_dependency(%q<simplecov>, [">= 0"])
48
50
  s.add_development_dependency(%q<rest-client>, [">= 0"])
49
51
  s.add_development_dependency(%q<json>, ["~> 1.8.1"])
52
+ s.add_development_dependency(%q<rspec>, [">= 0"])
50
53
  else
51
54
  s.add_dependency(%q<rest-client>, [">= 0"])
52
55
  s.add_dependency(%q<json>, ["~> 1.8.1"])
@@ -57,6 +60,7 @@ Gem::Specification.new do |s|
57
60
  s.add_dependency(%q<simplecov>, [">= 0"])
58
61
  s.add_dependency(%q<rest-client>, [">= 0"])
59
62
  s.add_dependency(%q<json>, ["~> 1.8.1"])
63
+ s.add_dependency(%q<rspec>, [">= 0"])
60
64
  end
61
65
  else
62
66
  s.add_dependency(%q<rest-client>, [">= 0"])
@@ -68,6 +72,7 @@ Gem::Specification.new do |s|
68
72
  s.add_dependency(%q<simplecov>, [">= 0"])
69
73
  s.add_dependency(%q<rest-client>, [">= 0"])
70
74
  s.add_dependency(%q<json>, ["~> 1.8.1"])
75
+ s.add_dependency(%q<rspec>, [">= 0"])
71
76
  end
72
77
  end
73
78
 
@@ -1,3 +1,6 @@
1
+ require 'json'
2
+ require 'rest-client'
3
+
1
4
  module Insnergy
2
5
 
3
6
  class Client
@@ -9,58 +12,70 @@ module Insnergy
9
12
  @oauth_key = oauth_key
10
13
  @oauth_secert = oauth_secert
11
14
  @refresh_token = refresh_token
12
- @user_id = nil
13
- refresh!
15
+ @access_token = nil
16
+ @user_id = nil
17
+ token!
14
18
  user_id!
15
19
  end
16
20
 
17
- def refresh!
21
+ def token!
18
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)
19
- raise "<refresh_token is nil>\n#{response}" unless response['refresh_token'] != nil
20
- raise "<access_token is nil>\n#{response}" unless response['access_token'] != nil
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')
21
25
  @refresh_token = response['refresh_token']
22
26
  @access_token = response['access_token']
23
27
  end
24
28
 
25
29
  def user_id!
26
30
  response = JSON.parse(RestClient.get "#{@domain}/if/3/user/me" ,{:Authorization => "Bearer #{@access_token}"})
27
- raise "<user_id is nil>\n#{response}" unless response['user']['user_id'] != nil
31
+ raise "<no got user_id>\n#{response}" unless response.key?('user') && response['user'].key?('user_id')
28
32
  @user_id = response['user']['user_id']
29
33
  end
30
34
 
31
- def sensor
32
- Client::Sensor.new(client: self, category: 'sensor')
33
- end
35
+ #def sensor
36
+ # Client::Sensor.new(client: self, category: 'sensor')
37
+ #end
34
38
 
35
- def power(device_id: nil, start_time: nil, end_time: nil)
36
- client = Client::Power.new(client: self, device_id: device_id, start_time: start_time, end_time: end_time)
37
- #client.get_device
38
- end
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
39
43
  end
40
44
 
41
- class Client::Power
42
- attr_reader :access_token, :user_id, :device_type_pointer, :response, :parameter
45
+ class Power
46
+ attr_accessor :device_ids, :start_time, :end_time
47
+ attr_reader :response
43
48
 
44
- def initialize(client: nil, device_id: nil, start_time: nil, end_time: nil)
49
+ def initialize(client: nil, device_ids: [], start_time: nil, end_time: nil)
45
50
  @access_token = client.access_token
46
51
  @user_id = client.user_id
47
52
  @domain = client.domain
48
- @device_id = device_id
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 += ';'
59
+ end
49
60
  @start_time = start_time
50
61
  @end_time = end_time
51
- end
52
-
53
- def get_device
54
- Power.new(@response)
55
- end
56
-
57
- def get_response
58
- @parameter = {:params => {:apsystem => "IFA", :email => @user_id, :attr => "dm1mi", :start_time => @start_time, :end_time => @end_time, :dev_ids => @device_id}, :Authorization => "Bearer #{@access_token}"}
59
- @response = JSON.parse(RestClient.get "#{@domain}/if/3/device/history_ext", @parameter)
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'
60
74
  @response
61
75
  end
62
76
  end
63
77
 
78
+ =begin
64
79
  class Power
65
80
  attr_reader :device_type_pointer, :type, :month_total_power_value, :alias
66
81
 
@@ -91,39 +106,41 @@ module Insnergy
91
106
  @alias = opts['devices'][0]['alias']
92
107
  end
93
108
  end
94
-
95
- class Client::Sensor
96
- attr_reader :access_token, :user_id, :widgets
109
+ =end
110
+ class Widgets
111
+ attr_accessor :category, :client
112
+ attr_reader :response
97
113
 
98
114
  def initialize(client: nil,category: nil)
99
115
  @access_token = client.access_token
100
116
  @user_id = client.user_id
101
117
  @domain = client.domain
102
118
  @category = category
103
- get_device
119
+ @response = nil
120
+ response!
104
121
  end
105
122
 
106
- def get_device
107
- @widgets = Array.new
108
- get_response['widgets'].each do |ele|
109
- @widgets << Sensor.new(ele)
110
- end
111
- end
123
+ #def get_device
124
+ # @widgets = Array.new
125
+ # get_response!['widgets'].each do |ele|
126
+ # @widgets << Sensor.new(ele)
127
+ # end
128
+ #end
112
129
 
113
- def each
114
- @widgets.each do |ele|
115
- yield ele
116
- end
117
- end
130
+ #def each
131
+ # @widgets.each do |ele|
132
+ # yield ele
133
+ # end
134
+ #end
118
135
 
119
- def get_response
136
+ def response!
120
137
  parameter = {:params => {:apsystem => "IFA", :email => @user_id, :type_code => 1, :dev_category => "#{@category}"}, :Authorization => "Bearer #{@access_token}"}
121
- response = JSON.parse(RestClient.get "#{@domain}/if/3/user/widgets", parameter)
122
- raise "err code is not zero\n#{response}" unless response['err']['code'] == '0'
123
- response
138
+ @response = JSON.parse(RestClient.get "#{@domain}/if/3/user/widgets", parameter)
139
+ raise "#{response['err']['code']}" unless response['err']['code'] == '0'
140
+ @response
124
141
  end
125
142
  end
126
-
143
+ =begin
127
144
  class Sensor
128
145
  attr_reader :widgets_alias, :dev_id, :dev_type_name, :status
129
146
 
@@ -154,5 +171,5 @@ module Insnergy
154
171
  "#{@infos['400100']}|#{@infos['400200']}"
155
172
  end
156
173
  end
157
-
174
+ =end
158
175
  end
@@ -0,0 +1,129 @@
1
+ require './lib/insnergy-api-ruby-client'
2
+
3
+ RSpec.configure do |config|
4
+ # Use color in STDOUT
5
+ config.color = true
6
+
7
+ # other config options here...
8
+
9
+ end
10
+
11
+ describe Insnergy do
12
+ before(:all) do #itri-tomato.project@insnergy.com
13
+ domain = 'https://if3.insnergy.com'
14
+ oauth_key = 'aac61d6e-b9df-4cf6-a44e-dbba0518b339'
15
+ oauth_secert = 'ffaa37d1-74eb-42db-a555-91aa59d4f540'
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)
18
+ end
19
+
20
+ describe Insnergy::Client do
21
+ before(:all) do
22
+ @access_token = @insnergy.access_token
23
+ @user_id = @insnergy.user_id
24
+ end
25
+
26
+ describe "#initialize" do
27
+ context "when initialize a new object" do
28
+ it "must exist access_token" do
29
+ expect(@access_token).not_to eq(nil)
30
+ end
31
+
32
+ it "must exist user_id" do
33
+ expect(@user_id).not_to eq(nil)
34
+ end
35
+ end
36
+ end
37
+
38
+ describe "#token!" do
39
+ context "when excute token!" do
40
+ before do
41
+ @insnergy.token!
42
+ end
43
+
44
+ it "must get different access_token" do
45
+ expect(@insnergy.access_token).not_to eq(@access_token)
46
+ end
47
+ end
48
+ end
49
+
50
+ describe "#user_id!" do
51
+ context "when excute user_id!" do
52
+ before do
53
+ @insnergy.user_id!
54
+ end
55
+
56
+ it "must get same user_id" do
57
+ expect(@insnergy.user_id).to eq(@user_id)
58
+ end
59
+ end
60
+ end
61
+ end
62
+
63
+ describe Insnergy::Widgets do
64
+ before(:all) do
65
+ @widgets = Insnergy::Widgets.new(client: @insnergy, category: 'sensor')
66
+ end
67
+
68
+ describe "#initialize" do
69
+ context "when initialize a new object" do
70
+ it "must exist response" do
71
+ @sensor_response = @widgets.response
72
+ expect(@sensor_response).not_to eq(nil)
73
+ #puts @sensor_response
74
+ end
75
+ end
76
+
77
+ context "when change object's category" do
78
+ before(:all) do
79
+ @widgets.category = 'outlet'
80
+ @widgets.response!
81
+ @outlet_response = @widgets.response
82
+ @widgets.category = 'gateway'
83
+ @widgets.response!
84
+ @gateway_response = @widgets.response
85
+ end
86
+
87
+ it "must exist response" do
88
+ expect(@outlet_response).not_to eq(nil)
89
+ #puts @outlet_response
90
+ end
91
+
92
+ it "must exist response" do
93
+ expect(@gateway_response).not_to eq(nil)
94
+ #puts @gateway_response
95
+ end
96
+
97
+ it "it's response must different" do
98
+ expect(@outlet_response).not_to eq(@sensor_response)
99
+ expect(@gateway_response).not_to eq(@sensor_response)
100
+ end
101
+ end
102
+ end
103
+ end
104
+
105
+ describe Insnergy::Power do
106
+
107
+ def this_month_day1
108
+ Time.new(Time.now.year, Time.now.month, 1).to_i*1000
109
+ end
110
+
111
+ def next_month_day1
112
+ Time.new(Time.now.year, Time.now.month + 1, 1).to_i*1000
113
+ end
114
+
115
+ before(:all) do
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)
118
+ end
119
+
120
+ describe "#initialize" do
121
+ context "when initialize a new object" do
122
+ it "must exist response" do
123
+ expect(@power.response).not_to eq(nil)
124
+ #puts @client_power.response
125
+ end
126
+ end
127
+ end
128
+ end
129
+ 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.10.0
4
+ version: 0.11.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-09-30 00:00:00.000000000 Z
11
+ date: 2016-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.8.1
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  description: The ruby gem about In-Snergy Family
140
154
  email: kaogaau@gmail.com
141
155
  executables: []
@@ -144,6 +158,7 @@ extra_rdoc_files:
144
158
  - LICENSE.txt
145
159
  - README.rdoc
146
160
  files:
161
+ - ".DS_Store"
147
162
  - ".document"
148
163
  - Gemfile
149
164
  - Gemfile.lock
@@ -153,6 +168,7 @@ files:
153
168
  - VERSION
154
169
  - insnergy-api-ruby-client.gemspec
155
170
  - lib/insnergy-api-ruby-client.rb
171
+ - spec/insnergy-api-ruby-client_spec.rb
156
172
  homepage: http://github.com/kaogaau/insnergy-api-ruby-client
157
173
  licenses:
158
174
  - MIT