authlete 0.5.1 → 1.0.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 +4 -4
- data/lib/authlete.rb +24 -1
- data/lib/authlete/api.rb +298 -146
- data/lib/authlete/authentication-server.rb +1 -1
- data/lib/authlete/exception.rb +6 -3
- data/lib/authlete/model/client-extension.rb +135 -135
- data/lib/authlete/model/client-list.rb +128 -128
- data/lib/authlete/model/client.rb +468 -468
- data/lib/authlete/model/hashable.rb +1 -1
- data/lib/authlete/model/pair.rb +102 -102
- data/lib/authlete/model/property.rb +116 -0
- data/lib/authlete/model/request/authentication-callback-request.rb +90 -90
- data/lib/authlete/model/request/authorization-fail-request.rb +107 -104
- data/lib/authlete/model/request/authorization-issue-request.rb +167 -133
- data/lib/authlete/model/request/authorization-request.rb +101 -101
- data/lib/authlete/model/request/client-authorization-delete-request.rb +123 -0
- data/lib/authlete/model/request/client-authorization-get-list-request.rb +123 -0
- data/lib/authlete/model/request/client-authorization-update-request.rb +118 -0
- data/lib/authlete/model/request/client-secret-update-request.rb +121 -0
- data/lib/authlete/model/request/developer-authentication-callback-request.rb +84 -84
- data/lib/authlete/model/request/granted-scopes-request.rb +103 -0
- data/lib/authlete/model/request/introspection-request.rb +117 -39
- data/lib/authlete/model/request/revocation-request.rb +125 -0
- data/lib/authlete/model/request/standard-introspection-request.rb +102 -0
- data/lib/authlete/model/request/token-create-request.rb +250 -0
- data/lib/authlete/model/request/token-fail-request.rb +104 -101
- data/lib/authlete/model/request/token-issue-request.rb +116 -101
- data/lib/authlete/model/request/token-request.rb +127 -121
- data/lib/authlete/model/request/token-update-request.rb +165 -0
- data/lib/authlete/model/request/user-info-issue-request.rb +113 -0
- data/lib/authlete/model/request/user-info-request.rb +102 -0
- data/lib/authlete/model/response/authentication-callback-response.rb +53 -53
- data/lib/authlete/model/response/authorization-fail-response.rb +48 -48
- data/lib/authlete/model/response/authorization-issue-response.rb +85 -48
- data/lib/authlete/model/response/authorization-response.rb +177 -164
- data/lib/authlete/model/response/client-authorization-get-list-response.rb +60 -0
- data/lib/authlete/model/response/client-secret-refresh-response.rb +48 -0
- data/lib/authlete/model/response/client-secret-update-response.rb +48 -0
- data/lib/authlete/model/response/developer-authentication-callback-response.rb +55 -55
- data/lib/authlete/model/response/granted-scopes-get-response.rb +63 -0
- data/lib/authlete/model/response/introspection-response.rb +163 -132
- data/lib/authlete/model/response/revocation-response.rb +49 -0
- data/lib/authlete/model/response/service-creatable-response.rb +50 -50
- data/lib/authlete/model/response/standard-introspection-response.rb +49 -0
- data/lib/authlete/model/response/token-create-response.rb +100 -0
- data/lib/authlete/model/response/token-fail-response.rb +49 -49
- data/lib/authlete/model/response/token-issue-response.rb +138 -49
- data/lib/authlete/model/response/token-response.rb +168 -70
- data/lib/authlete/model/response/token-update-response.rb +62 -0
- data/lib/authlete/model/response/user-info-issue-response.rb +47 -0
- data/lib/authlete/model/response/user-info-response.rb +85 -0
- data/lib/authlete/model/result.rb +44 -44
- data/lib/authlete/model/scope.rb +1 -1
- data/lib/authlete/model/service-list.rb +1 -1
- data/lib/authlete/model/service-owner.rb +1 -1
- data/lib/authlete/model/service.rb +4 -2
- data/lib/authlete/model/sns-credentials.rb +1 -1
- data/lib/authlete/model/tagged-value.rb +97 -97
- data/lib/authlete/utility.rb +1 -1
- data/lib/authlete/version.rb +2 -2
- metadata +24 -2
data/lib/authlete/exception.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# :nodoc:
|
2
2
|
#
|
3
|
-
# Copyright (C) 2014-
|
3
|
+
# Copyright (C) 2014-2018 Authlete, Inc.
|
4
4
|
#
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
6
|
# you may not use this file except in compliance with the License.
|
@@ -19,6 +19,9 @@ module Authlete
|
|
19
19
|
class Exception < StandardError
|
20
20
|
include Authlete::Utility
|
21
21
|
|
22
|
+
# The error message.
|
23
|
+
attr_accessor :message
|
24
|
+
|
22
25
|
# The HTTP status code of the error.
|
23
26
|
attr_accessor :statusCode
|
24
27
|
alias_method :status_code, :statusCode
|
@@ -33,12 +36,12 @@ module Authlete
|
|
33
36
|
# The error message from RestClient or the other general exceptions.
|
34
37
|
@message = extract_value(hash, :message)
|
35
38
|
@statusCode = extract_integer_value(hash, :statusCode)
|
36
|
-
@result = Authlete::Model::Result.new(hash)
|
39
|
+
@result = Authlete::Model::Result.new(extract_value(hash, :result))
|
37
40
|
end
|
38
41
|
|
39
42
|
public
|
40
43
|
|
41
|
-
def
|
44
|
+
def available_message
|
42
45
|
@result.resultMessage || @message || self.class.default_message
|
43
46
|
end
|
44
47
|
|
@@ -1,136 +1,136 @@
|
|
1
|
-
# :nodoc:
|
2
|
-
#
|
3
|
-
# Copyright (C) 2014-
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
|
18
|
-
require 'set'
|
19
|
-
|
20
|
-
|
21
|
-
module Authlete
|
22
|
-
module Model
|
23
|
-
class ClientExtension < Authlete::Model::Hashable
|
24
|
-
include Authlete::Utility
|
25
|
-
|
26
|
-
# The set of scopes that a client application is allowed to request.
|
27
|
-
# (String array)
|
28
|
-
attr_accessor :requestableScopes
|
29
|
-
alias_method :requestable_scopes, :requestableScopes
|
30
|
-
alias_method :requestable_scopes=, :requestableScopes=
|
31
|
-
|
32
|
-
# The flag to show whether a client application can only request
|
33
|
-
# the set of scopes that it is allowed to request or it can request
|
34
|
-
# all of the scopes that the service supports. (Boolean)
|
35
|
-
attr_accessor :requestableScopesEnabled
|
36
|
-
alias_method :requestable_scopes_enabled, :requestableScopesEnabled
|
37
|
-
alias_method :requestable_scopes_enabled=, :requestableScopesEnabled=
|
38
|
-
|
39
|
-
private
|
40
|
-
|
41
|
-
# Boolean attributes.
|
42
|
-
BOOLEAN_ATTRIBUTES = ::Set.new([
|
43
|
-
:requestableScopesEnabled
|
44
|
-
])
|
45
|
-
|
46
|
-
# String array attributes.
|
47
|
-
STRING_ARRAY_ATTRIBUTES = ::Set.new([
|
48
|
-
:requestableScopes
|
49
|
-
])
|
50
|
-
|
51
|
-
# Mapping from snake cases to camel cases.
|
52
|
-
SNAKE_TO_CAMEL = {
|
53
|
-
:requestable_scopes => :requestableScopes,
|
54
|
-
:requestable_scopes_enabled => :requestableScopesEnabled
|
55
|
-
}
|
56
|
-
|
57
|
-
# The constructor
|
58
|
-
def initialize(hash = nil)
|
59
|
-
# Set default values to boolean attributes.
|
60
|
-
BOOLEAN_ATTRIBUTES.each do |attr|
|
61
|
-
send("#{attr}=", false)
|
62
|
-
end
|
63
|
-
|
64
|
-
# Set default values to string array attributes.
|
65
|
-
STRING_ARRAY_ATTRIBUTES.each do |attr|
|
66
|
-
send("#{attr}=", nil)
|
67
|
-
end
|
68
|
-
|
69
|
-
# Set attribute values using the given hash.
|
70
|
-
authlete_model_update(hash)
|
71
|
-
end
|
72
|
-
|
73
|
-
def authlete_model_convert_key(key)
|
74
|
-
key = key.to_sym
|
75
|
-
|
76
|
-
# Convert snakecase to camelcase, if necessary.
|
77
|
-
if SNAKE_TO_CAMEL.has_key?(key)
|
78
|
-
key = SNAKE_TO_CAMEL[key]
|
79
|
-
end
|
80
|
-
|
81
|
-
key
|
82
|
-
end
|
83
|
-
|
84
|
-
def authlete_model_simple_attribute?(key)
|
85
|
-
BOOLEAN_ATTRIBUTES.include?(key) or
|
86
|
-
STRING_ARRAY_ATTRIBUTES.include?(key)
|
87
|
-
end
|
88
|
-
|
89
|
-
def authlete_model_update(hash)
|
90
|
-
return if hash.nil?
|
91
|
-
|
92
|
-
hash.each do |key, value|
|
93
|
-
key = authlete_model_convert_key(key)
|
94
|
-
|
95
|
-
if authlete_model_simple_attribute?(key)
|
96
|
-
send("#{key}=", value)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
self
|
101
|
-
end
|
102
|
-
|
103
|
-
public
|
104
|
-
|
105
|
-
# Construct an instance from the given hash.
|
106
|
-
#
|
107
|
-
# If the given argument is nil or is not a Hash, nil is returned.
|
108
|
-
# Otherwise, ClientList.new(hash) is returned.
|
109
|
-
def self.parse(hash)
|
110
|
-
if hash.nil? or (hash.kind_of?(Hash) == false)
|
111
|
-
return nil
|
112
|
-
end
|
113
|
-
|
114
|
-
return ClientExtension.new(hash)
|
115
|
-
end
|
116
|
-
|
117
|
-
# Convert this object into a hash.
|
118
|
-
def to_hash
|
119
|
-
hash = {}
|
120
|
-
|
121
|
-
instance_variables.each do |var|
|
122
|
-
key = var.to_s.delete("@").to_sym
|
123
|
-
val = instance_variable_get(var)
|
124
|
-
|
125
|
-
if authlete_model_simple_attribute?(key) or val.nil?
|
126
|
-
hash[key] = val
|
127
|
-
elsif val.kind_of?(Array)
|
128
|
-
hash[key] = val.map { |element| element.to_hash }
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
hash
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
1
|
+
# :nodoc:
|
2
|
+
#
|
3
|
+
# Copyright (C) 2014-2018 Authlete, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
require 'set'
|
19
|
+
|
20
|
+
|
21
|
+
module Authlete
|
22
|
+
module Model
|
23
|
+
class ClientExtension < Authlete::Model::Hashable
|
24
|
+
include Authlete::Utility
|
25
|
+
|
26
|
+
# The set of scopes that a client application is allowed to request.
|
27
|
+
# (String array)
|
28
|
+
attr_accessor :requestableScopes
|
29
|
+
alias_method :requestable_scopes, :requestableScopes
|
30
|
+
alias_method :requestable_scopes=, :requestableScopes=
|
31
|
+
|
32
|
+
# The flag to show whether a client application can only request
|
33
|
+
# the set of scopes that it is allowed to request or it can request
|
34
|
+
# all of the scopes that the service supports. (Boolean)
|
35
|
+
attr_accessor :requestableScopesEnabled
|
36
|
+
alias_method :requestable_scopes_enabled, :requestableScopesEnabled
|
37
|
+
alias_method :requestable_scopes_enabled=, :requestableScopesEnabled=
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
# Boolean attributes.
|
42
|
+
BOOLEAN_ATTRIBUTES = ::Set.new([
|
43
|
+
:requestableScopesEnabled
|
44
|
+
])
|
45
|
+
|
46
|
+
# String array attributes.
|
47
|
+
STRING_ARRAY_ATTRIBUTES = ::Set.new([
|
48
|
+
:requestableScopes
|
49
|
+
])
|
50
|
+
|
51
|
+
# Mapping from snake cases to camel cases.
|
52
|
+
SNAKE_TO_CAMEL = {
|
53
|
+
:requestable_scopes => :requestableScopes,
|
54
|
+
:requestable_scopes_enabled => :requestableScopesEnabled
|
55
|
+
}
|
56
|
+
|
57
|
+
# The constructor
|
58
|
+
def initialize(hash = nil)
|
59
|
+
# Set default values to boolean attributes.
|
60
|
+
BOOLEAN_ATTRIBUTES.each do |attr|
|
61
|
+
send("#{attr}=", false)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Set default values to string array attributes.
|
65
|
+
STRING_ARRAY_ATTRIBUTES.each do |attr|
|
66
|
+
send("#{attr}=", nil)
|
67
|
+
end
|
68
|
+
|
69
|
+
# Set attribute values using the given hash.
|
70
|
+
authlete_model_update(hash)
|
71
|
+
end
|
72
|
+
|
73
|
+
def authlete_model_convert_key(key)
|
74
|
+
key = key.to_sym
|
75
|
+
|
76
|
+
# Convert snakecase to camelcase, if necessary.
|
77
|
+
if SNAKE_TO_CAMEL.has_key?(key)
|
78
|
+
key = SNAKE_TO_CAMEL[key]
|
79
|
+
end
|
80
|
+
|
81
|
+
key
|
82
|
+
end
|
83
|
+
|
84
|
+
def authlete_model_simple_attribute?(key)
|
85
|
+
BOOLEAN_ATTRIBUTES.include?(key) or
|
86
|
+
STRING_ARRAY_ATTRIBUTES.include?(key)
|
87
|
+
end
|
88
|
+
|
89
|
+
def authlete_model_update(hash)
|
90
|
+
return if hash.nil?
|
91
|
+
|
92
|
+
hash.each do |key, value|
|
93
|
+
key = authlete_model_convert_key(key)
|
94
|
+
|
95
|
+
if authlete_model_simple_attribute?(key)
|
96
|
+
send("#{key}=", value)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
self
|
101
|
+
end
|
102
|
+
|
103
|
+
public
|
104
|
+
|
105
|
+
# Construct an instance from the given hash.
|
106
|
+
#
|
107
|
+
# If the given argument is nil or is not a Hash, nil is returned.
|
108
|
+
# Otherwise, ClientList.new(hash) is returned.
|
109
|
+
def self.parse(hash)
|
110
|
+
if hash.nil? or (hash.kind_of?(Hash) == false)
|
111
|
+
return nil
|
112
|
+
end
|
113
|
+
|
114
|
+
return ClientExtension.new(hash)
|
115
|
+
end
|
116
|
+
|
117
|
+
# Convert this object into a hash.
|
118
|
+
def to_hash
|
119
|
+
hash = {}
|
120
|
+
|
121
|
+
instance_variables.each do |var|
|
122
|
+
key = var.to_s.delete("@").to_sym
|
123
|
+
val = instance_variable_get(var)
|
124
|
+
|
125
|
+
if authlete_model_simple_attribute?(key) or val.nil?
|
126
|
+
hash[key] = val
|
127
|
+
elsif val.kind_of?(Array)
|
128
|
+
hash[key] = val.map { |element| element.to_hash }
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
hash
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
136
|
end
|
@@ -1,129 +1,129 @@
|
|
1
|
-
# :nodoc:
|
2
|
-
#
|
3
|
-
# Copyright (C) 2014-
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
|
18
|
-
require 'set'
|
19
|
-
|
20
|
-
|
21
|
-
module Authlete
|
22
|
-
module Model
|
23
|
-
class ClientList < Authlete::Model::Hashable
|
24
|
-
include Authlete::Utility
|
25
|
-
# The start index (inclusive) of the clients in this list.
|
26
|
-
# (Integer)
|
27
|
-
attr_accessor :start
|
28
|
-
|
29
|
-
# The end index (exclusive) of the clients in this list.
|
30
|
-
# (Integer)
|
31
|
-
attr_accessor :end
|
32
|
-
|
33
|
-
# The total count of clients. (Integer)
|
34
|
-
attr_accessor :totalCount
|
35
|
-
alias_method :total_count, :totalCount
|
36
|
-
alias_method :total_count=, :totalCount=
|
37
|
-
|
38
|
-
# The list of clients. (Client array)
|
39
|
-
attr_accessor :clients
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
# Integer attributes.
|
44
|
-
INTEGER_ATTRIBUTES = ::Set.new([ :start, :end, :totalCount ])
|
45
|
-
|
46
|
-
# Mapping from snake cases to camel cases.
|
47
|
-
SNAKE_TO_CAMEL = { :total_count => :totalCount }
|
48
|
-
|
49
|
-
# The constructor
|
50
|
-
def initialize(hash = nil)
|
51
|
-
# Set default values to integer attributes.
|
52
|
-
INTEGER_ATTRIBUTES.each do |attr|
|
53
|
-
send("#{attr}=", 0)
|
54
|
-
end
|
55
|
-
|
56
|
-
@clients = nil
|
57
|
-
|
58
|
-
# Set attribute values using the given hash.
|
59
|
-
authlete_model_update(hash)
|
60
|
-
end
|
61
|
-
|
62
|
-
def authlete_model_convert_key(key)
|
63
|
-
key = key.to_sym
|
64
|
-
|
65
|
-
# Convert snakecase to camelcase, if necessary.
|
66
|
-
if SNAKE_TO_CAMEL.has_key?(key)
|
67
|
-
key = SNAKE_TO_CAMEL[key]
|
68
|
-
end
|
69
|
-
|
70
|
-
key
|
71
|
-
end
|
72
|
-
|
73
|
-
def authlete_model_simple_attribute?(key)
|
74
|
-
INTEGER_ATTRIBUTES.include?(key)
|
75
|
-
end
|
76
|
-
|
77
|
-
def authlete_model_update(hash)
|
78
|
-
return if hash.nil?
|
79
|
-
|
80
|
-
hash.each do |key, value|
|
81
|
-
key = authlete_model_convert_key(key)
|
82
|
-
|
83
|
-
if authlete_model_simple_attribute?(key)
|
84
|
-
send("#{key}=", value)
|
85
|
-
elsif key == :clients
|
86
|
-
# Get an array consisting of "Client" objects.
|
87
|
-
@clients = get_parsed_array(value) do |element|
|
88
|
-
Authlete::Model::Client.parse(element)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
self
|
94
|
-
end
|
95
|
-
|
96
|
-
public
|
97
|
-
|
98
|
-
# Construct an instance from the given hash.
|
99
|
-
#
|
100
|
-
# If the given argument is nil or is not a Hash, nil is returned.
|
101
|
-
# Otherwise, ClientList.new(hash) is returned.
|
102
|
-
def self.parse(hash)
|
103
|
-
if hash.nil? or (hash.kind_of?(Hash) == false)
|
104
|
-
return nil
|
105
|
-
end
|
106
|
-
|
107
|
-
return ClientList.new(hash)
|
108
|
-
end
|
109
|
-
|
110
|
-
# Convert this object into a hash.
|
111
|
-
def to_hash
|
112
|
-
hash = {}
|
113
|
-
|
114
|
-
instance_variables.each do |var|
|
115
|
-
key = var.to_s.delete("@").to_sym
|
116
|
-
val = instance_variable_get(var)
|
117
|
-
|
118
|
-
if authlete_model_simple_attribute?(key) or val.nil?
|
119
|
-
hash[key] = val
|
120
|
-
elsif val.kind_of?(Array)
|
121
|
-
hash[key] = val.map { |element| element.to_hash }
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
hash
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
1
|
+
# :nodoc:
|
2
|
+
#
|
3
|
+
# Copyright (C) 2014-2018 Authlete, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
require 'set'
|
19
|
+
|
20
|
+
|
21
|
+
module Authlete
|
22
|
+
module Model
|
23
|
+
class ClientList < Authlete::Model::Hashable
|
24
|
+
include Authlete::Utility
|
25
|
+
# The start index (inclusive) of the clients in this list.
|
26
|
+
# (Integer)
|
27
|
+
attr_accessor :start
|
28
|
+
|
29
|
+
# The end index (exclusive) of the clients in this list.
|
30
|
+
# (Integer)
|
31
|
+
attr_accessor :end
|
32
|
+
|
33
|
+
# The total count of clients. (Integer)
|
34
|
+
attr_accessor :totalCount
|
35
|
+
alias_method :total_count, :totalCount
|
36
|
+
alias_method :total_count=, :totalCount=
|
37
|
+
|
38
|
+
# The list of clients. (Client array)
|
39
|
+
attr_accessor :clients
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
# Integer attributes.
|
44
|
+
INTEGER_ATTRIBUTES = ::Set.new([ :start, :end, :totalCount ])
|
45
|
+
|
46
|
+
# Mapping from snake cases to camel cases.
|
47
|
+
SNAKE_TO_CAMEL = { :total_count => :totalCount }
|
48
|
+
|
49
|
+
# The constructor
|
50
|
+
def initialize(hash = nil)
|
51
|
+
# Set default values to integer attributes.
|
52
|
+
INTEGER_ATTRIBUTES.each do |attr|
|
53
|
+
send("#{attr}=", 0)
|
54
|
+
end
|
55
|
+
|
56
|
+
@clients = nil
|
57
|
+
|
58
|
+
# Set attribute values using the given hash.
|
59
|
+
authlete_model_update(hash)
|
60
|
+
end
|
61
|
+
|
62
|
+
def authlete_model_convert_key(key)
|
63
|
+
key = key.to_sym
|
64
|
+
|
65
|
+
# Convert snakecase to camelcase, if necessary.
|
66
|
+
if SNAKE_TO_CAMEL.has_key?(key)
|
67
|
+
key = SNAKE_TO_CAMEL[key]
|
68
|
+
end
|
69
|
+
|
70
|
+
key
|
71
|
+
end
|
72
|
+
|
73
|
+
def authlete_model_simple_attribute?(key)
|
74
|
+
INTEGER_ATTRIBUTES.include?(key)
|
75
|
+
end
|
76
|
+
|
77
|
+
def authlete_model_update(hash)
|
78
|
+
return if hash.nil?
|
79
|
+
|
80
|
+
hash.each do |key, value|
|
81
|
+
key = authlete_model_convert_key(key)
|
82
|
+
|
83
|
+
if authlete_model_simple_attribute?(key)
|
84
|
+
send("#{key}=", value)
|
85
|
+
elsif key == :clients
|
86
|
+
# Get an array consisting of "Client" objects.
|
87
|
+
@clients = get_parsed_array(value) do |element|
|
88
|
+
Authlete::Model::Client.parse(element)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
self
|
94
|
+
end
|
95
|
+
|
96
|
+
public
|
97
|
+
|
98
|
+
# Construct an instance from the given hash.
|
99
|
+
#
|
100
|
+
# If the given argument is nil or is not a Hash, nil is returned.
|
101
|
+
# Otherwise, ClientList.new(hash) is returned.
|
102
|
+
def self.parse(hash)
|
103
|
+
if hash.nil? or (hash.kind_of?(Hash) == false)
|
104
|
+
return nil
|
105
|
+
end
|
106
|
+
|
107
|
+
return ClientList.new(hash)
|
108
|
+
end
|
109
|
+
|
110
|
+
# Convert this object into a hash.
|
111
|
+
def to_hash
|
112
|
+
hash = {}
|
113
|
+
|
114
|
+
instance_variables.each do |var|
|
115
|
+
key = var.to_s.delete("@").to_sym
|
116
|
+
val = instance_variable_get(var)
|
117
|
+
|
118
|
+
if authlete_model_simple_attribute?(key) or val.nil?
|
119
|
+
hash[key] = val
|
120
|
+
elsif val.kind_of?(Array)
|
121
|
+
hash[key] = val.map { |element| element.to_hash }
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
hash
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
129
|
end
|