insnergy-api-ruby-client 0.10.0 → 0.11.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: 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