zuora_connect 0.0.8.7 → 0.0.8.8
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/app/models/zuora_connect/app_instance.rb +22 -8
- data/db/migrate/20161024162319_add_tokens_to_app_instance.rb +6 -0
- data/lib/zuora_connect.rb +2 -0
- data/lib/zuora_connect/configuration.rb +3 -1
- data/lib/zuora_connect/controllers/helpers.rb +71 -61
- data/lib/zuora_connect/exceptions.rb +48 -0
- data/lib/zuora_connect/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb571a97d8681a301ca314a1d95f3549ccad57ba
|
4
|
+
data.tar.gz: 7d2fe3929a59033b06e2fbc6e31b0cc192160eca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbbea8478bfe96f32c74774b472abf0f558ea3eacd1653ba39307f7f0b6371598fdf6a2b22466c242ad1d9301f2651fb62e836b419346f26160a6036098e64e9
|
7
|
+
data.tar.gz: b7180a6de4307a4dd42b167e0703da65fe60e444be0bb260216485515d77b1216d58025fbc22c95a420f698cd32ebdce0e01d4b5de299daf5e9b32bbbf94fc5f
|
@@ -1,18 +1,32 @@
|
|
1
1
|
module ZuoraConnect
|
2
2
|
class AppInstance < ActiveRecord::Base
|
3
3
|
after_initialize :init
|
4
|
-
attr_accessor :
|
4
|
+
attr_accessor :options, :mode, :logins, :valid, :task_data, :last_refresh, :username, :password
|
5
5
|
|
6
6
|
def init
|
7
7
|
@options = Hash.new
|
8
8
|
@logins = Hash.new
|
9
|
+
@valid = false
|
9
10
|
Apartment::Migrator.migrate(self.id)
|
10
11
|
Apartment::Tenant.switch!(self.id)
|
12
|
+
|
13
|
+
## DEV MODE TASK DATA MOCKUP
|
14
|
+
if ZuoraConnect.configuration.mode != "Production"
|
15
|
+
self.options = ZuoraConnect.configuration.dev_mode_options
|
16
|
+
ZuoraConnect.configuration.dev_mode_logins.each do |k,v|
|
17
|
+
tmp = ZuoraConnect::Login.new(v)
|
18
|
+
self.logins[k] = tmp
|
19
|
+
self.attr_builder(k, tmp)
|
20
|
+
end
|
21
|
+
self.mode = ZuoraConnect.configuration.dev_mode_mode
|
22
|
+
end
|
23
|
+
###
|
11
24
|
end
|
12
25
|
|
13
|
-
def new_session(
|
14
|
-
@
|
15
|
-
@
|
26
|
+
def new_session(session: {}, username: self.access_token, password: self.refresh_token)
|
27
|
+
@username = username
|
28
|
+
@password = password
|
29
|
+
@last_refresh = session["#{self.id}::last_refresh"]
|
16
30
|
if session.nil? || (!session.nil? && self.id != session["appInstance"].to_i) || session["#{self.id}::task_data"].blank? || ( session["#{self.id}::last_refresh"].blank? || session["#{self.id}::last_refresh"].to_i < ZuoraConnect.configuration.timeout.ago.to_i )
|
17
31
|
Rails.logger.debug("REFRESHING - Session Nil") if session.nil?
|
18
32
|
Rails.logger.debug("REFRESHING - AppInstance ID does not match session id") if (!session.nil? && self.id != session["appInstance"].to_i)
|
@@ -40,20 +54,20 @@ module ZuoraConnect
|
|
40
54
|
end
|
41
55
|
|
42
56
|
def updateOption(optionId, value)
|
43
|
-
if
|
44
|
-
return HTTParty.get(ZuoraConnect.configuration.url + "/api/v1/tools/application_options/#{optionId}/edit?value=#{value}",:basic_auth => auth = {:username =>
|
57
|
+
if self.access_token && self.refresh_token
|
58
|
+
return HTTParty.get(ZuoraConnect.configuration.url + "/api/v1/tools/application_options/#{optionId}/edit?value=#{value}",:basic_auth => auth = {:username => self.username, :password => self.password})
|
45
59
|
else
|
46
60
|
return false
|
47
61
|
end
|
48
62
|
end
|
49
63
|
|
50
64
|
def refresh(session = nil)
|
51
|
-
response = HTTParty.get(ZuoraConnect.configuration.url + "/api/v1/tools/tasks/#{self.id}.json",:basic_auth => auth = {:username => self.
|
65
|
+
response = HTTParty.get(ZuoraConnect.configuration.url + "/api/v1/tools/tasks/#{self.id}.json",:basic_auth => auth = {:username => self.username, :password => self.password})
|
52
66
|
if response.code == 200
|
53
67
|
@last_refresh = Time.now.to_i
|
54
68
|
build_task(JSON.parse(response.body), session)
|
55
69
|
else
|
56
|
-
raise "
|
70
|
+
raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("Error Communicating with Connect", response.body, response.code)
|
57
71
|
end
|
58
72
|
end
|
59
73
|
|
data/lib/zuora_connect.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'zuora_connect/configuration'
|
2
2
|
require "zuora_connect/engine"
|
3
|
+
require 'zuora_connect/exceptions'
|
3
4
|
require 'zuora_connect/controllers/helpers'
|
4
5
|
require 'zuora_connect/views/helpers'
|
6
|
+
|
5
7
|
module ZuoraConnect
|
6
8
|
class << self
|
7
9
|
attr_accessor :configuration
|
@@ -10,10 +10,12 @@ module ZuoraConnect
|
|
10
10
|
@invalid_app_instance_error_path = '/connect/invalid_instance'
|
11
11
|
@url = "https://connect.zuora.com/"
|
12
12
|
@mode = "Production"
|
13
|
+
@private_key = "-----BEGIN RSA PRIVATE KEY-----\nMIIEpgIBAAKCAQEA3PlAZWUbyvBSVU9GZxQM+brbwDfecsrFXJIbEvV76LVfFuTO\nDbyMPyuM0SBEAskb79wqNsn5JD0edCwmvZ+/Kn83b8SFkFW3f1tUxA0zFdVuqKP2\nJk1vms97yvOUveDjv22gYVMJYcSAFEzg9D9fUvTRocuBWQdbTq1cyJL+LYs9bUpl\nMB4oIUZuQ5nYz66y2gLlF0yUFNAfLpaCyaJvAmN93bPWTPfaKf+PMtkWCMQJQ3w+\nGvsudynLyE0ZgLx5mfM18h08iTMl61sUawyUEYNPm71Q6er9TB7oiOt3RT7ncw9P\nN+jzdklEphPp+1RaK35joPLQZjZl3Nh/XZg5eQIDAQABAoIBAQCJB+SgPDgk/C0C\njDurdmqpfvABXmQLKaWER3KUqjjh0X+bUd5Z9F/AWMBley3R0GcLsqtW+J8QkvpM\nroiDtQm2T9fP7r2pCQ7W4otJXKoeUxHhcHQXwpOAHES3UaAes9RoBJKdaAH8Z//J\nFve1X4s8hWdufyXCUOaVfrp4A3euQ3BYkb1n6yCnaEclG/evX6VM5jYMuHSDH0AS\nRUAMotuNvoLEIweNjWIolrKBEe+ZA6Rz6UaSoOxoNl8qWWOMsQvKzWfzHOA/YMnn\n9TN3AR10XYhWVjzNWL2dN1Jh4aD3d0byzImuhnCdIsIkTmS5aogl3/iFDce+9+kF\nLnkH5PuRAoGBAPiXQZdXHu7HwuQvZdb+2kII4kVLyLRM6v81rmXZr7pBUWrdpezy\nnFDj8OumSml4cKOLDUTAj/2/Hjs1o3JVGZqD0EbVrfIF0LZ3LzHb0rAae0uoyG7S\ny+2Y8wjLP53RogdZMA+6uoozEPM7yAp04d+rVPQY8i6JwGQmRYh7xSSlAoGBAOOP\nRssUBabZX13gQQ3BsO28g4HTEiFuqgAvGG/44Xbf74IRQiOT6ZaNYELvgaZT+RW2\nbp5E+T15Qe+SHHdxJhv3wtsnAw7yno1BmHpkAs1mEjjGFbNMF84YcRWSRU09g9Pm\nORhAc4lCFxHh7LnGsI1bgcPOYuFDRSHjYEy6y6VFAoGBAOiE8kEQqEpIZy7wdp1m\nu9fQX3TZsd2TpKsaFwoFV60rs2/16mF7fGLdElgYrrmAgjs2sS6Bvy1lOm2/eiZT\nGyO/72ySKaWbcuF5EZfdOXCnFHRsZy3h1gVjbs/m7JY9owSkk6Pi0OC7aztXy4Cc\nWznPFCNNwhltl5sVgSxsOLZRAoGBAJcPOI581xegevdFc8nfB0V5+86FwCZjYQTI\nPq+uBnW0SDkOndoiSVEAvqMQfP9eBR7NwPbdkJqnUQbo9m6vtP2h5j820YfttSTO\nI5szosyY8oWvsR4Z6D+O6BrKw6h3qnhS/xnDRy8ZqVjcohnc9LyRvz2tVuR0lILf\nfsDQy3kFAoGBAOm3N39RR7BwOMWIbe0Pk/ohJJdKwzsd1t1WyuXjAHJGdhMXkjl5\n9T1UsrouUr6qr545FNwEXktjmJ0IuqwypBC7B9kezKJlNTsZxmtcl7HfIFFOade7\nvrPHAAHPHSvCRcUPcFG1PDnFno66dXFOZwMo7W2lN+xTXuO0EvBAlW9P\n-----END RSA PRIVATE KEY-----\n"
|
14
|
+
|
15
|
+
# DEV MODE OPTIONS
|
13
16
|
@dev_mode_logins = { "target_login" => {"tenant_type" => "Zuora", "username" => "user", "password" => "pass", "url" => "url"} }
|
14
17
|
@dev_mode_options = {"name" => {"config_name" => "name", "datatype" => "type", "value" => "value"}}
|
15
18
|
@dev_mode_mode = "Universal"
|
16
|
-
@private_key = "-----BEGIN RSA PRIVATE KEY-----\nMIIEpgIBAAKCAQEA3PlAZWUbyvBSVU9GZxQM+brbwDfecsrFXJIbEvV76LVfFuTO\nDbyMPyuM0SBEAskb79wqNsn5JD0edCwmvZ+/Kn83b8SFkFW3f1tUxA0zFdVuqKP2\nJk1vms97yvOUveDjv22gYVMJYcSAFEzg9D9fUvTRocuBWQdbTq1cyJL+LYs9bUpl\nMB4oIUZuQ5nYz66y2gLlF0yUFNAfLpaCyaJvAmN93bPWTPfaKf+PMtkWCMQJQ3w+\nGvsudynLyE0ZgLx5mfM18h08iTMl61sUawyUEYNPm71Q6er9TB7oiOt3RT7ncw9P\nN+jzdklEphPp+1RaK35joPLQZjZl3Nh/XZg5eQIDAQABAoIBAQCJB+SgPDgk/C0C\njDurdmqpfvABXmQLKaWER3KUqjjh0X+bUd5Z9F/AWMBley3R0GcLsqtW+J8QkvpM\nroiDtQm2T9fP7r2pCQ7W4otJXKoeUxHhcHQXwpOAHES3UaAes9RoBJKdaAH8Z//J\nFve1X4s8hWdufyXCUOaVfrp4A3euQ3BYkb1n6yCnaEclG/evX6VM5jYMuHSDH0AS\nRUAMotuNvoLEIweNjWIolrKBEe+ZA6Rz6UaSoOxoNl8qWWOMsQvKzWfzHOA/YMnn\n9TN3AR10XYhWVjzNWL2dN1Jh4aD3d0byzImuhnCdIsIkTmS5aogl3/iFDce+9+kF\nLnkH5PuRAoGBAPiXQZdXHu7HwuQvZdb+2kII4kVLyLRM6v81rmXZr7pBUWrdpezy\nnFDj8OumSml4cKOLDUTAj/2/Hjs1o3JVGZqD0EbVrfIF0LZ3LzHb0rAae0uoyG7S\ny+2Y8wjLP53RogdZMA+6uoozEPM7yAp04d+rVPQY8i6JwGQmRYh7xSSlAoGBAOOP\nRssUBabZX13gQQ3BsO28g4HTEiFuqgAvGG/44Xbf74IRQiOT6ZaNYELvgaZT+RW2\nbp5E+T15Qe+SHHdxJhv3wtsnAw7yno1BmHpkAs1mEjjGFbNMF84YcRWSRU09g9Pm\nORhAc4lCFxHh7LnGsI1bgcPOYuFDRSHjYEy6y6VFAoGBAOiE8kEQqEpIZy7wdp1m\nu9fQX3TZsd2TpKsaFwoFV60rs2/16mF7fGLdElgYrrmAgjs2sS6Bvy1lOm2/eiZT\nGyO/72ySKaWbcuF5EZfdOXCnFHRsZy3h1gVjbs/m7JY9owSkk6Pi0OC7aztXy4Cc\nWznPFCNNwhltl5sVgSxsOLZRAoGBAJcPOI581xegevdFc8nfB0V5+86FwCZjYQTI\nPq+uBnW0SDkOndoiSVEAvqMQfP9eBR7NwPbdkJqnUQbo9m6vtP2h5j820YfttSTO\nI5szosyY8oWvsR4Z6D+O6BrKw6h3qnhS/xnDRy8ZqVjcohnc9LyRvz2tVuR0lILf\nfsDQy3kFAoGBAOm3N39RR7BwOMWIbe0Pk/ohJJdKwzsd1t1WyuXjAHJGdhMXkjl5\n9T1UsrouUr6qr545FNwEXktjmJ0IuqwypBC7B9kezKJlNTsZxmtcl7HfIFFOade7\nvrPHAAHPHSvCRcUPcFG1PDnFno66dXFOZwMo7W2lN+xTXuO0EvBAlW9P\n-----END RSA PRIVATE KEY-----\n"
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
@@ -4,90 +4,100 @@ module ZuoraConnect
|
|
4
4
|
module Helpers
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
|
+
def instance_data_lookup(id = nil, user = nil)
|
8
|
+
return session.blank? ? {} : session
|
9
|
+
end
|
10
|
+
|
11
|
+
def authenticate_app_api_request
|
12
|
+
authenticate_or_request_with_http_basic do |username, password|
|
13
|
+
@appinstance = ZuoraConnect::AppInstance.find(params[:instance_id])
|
14
|
+
@appinstance.new_session(:session => {}, :username => username, :password => password)
|
15
|
+
return @appinstance.valid
|
16
|
+
end
|
17
|
+
end
|
7
18
|
|
8
19
|
def authenticate_connect_app_request
|
9
20
|
if ZuoraConnect.configuration.mode == "Production"
|
10
|
-
|
11
|
-
|
12
|
-
if ZuoraConnect::AppInstance.where(:id => instance_id).size == 0
|
13
|
-
Apartment::Tenant.switch!("public")
|
14
|
-
Apartment::Tenant.create(instance_id)
|
15
|
-
ZuoraConnect::AppInstance.create!(:id => instance_id )
|
16
|
-
end
|
17
|
-
@appinstance = ZuoraConnect::AppInstance.find(instance_id)
|
18
|
-
begin
|
19
|
-
@appinstance.new_session(session["#{instance_id}::user"], session["#{instance_id}::key"], session)
|
20
|
-
I18n.locale = session["#{instance_id}::user::locale"] ? session["#{instance_id}::user::locale"] : ZuoraConnect.configuration.default_locale
|
21
|
-
Time.zone = session["#{instance_id}::user::timezone"] ? session["#{instance_id}::user::timezone"] : ZuoraConnect.configuration.default_time_zone
|
22
|
-
rescue
|
23
|
-
redirect_to ZuoraConnect.configuration.session_error_path
|
24
|
-
end
|
21
|
+
if request["data"]
|
22
|
+
setup_instance_via_data
|
25
23
|
else
|
26
|
-
|
24
|
+
setup_instance_via_session
|
27
25
|
end
|
26
|
+
@appinstance.new_session(:session =>instance_data_lookup(@appinstance.id, @appinstance.access_token))
|
27
|
+
I18n.locale = session["#{@appinstance.id}::user::locale"] ? session["#{@appinstance.id}::user::locale"] : ZuoraConnect.configuration.default_locale
|
28
|
+
Time.zone = session["#{@appinstance.id}::user::timezone"] ? session["#{@appinstance.id}::user::timezone"] : ZuoraConnect.configuration.default_time_zone
|
28
29
|
else
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
if ZuoraConnect::AppInstance.where(:id => instance_id).size == 0
|
33
|
-
Apartment::Tenant.switch!("public")
|
34
|
-
Apartment::Tenant.create(instance_id)
|
35
|
-
ZuoraConnect::AppInstance.create!(:id => instance_id )
|
36
|
-
end
|
37
|
-
@appinstance = ZuoraConnect::AppInstance.find(instance_id)
|
38
|
-
else
|
39
|
-
redirect_to "/500.html"
|
40
|
-
end
|
41
|
-
@appinstance.options = ZuoraConnect.configuration.dev_mode_options
|
42
|
-
ZuoraConnect.configuration.dev_mode_logins.each do |k,v|
|
43
|
-
tmp = ZuoraConnect::Login.new(v)
|
44
|
-
tmp.client.current_session = session["#{@appinstance.id}::#{k}:session"] if !session.nil? && v["tenant_type"] == "Zuora" && session["#{@appinstance.id}::#{k}:session"]
|
45
|
-
@appinstance.logins[k] = tmp
|
46
|
-
@appinstance.attr_builder(k, tmp)
|
47
|
-
end
|
48
|
-
@appinstance.mode = ZuoraConnect.configuration.dev_mode_mode
|
30
|
+
setup_instance_via_dev_mode
|
31
|
+
I18n.locale = session["#{@appinstance.id}::user::locale"] ? session["#{@appinstance.id}::user::locale"] : ZuoraConnect.configuration.default_locale
|
32
|
+
Time.zone = session["#{@appinstance.id}::user::timezone"] ? session["#{@appinstance.id}::user::timezone"] : ZuoraConnect.configuration.default_time_zone
|
49
33
|
end
|
34
|
+
Thread.current[:appinstance] = @appinstance
|
50
35
|
end
|
51
36
|
|
52
37
|
def persist_connect_app_session
|
53
38
|
session.merge!(@appinstance.save_data)
|
54
39
|
end
|
55
40
|
|
41
|
+
def check_connect_admin!
|
42
|
+
raise ZuoraConnect::Exceptions::AccessDenied.new("User is not an authorized admin for this application") if !session["#{@appinstance.id}::admin"]
|
43
|
+
end
|
44
|
+
|
56
45
|
def check_connect_admin
|
57
|
-
|
46
|
+
return session["#{@appinstance.id}::admin"]
|
58
47
|
end
|
59
48
|
|
60
49
|
private
|
61
|
-
def
|
50
|
+
def setup_instance_via_data
|
62
51
|
session["valid"] |= false
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
params[k] = v
|
69
|
-
end
|
70
|
-
end
|
71
|
-
session["#{values["appInstance"]}::destroy"] = values["destroy"]
|
72
|
-
session["#{values["appInstance"]}::user"] = values["user"]
|
73
|
-
session["#{values["appInstance"]}::key"] = values["key"]
|
74
|
-
session["#{values["appInstance"]}::valid"] = false
|
75
|
-
session["appInstance"] = values["appInstance"]
|
76
|
-
if values["current_user"]
|
77
|
-
session["#{values["appInstance"]}::admin"] = values["current_user"]["admin"] ? values["current_user"]["admin"] : false
|
78
|
-
session["#{values["appInstance"]}::user::timezone"] = values["current_user"]["timezone"]
|
79
|
-
session["#{values["appInstance"]}::user::locale"] = values["current_user"]["locale"]
|
80
|
-
session["#{values["appInstance"]}::user::email"] = values["current_user"]["email"]
|
52
|
+
reset_session
|
53
|
+
values = JSON.parse(ZuoraConnect::AppInstance.decrypt_response(Base64.urlsafe_decode64(request["data"])))
|
54
|
+
if values["param_data"]
|
55
|
+
values["param_data"].each do |k ,v|
|
56
|
+
params[k] = v
|
81
57
|
end
|
82
58
|
end
|
83
|
-
|
59
|
+
session["#{values["appInstance"]}::destroy"] = values["destroy"]
|
60
|
+
session["#{values["appInstance"]}::valid"] = false
|
61
|
+
session["appInstance"] = values["appInstance"]
|
62
|
+
if values["current_user"]
|
63
|
+
session["#{values["appInstance"]}::admin"] = values["current_user"]["admin"] ? values["current_user"]["admin"] : false
|
64
|
+
session["#{values["appInstance"]}::user::timezone"] = values["current_user"]["timezone"]
|
65
|
+
session["#{values["appInstance"]}::user::locale"] = values["current_user"]["locale"]
|
66
|
+
session["#{values["appInstance"]}::user::email"] = values["current_user"]["email"]
|
67
|
+
end
|
68
|
+
|
69
|
+
@appinstance = ZuoraConnect::AppInstance.where(:id => values["appInstance"].to_i).first
|
70
|
+
if @appinstance.blank?
|
71
|
+
Apartment::Tenant.switch!("public")
|
72
|
+
Apartment::Tenant.create(values["appInstance"].to_i)
|
73
|
+
@appinstance = ZuoraConnect::AppInstance.create!(:id => values["appInstance"].to_i, :access_token => values["user"], :refresh_token => values["key"])
|
74
|
+
end
|
75
|
+
if @appinstance.access_token.blank? || @appinstance.refresh_token.blank?
|
76
|
+
@appinstance.update_attributes(:access_token => values["user"], :refresh_token => values["key"])
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def setup_instance_via_session
|
81
|
+
if !session["appInstance"].blank?
|
82
|
+
@appinstance = ZuoraConnect::AppInstance.where(:id => session["appInstance"]).first
|
83
|
+
else
|
84
|
+
raise ZuoraConnect::Exceptions::SessionInvalid.new("Session Blank -- Relaunch Application")
|
85
|
+
end
|
84
86
|
end
|
85
87
|
|
86
|
-
def
|
88
|
+
def setup_instance_via_dev_mode
|
87
89
|
session["appInstance"] = "1"
|
88
|
-
session["
|
89
|
-
|
90
|
-
|
90
|
+
session["valid"] = true
|
91
|
+
values = {:user => "test" , :key => "test"}
|
92
|
+
@appinstance = ZuoraConnect::AppInstance.where(:id => values["appInstance"].to_i).first
|
93
|
+
if @appinstance.blank?
|
94
|
+
Apartment::Tenant.switch!("public")
|
95
|
+
Apartment::Tenant.create(values["appInstance"].to_i)
|
96
|
+
@appinstance = ZuoraConnect::AppInstance.create!(:id => values["appInstance"].to_i, :access_token => "test", :refresh_token => "test")
|
97
|
+
end
|
98
|
+
if @appinstance.access_token.blank? || @appinstance.refresh_token.blank?
|
99
|
+
@appinstance.update_attributes(:access_token => values["user"], :refresh_token => values["key"])
|
100
|
+
end
|
91
101
|
end
|
92
102
|
|
93
103
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module ZuoraConnect
|
2
|
+
module Exceptions
|
3
|
+
class Error < StandardError; end
|
4
|
+
class AuthorizationNotPerformed < Error; end
|
5
|
+
|
6
|
+
class SessionInvalid < Error
|
7
|
+
attr_writer :default_message
|
8
|
+
|
9
|
+
def initialize(message = nil)
|
10
|
+
@message = message
|
11
|
+
@default_message = "Session data invalid."
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_s
|
15
|
+
@message || @default_message
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class ConnectCommunicationError < Error
|
20
|
+
attr_reader :code, :response
|
21
|
+
attr_writer :default_message
|
22
|
+
|
23
|
+
def initialize(message = nil,response=nil, code =nil)
|
24
|
+
@code = code
|
25
|
+
@message = message
|
26
|
+
@response = response
|
27
|
+
@default_message = "Error communication with Connect."
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_s
|
31
|
+
@message || @default_message
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class AccessDenied < Error
|
36
|
+
attr_writer :default_message
|
37
|
+
|
38
|
+
def initialize(message = nil)
|
39
|
+
@message = message
|
40
|
+
@default_message = "You are not authorized to access this page."
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_s
|
44
|
+
@message || @default_message
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zuora_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.8.
|
4
|
+
version: 0.0.8.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Connect Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: apartment
|
@@ -127,11 +127,13 @@ files:
|
|
127
127
|
- config/initializers/apartment.rb
|
128
128
|
- config/routes.rb
|
129
129
|
- db/migrate/20160718151733_create_connect_app_instances.rb
|
130
|
+
- db/migrate/20161024162319_add_tokens_to_app_instance.rb
|
130
131
|
- lib/tasks/zuora_connect_tasks.rake
|
131
132
|
- lib/zuora_connect.rb
|
132
133
|
- lib/zuora_connect/configuration.rb
|
133
134
|
- lib/zuora_connect/controllers/helpers.rb
|
134
135
|
- lib/zuora_connect/engine.rb
|
136
|
+
- lib/zuora_connect/exceptions.rb
|
135
137
|
- lib/zuora_connect/version.rb
|
136
138
|
- lib/zuora_connect/views/helpers.rb
|
137
139
|
- test/controllers/zuora_connect/api/v1/app_instance_controller_test.rb
|