thron 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.env.example +4 -0
- data/.gitignore +13 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/README.md +182 -0
- data/Rakefile +10 -0
- data/Vagrantfile +80 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/config/thron.yml +10 -0
- data/lib/thron.rb +3 -0
- data/lib/thron/circuit_breaker.rb +46 -0
- data/lib/thron/config.rb +35 -0
- data/lib/thron/entity/base.rb +78 -0
- data/lib/thron/entity/image.rb +30 -0
- data/lib/thron/gateway/access_manager.rb +69 -0
- data/lib/thron/gateway/apps.rb +91 -0
- data/lib/thron/gateway/apps_admin.rb +153 -0
- data/lib/thron/gateway/base.rb +41 -0
- data/lib/thron/gateway/category.rb +210 -0
- data/lib/thron/gateway/client.rb +59 -0
- data/lib/thron/gateway/comment.rb +76 -0
- data/lib/thron/gateway/contact.rb +120 -0
- data/lib/thron/gateway/content.rb +267 -0
- data/lib/thron/gateway/content_category.rb +32 -0
- data/lib/thron/gateway/content_list.rb +40 -0
- data/lib/thron/gateway/dashboard.rb +120 -0
- data/lib/thron/gateway/delivery.rb +122 -0
- data/lib/thron/gateway/device.rb +58 -0
- data/lib/thron/gateway/metadata.rb +68 -0
- data/lib/thron/gateway/publish_in_weebo_express.rb +39 -0
- data/lib/thron/gateway/publishing_process.rb +141 -0
- data/lib/thron/gateway/repository.rb +111 -0
- data/lib/thron/gateway/session.rb +15 -0
- data/lib/thron/gateway/users_group_manager.rb +117 -0
- data/lib/thron/gateway/v_user_manager.rb +195 -0
- data/lib/thron/logger.rb +25 -0
- data/lib/thron/pageable.rb +26 -0
- data/lib/thron/paginator.rb +82 -0
- data/lib/thron/response.rb +48 -0
- data/lib/thron/root.rb +9 -0
- data/lib/thron/routable.rb +80 -0
- data/lib/thron/route.rb +102 -0
- data/lib/thron/string_extensions.rb +23 -0
- data/lib/thron/user.rb +77 -0
- data/lib/thron/version.rb +3 -0
- data/log/.gitignore +4 -0
- data/thron.gemspec +26 -0
- metadata +176 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'thron/gateway/session'
|
2
|
+
|
3
|
+
module Thron
|
4
|
+
module Gateway
|
5
|
+
class ContentCategory < Session
|
6
|
+
|
7
|
+
PACKAGE = Package.new(:xcontents, :resources, self.service_name)
|
8
|
+
|
9
|
+
def self.routes
|
10
|
+
@routes ||= {
|
11
|
+
link_category_to_content: Route::factory(name: 'linkCategoryToContent', package: PACKAGE),
|
12
|
+
remove_category_from_content: Route::factory(name: 'removeCategoryToContent', package: PACKAGE)
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
self.routes.keys.each do |message|
|
17
|
+
define_method(message) do |options|
|
18
|
+
category_id = options[:category_id]
|
19
|
+
content_id = options[:content_id]
|
20
|
+
apply_acl = options.fetch(:apply_acl) { false }
|
21
|
+
query = {
|
22
|
+
clientId: client_id,
|
23
|
+
categoryId: category_id,
|
24
|
+
contentId: content_id,
|
25
|
+
applyAcl: apply_acl
|
26
|
+
}
|
27
|
+
route(to: __callee__, query: query, token_id: token_id)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'thron/gateway/session'
|
2
|
+
|
3
|
+
module Thron
|
4
|
+
module Gateway
|
5
|
+
class ContentList < Session
|
6
|
+
|
7
|
+
PACKAGE = Package.new(:xcontents, :resources, self.service_name)
|
8
|
+
|
9
|
+
paginate :show_contents
|
10
|
+
|
11
|
+
def self.routes
|
12
|
+
@routes ||= {
|
13
|
+
show_contents: Route::factory(name: 'showContents', package: PACKAGE, verb: Route::Verbs::GET)
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def show_contents(options = {})
|
18
|
+
category_id = options[:category_id]
|
19
|
+
locale = options[:locale]
|
20
|
+
criteria = options.fetch(:criteria) { {} }
|
21
|
+
recursive = options.fetch(:recursive) { true }
|
22
|
+
order_by = options.fetch(:order_by) { 'contentName_A' }
|
23
|
+
limit = options[:limit].to_i
|
24
|
+
offset = options[:offset].to_i
|
25
|
+
query = {
|
26
|
+
clientId: client_id,
|
27
|
+
categoryId: category_id,
|
28
|
+
locale: locale,
|
29
|
+
searchOnSubCategories: recursive,
|
30
|
+
orderBy: order_by,
|
31
|
+
numberOfResult: limit,
|
32
|
+
offset: offset
|
33
|
+
}.merge(criteria)
|
34
|
+
route(to: __callee__, query: query, token_id: token_id) do |response|
|
35
|
+
response.body = Entity::Base::factory(response.body.fetch('contents') { [] })
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'thron/gateway/session'
|
2
|
+
|
3
|
+
module Thron
|
4
|
+
module Gateway
|
5
|
+
class Dashboard < Session
|
6
|
+
|
7
|
+
PACKAGE = Package.new(:xadmin, :resources, self.service_name)
|
8
|
+
|
9
|
+
def self.routes
|
10
|
+
@routes ||= {
|
11
|
+
change_contents_owner: Route::factory(name: 'changeContentsOwner', package: PACKAGE),
|
12
|
+
download_source_file: Route::factory(name: 'downloadSourceFile', package: PACKAGE, verb: Route::Verbs::GET),
|
13
|
+
migrate_user_stuff: Route::factory(name: 'migrateUserStuff', package: PACKAGE),
|
14
|
+
propagate_acl_to_sub_categories: Route::factory(name: 'propagateAclToSubCategories', package: PACKAGE),
|
15
|
+
replace_source_files: Route::factory(name: 'replaceSourceFiles', package: PACKAGE),
|
16
|
+
reset_content_user_preferences: Route::factory(name: 'resetUserPreferences', package: PACKAGE),
|
17
|
+
trash_contents: Route::factory(name: 'trashContent', package: PACKAGE),
|
18
|
+
untrash_contents: Route::factory(name: 'untrashContent', package: PACKAGE)
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def change_contents_owner(options = {})
|
23
|
+
contents = options[:contents]
|
24
|
+
body = {
|
25
|
+
clientId: client_id,
|
26
|
+
contents: contents
|
27
|
+
}
|
28
|
+
route(to: __callee__, body: body, token_id: token_id)
|
29
|
+
end
|
30
|
+
|
31
|
+
def download_source_file(options = {})
|
32
|
+
content_id = options[:content_id]
|
33
|
+
save_as = options[:save_as]
|
34
|
+
query = {
|
35
|
+
clientId: client_id,
|
36
|
+
tokenId: token_id,
|
37
|
+
xcontentId: content_id,
|
38
|
+
saveAs: save_as
|
39
|
+
}
|
40
|
+
route(to: __callee__, query: query, token_id: token_id)
|
41
|
+
end
|
42
|
+
|
43
|
+
def migrate_user_stuff(options = {})
|
44
|
+
user_id1 = options[:user_id1]
|
45
|
+
user_id2 = options[:user_id2]
|
46
|
+
remove_user_id1 = options.fetch(:remove_user_id1) { false }
|
47
|
+
body = {
|
48
|
+
clientId: client_id,
|
49
|
+
userId1: user_id1,
|
50
|
+
userId2: user_id2,
|
51
|
+
removeUserId1: remove_user_id1
|
52
|
+
}
|
53
|
+
route(to: __callee__, body: body, token_id: token_id)
|
54
|
+
end
|
55
|
+
|
56
|
+
def propagate_acl_to_sub_categories(options = {})
|
57
|
+
category_id = options[:category_id]
|
58
|
+
acls = options[:acls]
|
59
|
+
force = options.fetch(:force) { false }
|
60
|
+
body = {
|
61
|
+
clientId: client_id,
|
62
|
+
categoryId: category_id,
|
63
|
+
acls: acls,
|
64
|
+
force: force
|
65
|
+
}
|
66
|
+
route(to: __callee__, body: body, token_id: token_id)
|
67
|
+
end
|
68
|
+
|
69
|
+
def replace_source_files(options = {})
|
70
|
+
media_content_id = options[:media_content_id]
|
71
|
+
content_id = options[:content_id]
|
72
|
+
file_ids = options[:file_ids]
|
73
|
+
remove_original_files = options.fetch(:remove_original_files) { false }
|
74
|
+
body = {
|
75
|
+
clientId: client_id,
|
76
|
+
mediaContentId: media_content_id,
|
77
|
+
xcontentId: content_id,
|
78
|
+
sourceFiles: { repositoryFileIds: file_ids },
|
79
|
+
removeOriginalFiles: remove_original_files
|
80
|
+
}
|
81
|
+
route(to: __callee__, body: body, token_id: token_id)
|
82
|
+
end
|
83
|
+
|
84
|
+
def reset_content_user_preferences(options = {})
|
85
|
+
content_id = options[:content_id]
|
86
|
+
body = {
|
87
|
+
clientId: client_id,
|
88
|
+
xcontentId: content_id
|
89
|
+
}
|
90
|
+
route(to: __callee__, body: body, token_id: token_id)
|
91
|
+
end
|
92
|
+
|
93
|
+
def trash_contents(options = {})
|
94
|
+
contents = options[:contents]
|
95
|
+
body = {
|
96
|
+
clientId: client_id,
|
97
|
+
contentList: { contentsToTrash: contents.map(&:payload) }
|
98
|
+
}
|
99
|
+
route(to: __callee__, body: body, token_id: token_id) do |response|
|
100
|
+
response.extra(attribute: 'contentsInIssue')
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def untrash_contents(options = {})
|
105
|
+
new_user_id = options[:new_user_id]
|
106
|
+
content_ids = options[:content_ids]
|
107
|
+
body = {
|
108
|
+
clientId: client_id,
|
109
|
+
contentList: {
|
110
|
+
newUserId: new_user_id,
|
111
|
+
xcontentIds: content_ids
|
112
|
+
}
|
113
|
+
}
|
114
|
+
route(to: __callee__, body: body, token_id: token_id) do |response|
|
115
|
+
response.extra(attribute: 'contentsInIssue')
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'thron/gateway/session'
|
2
|
+
|
3
|
+
module Thron
|
4
|
+
module Gateway
|
5
|
+
class Delivery < Session
|
6
|
+
|
7
|
+
PACKAGE = Package.new(:xcontents, :resources, self.service_name)
|
8
|
+
|
9
|
+
paginate :content_cuepoints, :downloadable_contents, :playlist_contents, :recommended_contents
|
10
|
+
|
11
|
+
def self.routes
|
12
|
+
@routes ||= {
|
13
|
+
content_metadata: Route::factory(name: 'getContentDetail', package: PACKAGE, verb: Route::Verbs::GET),
|
14
|
+
content_cuepoints: Route::factory(name: 'getCuePoints', package: PACKAGE, verb: Route::Verbs::GET),
|
15
|
+
downloadable_contents: Route::factory(name: 'getDownloadableContents', package: PACKAGE, verb: Route::Verbs::GET),
|
16
|
+
playlist_contents: Route::factory(name: 'getPlaylistContents', package: PACKAGE, verb: Route::Verbs::GET),
|
17
|
+
recommended_contents: Route::factory(name: 'getRecommendedContents', package: PACKAGE, verb: Route::Verbs::GET),
|
18
|
+
content_subtitles: Route::factory(name: 'getSubTitles', package: PACKAGE, verb: Route::Verbs::GET, accept: Route::Types::PLAIN),
|
19
|
+
content_thumbnail: Route::lazy_factory(name: 'getThumbnail', package: PACKAGE, verb: Route::Verbs::GET)
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def content_metadata(options = {})
|
24
|
+
content_id = options[:content_id]
|
25
|
+
criteria = options.fetch(:criteria) { {} }
|
26
|
+
query = {
|
27
|
+
clientId: client_id,
|
28
|
+
xcontentId: content_id
|
29
|
+
}.merge!(criteria)
|
30
|
+
route(to: __callee__, query: query, token_id: token_id) do |response|
|
31
|
+
response.body = Entity::Base::factory(response.body)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def content_cuepoints(options = {})
|
36
|
+
content_id = options[:content_id]
|
37
|
+
criteria = options.fetch(:criteria) { {} }
|
38
|
+
offset = options[:offset].to_i
|
39
|
+
limit = options[:limit].to_i
|
40
|
+
query = {
|
41
|
+
clientId: client_id,
|
42
|
+
xcontentId: content_id,
|
43
|
+
offset: offset,
|
44
|
+
numberOfResult: limit
|
45
|
+
}.merge!(criteria)
|
46
|
+
route(to: __callee__, query: query, token_id: token_id) do |response|
|
47
|
+
response.body = Entity::Base::factory(response.body.fetch('cuePoints') { [] })
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def downloadable_contents(options = {})
|
52
|
+
content_id = options[:content_id]
|
53
|
+
criteria = options.fetch(:criteria) { {} }
|
54
|
+
offset = options[:offset].to_i
|
55
|
+
limit = options[:limit].to_i
|
56
|
+
query = {
|
57
|
+
clientId: client_id,
|
58
|
+
xcontentId: content_id,
|
59
|
+
offset: offset,
|
60
|
+
numberOfResult: limit
|
61
|
+
}.merge!(criteria)
|
62
|
+
route(to: __callee__, query: query, token_id: token_id) do |response|
|
63
|
+
response.body = Entity::Base::factory(response.body.fetch('contents') { [] })
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def playlist_contents(options = {})
|
68
|
+
content_id = options[:content_id]
|
69
|
+
criteria = options.fetch(:criteria) { {} }
|
70
|
+
offset = options[:offset].to_i
|
71
|
+
limit = options[:limit].to_i
|
72
|
+
query = {
|
73
|
+
clientId: client_id,
|
74
|
+
xcontentId: content_id,
|
75
|
+
offset: offset,
|
76
|
+
numberOfResult: limit
|
77
|
+
}.merge!(criteria)
|
78
|
+
route(to: __callee__, query: query, token_id: token_id) do |response|
|
79
|
+
response.body = Entity::Base::factory(response.body.fetch('contents') { [] })
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def recommended_contents(options = {})
|
84
|
+
content_id = options[:content_id]
|
85
|
+
pkey = options[:pkey]
|
86
|
+
criteria = options.fetch(:criteria) { { admin: true } }
|
87
|
+
offset = options[:offset].to_i
|
88
|
+
limit = options[:limit].to_i
|
89
|
+
query = {
|
90
|
+
clientId: client_id,
|
91
|
+
xcontentId: content_id,
|
92
|
+
pkey: pkey,
|
93
|
+
offset: offset,
|
94
|
+
numberOfResult: limit
|
95
|
+
}.merge!(criteria)
|
96
|
+
route(to: __callee__, query: query, token_id: token_id) do |response|
|
97
|
+
response.body = Entity::Base::factory(response.body.fetch('contents') { [] })
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def content_subtitles(options = {})
|
102
|
+
content_id = options[:content_id]
|
103
|
+
locale = options[:locale]
|
104
|
+
criteria = options.fetch(:criteria) { {} }
|
105
|
+
query = {
|
106
|
+
clientId: client_id,
|
107
|
+
xcontentId: content_id,
|
108
|
+
locale: locale
|
109
|
+
}.merge!(criteria)
|
110
|
+
route(to: __callee__, query: query, token_id: token_id)
|
111
|
+
end
|
112
|
+
|
113
|
+
def content_thumbnail(options = {})
|
114
|
+
content_id = options[:content_id]
|
115
|
+
div_area = options[:div_area]
|
116
|
+
route(to: __callee__, token_id: token_id, params: [client_id, div_area, content_id]) do |response|
|
117
|
+
response.body = Entity::Base::factory(response.body)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'thron/gateway/session'
|
2
|
+
|
3
|
+
module Thron
|
4
|
+
module Gateway
|
5
|
+
class Device < Session
|
6
|
+
|
7
|
+
base_uri "#{Config::thron::protocol}://#{Config::thron::client_id}-device.thron.com/api"
|
8
|
+
|
9
|
+
PACKAGE = Package.new(:xdevice, :resources, self.service_name)
|
10
|
+
|
11
|
+
def self.routes
|
12
|
+
@routes ||= {
|
13
|
+
connect_device: Route::factory(name: 'connect', package: PACKAGE),
|
14
|
+
disconnect_device: Route::factory(name: 'disconnect', package: PACKAGE),
|
15
|
+
get_device: Route::factory(name: 'get', package: PACKAGE, verb: Route::Verbs::GET, params: [client_id])
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def connect_device(options = {})
|
20
|
+
device_id = options[:device_id]
|
21
|
+
ik = options[:ik]
|
22
|
+
contact_name = options[:contact_name]
|
23
|
+
body = {
|
24
|
+
clientId: client_id,
|
25
|
+
deviceId: device_id,
|
26
|
+
ik: ik,
|
27
|
+
contactName: contact_name
|
28
|
+
}
|
29
|
+
route(to: __callee__, body: body, token_id: token_id) do |response|
|
30
|
+
response.body = Entity::Base::factory(response.body)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def disconnect_device(options = {})
|
35
|
+
device_id = options[:device_id]
|
36
|
+
contact_id = options[:contact_id]
|
37
|
+
body = {
|
38
|
+
clientId: client_id,
|
39
|
+
deviceId: device_id,
|
40
|
+
contactId: contact_id
|
41
|
+
}
|
42
|
+
route(to: __callee__, body: body, token_id: token_id) do |response|
|
43
|
+
response.body = Entity::Base::factory(response.body)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def get_device(options = {})
|
48
|
+
device_id = options[:device_id]
|
49
|
+
query = {
|
50
|
+
deviceId: device_id,
|
51
|
+
}
|
52
|
+
route(to: __callee__, query: query, token_id: token_id) do |response|
|
53
|
+
response.body = Entity::Base::factory(response.body)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'thron/gateway/session'
|
2
|
+
|
3
|
+
module Thron
|
4
|
+
module Gateway
|
5
|
+
class Metadata < Session
|
6
|
+
|
7
|
+
PACKAGE = Package.new(:xcontents, :resources, self.service_name)
|
8
|
+
|
9
|
+
def self.routes
|
10
|
+
@routes ||= {
|
11
|
+
insert_metadata: Route::factory(name: 'insertMetadata', package: PACKAGE),
|
12
|
+
remove_all_metadata: Route::factory(name: 'removeAllMetadata', package: PACKAGE),
|
13
|
+
remove_metadata: Route::factory(name: 'removeMetadata', package: PACKAGE),
|
14
|
+
update_metadata: Route::factory(name: 'updateMetadata', package: PACKAGE),
|
15
|
+
update_single_metadata: Route::factory(name: 'updateSingleMetadata', package: PACKAGE)
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def insert_metadata(options = {})
|
20
|
+
content_id = options[:content_id]
|
21
|
+
data = options[:data]
|
22
|
+
category_id = options[:category_id]
|
23
|
+
body = {
|
24
|
+
client: { clientId: client_id },
|
25
|
+
contentId: content_id,
|
26
|
+
metadata: data,
|
27
|
+
categoryIdForAcl: category_id
|
28
|
+
}
|
29
|
+
route(to: __callee__, body: body, token_id: token_id)
|
30
|
+
end
|
31
|
+
|
32
|
+
def remove_all_metadata(options = {})
|
33
|
+
content_id = options[:content_id]
|
34
|
+
body = {
|
35
|
+
clientId: client_id,
|
36
|
+
contentId: content_id
|
37
|
+
}
|
38
|
+
route(to: __callee__, body: body, token_id: token_id)
|
39
|
+
end
|
40
|
+
|
41
|
+
def update_metadata(options = {})
|
42
|
+
content_id = options[:content_id]
|
43
|
+
data_list = options[:data_list]
|
44
|
+
category_id = options[:category_id]
|
45
|
+
body = {
|
46
|
+
clientId: client_id,
|
47
|
+
contentId: content_id,
|
48
|
+
metadata: { metadata: data_list },
|
49
|
+
categoryIdForAcl: category_id
|
50
|
+
}
|
51
|
+
route(to: __callee__, body: body, token_id: token_id)
|
52
|
+
end
|
53
|
+
|
54
|
+
%w[remove update_single].each do |action|
|
55
|
+
define_method("#{action}_metadata") do |options|
|
56
|
+
content_id = options[:content_id]
|
57
|
+
data = options[:data]
|
58
|
+
body = {
|
59
|
+
clientId: client_id,
|
60
|
+
contentId: content_id,
|
61
|
+
metadata: data
|
62
|
+
}
|
63
|
+
route(to: __callee__, body: body, token_id: token_id)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'thron/gateway/session'
|
2
|
+
|
3
|
+
module Thron
|
4
|
+
module Gateway
|
5
|
+
class PublishInWeeboExpress < Session
|
6
|
+
|
7
|
+
PACKAGE = Package.new(:xadmin, :resources, self.service_name)
|
8
|
+
|
9
|
+
def self.routes
|
10
|
+
@routes ||= {
|
11
|
+
publish_audio: Route::factory(name: 'publishAudio', package: PACKAGE),
|
12
|
+
publish_content_in_channels: Route::factory(name: 'publishContentInChannels', package: PACKAGE),
|
13
|
+
publish_document: Route::factory(name: 'publishDocument', package: PACKAGE),
|
14
|
+
publish_image: Route::factory(name: 'publishImage', package: PACKAGE),
|
15
|
+
publish_live_event: Route::factory(name: 'publishLiveEvent', package: PACKAGE),
|
16
|
+
publish_pagelet: Route::factory(name: 'publishPagelet', package: PACKAGE),
|
17
|
+
publish_playlist: Route::factory(name: 'publishPlayList', package: PACKAGE),
|
18
|
+
publish_program: Route::factory(name: 'publishProgram', package: PACKAGE),
|
19
|
+
publish_video: Route::factory(name: 'publishVideo', package: PACKAGE),
|
20
|
+
upload_and_publish: Route::factory(name: 'uploadAndPublish', package: PACKAGE)
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
self.routes.keys.each do |message|
|
25
|
+
define_method(message) do |options|
|
26
|
+
data = options[:data]
|
27
|
+
body = {
|
28
|
+
clientId: client_id,
|
29
|
+
param: data
|
30
|
+
}
|
31
|
+
route(to: message, body: body, token_id: token_id) do |response|
|
32
|
+
response.extra(attribute: 'actionsInError')
|
33
|
+
response.body = Entity::Base::factory(response.body.fetch('content') { {} })
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|