goncalossilva_kaltura-ruby 0.4.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.
- data/.document +5 -0
- data/.gitignore +7 -0
- data/LICENSE +661 -0
- data/README.markdown +56 -0
- data/README.rdoc +54 -0
- data/Rakefile +61 -0
- data/VERSION +1 -0
- data/VERSION.yml +5 -0
- data/goncalossilva_kaltura-ruby.gemspec +179 -0
- data/lib/kaltura.rb +19 -0
- data/lib/kaltura/constants.rb +77 -0
- data/lib/kaltura/constants/access_control_order_by.rb +14 -0
- data/lib/kaltura/constants/audio_codec.rb +16 -0
- data/lib/kaltura/constants/base.rb +61 -0
- data/lib/kaltura/constants/batch_job.rb +87 -0
- data/lib/kaltura/constants/bit_rate_mode.rb +14 -0
- data/lib/kaltura/constants/category_order_by.rb +18 -0
- data/lib/kaltura/constants/commercial_use_type.rb +14 -0
- data/lib/kaltura/constants/container_format.rb +21 -0
- data/lib/kaltura/constants/control_panel_command.rb +49 -0
- data/lib/kaltura/constants/conversion_profile_order_by.rb +14 -0
- data/lib/kaltura/constants/country_restriction_type.rb +16 -0
- data/lib/kaltura/constants/data_entry_order_by.rb +20 -0
- data/lib/kaltura/constants/directory_restriction_type.rb +14 -0
- data/lib/kaltura/constants/document.rb +39 -0
- data/lib/kaltura/constants/duration_type.rb +16 -0
- data/lib/kaltura/constants/editor_type.rb +14 -0
- data/lib/kaltura/constants/email_ingestion_profile_status.rb +14 -0
- data/lib/kaltura/constants/entry.rb +59 -0
- data/lib/kaltura/constants/file_sync.rb +67 -0
- data/lib/kaltura/constants/flavor_asset_status.rb +18 -0
- data/lib/kaltura/constants/gender.rb +15 -0
- data/lib/kaltura/constants/google_syndication_feed.rb +39 -0
- data/lib/kaltura/constants/i_tunes_syndication_feed.rb +42 -0
- data/lib/kaltura/constants/i_tunes_syndication_feed/categories.rb +82 -0
- data/lib/kaltura/constants/license_type.rb +29 -0
- data/lib/kaltura/constants/live_stream_admin_entry_order_by.rb +31 -0
- data/lib/kaltura/constants/mail_job_order_by.rb +16 -0
- data/lib/kaltura/constants/media.rb +55 -0
- data/lib/kaltura/constants/mix_entry_order_by.rb +28 -0
- data/lib/kaltura/constants/moderation.rb +34 -0
- data/lib/kaltura/constants/notification.rb +43 -0
- data/lib/kaltura/constants/nullable_boolean.rb +14 -0
- data/lib/kaltura/constants/partner.rb +64 -0
- data/lib/kaltura/constants/playable_entry_order_by.rb +28 -0
- data/lib/kaltura/constants/playlist.rb +35 -0
- data/lib/kaltura/constants/report_type.rb +24 -0
- data/lib/kaltura/constants/search_provider_type.rb +29 -0
- data/lib/kaltura/constants/session_type.rb +14 -0
- data/lib/kaltura/constants/site_restriction_type.rb +14 -0
- data/lib/kaltura/constants/source_type.rb +17 -0
- data/lib/kaltura/constants/stats.rb +49 -0
- data/lib/kaltura/constants/stats/kmc_event_type.rb +77 -0
- data/lib/kaltura/constants/syndication_feed.rb +37 -0
- data/lib/kaltura/constants/system_user.rb +17 -0
- data/lib/kaltura/constants/tube_mogul_syndication_feed.rb +34 -0
- data/lib/kaltura/constants/ui_conf.rb +26 -0
- data/lib/kaltura/constants/upload_error_code.rb +9 -0
- data/lib/kaltura/constants/user.rb +16 -0
- data/lib/kaltura/constants/video_codec.rb +16 -0
- data/lib/kaltura/constants/widget.rb +15 -0
- data/lib/kaltura/constants/yahoo_syndication_feed.rb +44 -0
- data/lib/kaltura/filter.rb +75 -0
- data/lib/kaltura/filter/access_control_filter.rb +20 -0
- data/lib/kaltura/filter/base_entry_filter.rb +115 -0
- data/lib/kaltura/filter/base_filter.rb +7 -0
- data/lib/kaltura/filter/base_job_filter.rb +28 -0
- data/lib/kaltura/filter/batch_job_filter.rb +54 -0
- data/lib/kaltura/filter/category_filter.rb +23 -0
- data/lib/kaltura/filter/control_panel_command_filter.rb +39 -0
- data/lib/kaltura/filter/conversion_profile_filter.rb +12 -0
- data/lib/kaltura/filter/document_entry_filter.rb +12 -0
- data/lib/kaltura/filter/file_sync_filter.rb +93 -0
- data/lib/kaltura/filter/flavor_params_filter.rb +11 -0
- data/lib/kaltura/filter/flavor_params_output_filter.rb +14 -0
- data/lib/kaltura/filter/media_entry_filter.rb +22 -0
- data/lib/kaltura/filter/media_entry_filter_for_playlist.rb +11 -0
- data/lib/kaltura/filter/partner_filter.rb +22 -0
- data/lib/kaltura/filter/playable_entry_filter.rb +40 -0
- data/lib/kaltura/filter/report_input_filter.rb +25 -0
- data/lib/kaltura/filter/system_partner_usage_filter.rb +15 -0
- data/lib/kaltura/filter/ui_conf_filter.rb +40 -0
- data/lib/kaltura/filter/user_filter.rb +27 -0
- data/lib/kaltura/filter/widget_filter.rb +37 -0
- data/lib/kaltura/kaltura_client.rb +1762 -0
- data/lib/kaltura/kaltura_client_base.rb +300 -0
- data/lib/kaltura/response.rb +112 -0
- data/lib/kaltura/service.rb +142 -0
- data/lib/kaltura/service/access_control_service.rb +110 -0
- data/lib/kaltura/service/admin_user_service.rb +69 -0
- data/lib/kaltura/service/base_entry_service.rb +331 -0
- data/lib/kaltura/service/base_service.rb +42 -0
- data/lib/kaltura/service/bulk_upload_service.rb +75 -0
- data/lib/kaltura/service/category_service.rb +112 -0
- data/lib/kaltura/service/conversion_profile_service.rb +116 -0
- data/lib/kaltura/service/data_service.rb +116 -0
- data/lib/kaltura/service/email_ingestion_profile_service.rb +122 -0
- data/lib/kaltura/service/flavor_asset_service.rb +155 -0
- data/lib/kaltura/service/flavor_params_service.rb +111 -0
- data/lib/kaltura/service/live_stream_service.rb +140 -0
- data/lib/kaltura/service/media_service.rb +546 -0
- data/lib/kaltura/service/mixing_service.rb +86 -0
- data/lib/kaltura/service/notification_service.rb +13 -0
- data/lib/kaltura/service/partner_service.rb +41 -0
- data/lib/kaltura/service/playlist_service.rb +73 -0
- data/lib/kaltura/service/report_service.rb +47 -0
- data/lib/kaltura/service/search_service.rb +34 -0
- data/lib/kaltura/service/session_service.rb +24 -0
- data/lib/kaltura/service/stats_service.rb +24 -0
- data/lib/kaltura/service/syndication_feed_service.rb +50 -0
- data/lib/kaltura/service/system_partner_service.rb +58 -0
- data/lib/kaltura/service/system_service.rb +11 -0
- data/lib/kaltura/service/system_user_service.rb +63 -0
- data/lib/kaltura/service/ui_conf_service.rb +51 -0
- data/lib/kaltura/service/upload_service.rb +18 -0
- data/lib/kaltura/service/user_service.rb +44 -0
- data/lib/kaltura/service/widget_service.rb +38 -0
- data/lib/kaltura/service/x_internal_service.rb +13 -0
- data/test/kaltura-ruby_test.rb +7 -0
- data/test/test.rb +23 -0
- data/test/test_2.rb +26 -0
- data/test/test_error.rb +14 -0
- data/test/test_helper.rb +10 -0
- metadata +222 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
module Kaltura
|
|
2
|
+
class ClientBase
|
|
3
|
+
attr_accessor :config
|
|
4
|
+
attr_accessor :ks
|
|
5
|
+
attr_reader :is_multirequest
|
|
6
|
+
|
|
7
|
+
def initialize(config)
|
|
8
|
+
@should_log = false
|
|
9
|
+
@config = config
|
|
10
|
+
@calls_queue = []
|
|
11
|
+
|
|
12
|
+
if @config.logger != nil
|
|
13
|
+
@should_log = true
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def queue_service_action_call(service, action, params = {})
|
|
18
|
+
# in start session partner id is optional (default -1). if partner id was not set, use the one in the config
|
|
19
|
+
if (!params.key?('partnerId') || params['partnerId'] == -1)
|
|
20
|
+
params['partnerId'] = config.partner_id;
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
add_param(params, 'ks', @ks);
|
|
24
|
+
|
|
25
|
+
call = ServiceActionCall.new(service, action, params);
|
|
26
|
+
@calls_queue.push(call);
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def do_queue()
|
|
30
|
+
start_time = Time.now
|
|
31
|
+
|
|
32
|
+
if @calls_queue.length == 0
|
|
33
|
+
@is_multirequest = false
|
|
34
|
+
return nil
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
log('service url: [' + @config.service_url + ']')
|
|
38
|
+
# append the basic params
|
|
39
|
+
params = {}
|
|
40
|
+
add_param(params, "format", @config.format)
|
|
41
|
+
add_param(params, "clientTag", @config.client_tag)
|
|
42
|
+
|
|
43
|
+
url = @config.service_url+"/api_v3/index.php?service="
|
|
44
|
+
if (@is_multirequest)
|
|
45
|
+
url += "multirequest"
|
|
46
|
+
i = 1
|
|
47
|
+
@calls_queue.each_value do |call|
|
|
48
|
+
call_params = call.get_params_for_multirequest(i.next)
|
|
49
|
+
params.merge!(call_params)
|
|
50
|
+
end
|
|
51
|
+
else
|
|
52
|
+
call = @calls_queue[0]
|
|
53
|
+
url += call.service + "&action=" + call.action
|
|
54
|
+
params.merge!(call.params)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# reset
|
|
58
|
+
@calls_queue = []
|
|
59
|
+
@is_multirequest = false
|
|
60
|
+
|
|
61
|
+
signature = signature(params)
|
|
62
|
+
add_param(params, "kalsig", signature)
|
|
63
|
+
|
|
64
|
+
log("url: " + url)
|
|
65
|
+
log("params: " + params.to_yaml)
|
|
66
|
+
result = do_http_request(url, params)
|
|
67
|
+
|
|
68
|
+
result_object = parse_to_objects(result.body)
|
|
69
|
+
|
|
70
|
+
log("result (object yaml dump): " + result_object.to_yaml)
|
|
71
|
+
|
|
72
|
+
end_time = Time.now
|
|
73
|
+
log("execution time for [#{url}]: [#{end_time - start_time}]")
|
|
74
|
+
|
|
75
|
+
return result_object
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def do_http_request(url, params)
|
|
79
|
+
res = RestClient.post url , params
|
|
80
|
+
return res
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def parse_to_objects(data)
|
|
84
|
+
parse_xml_to_objects(data)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def parse_xml_to_objects(xml)
|
|
88
|
+
doc = REXML::Document.new(xml)
|
|
89
|
+
raise_exception_if_error(doc)
|
|
90
|
+
doc.elements.each('xml/result') do | element |
|
|
91
|
+
return ClassFactory.object_from_xml(element)
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def raise_exception_if_error(doc)
|
|
96
|
+
if is_error(doc)
|
|
97
|
+
code = doc.elements["xml/result/error/code"].text
|
|
98
|
+
message = doc.elements["xml/result/error/message"].text
|
|
99
|
+
raise APIError.new(code,message)
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def is_error(doc)
|
|
104
|
+
doc.elements["xml/result/error/message"] && doc.elements["xml/result/error/code"]
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def start_multirequest()
|
|
108
|
+
@is_multirequest = true
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def do_multirequest()
|
|
112
|
+
return do_queue()
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def signature(params)
|
|
116
|
+
str = params.keys.map {|key| key.to_s }.sort.map {|key|
|
|
117
|
+
"#{escape(key)}#{escape(params[key])}"
|
|
118
|
+
}.join("")
|
|
119
|
+
|
|
120
|
+
Digest::MD5.hexdigest(str)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def add_param(params, name, value)
|
|
124
|
+
if value == nil
|
|
125
|
+
return
|
|
126
|
+
elsif value.is_a? Hash
|
|
127
|
+
value.each do |sub_name, sub_value|
|
|
128
|
+
add_param(params, "#{name}:#{sub_name}", sub_value);
|
|
129
|
+
end
|
|
130
|
+
elsif value.is_a? ObjectBase
|
|
131
|
+
add_param(params, name, value.to_params)
|
|
132
|
+
else
|
|
133
|
+
params[name] = value
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# Escapes a query parameter. Stolen from RFuzz
|
|
138
|
+
def escape(s)
|
|
139
|
+
s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
|
|
140
|
+
'%' + $1.unpack('H2'*$1.size).join('%').upcase
|
|
141
|
+
}.tr(' ', '+')
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def log(msg)
|
|
145
|
+
if @should_log
|
|
146
|
+
config.logger.log(msg)
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
class ServiceActionCall
|
|
152
|
+
attr_accessor :service
|
|
153
|
+
attr_accessor :action
|
|
154
|
+
attr_accessor :params
|
|
155
|
+
|
|
156
|
+
def initialize(service, action, params = array())
|
|
157
|
+
@service = service
|
|
158
|
+
@action = action
|
|
159
|
+
@params = parse_params(params)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def parse_params(params)
|
|
163
|
+
new_params = {}
|
|
164
|
+
params.each do |key, val|
|
|
165
|
+
if val.kind_of? Hash
|
|
166
|
+
new_params[key] = parse_params(val)
|
|
167
|
+
else
|
|
168
|
+
new_params[key] = val
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
return new_params
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def get_params_for_multirequest(multirequest_index)
|
|
175
|
+
multirequest_params = {}
|
|
176
|
+
multirequest_params[multirequest_index+":service"] = @service
|
|
177
|
+
multirequest_params[multirequest_index+":action"] = @action
|
|
178
|
+
@params.each do |key|
|
|
179
|
+
multirequest_params[multirequest_index+":"+key] = @params[key]
|
|
180
|
+
end
|
|
181
|
+
return multirequest_params
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
class ObjectBase
|
|
186
|
+
attr_accessor :object_type
|
|
187
|
+
|
|
188
|
+
def to_params
|
|
189
|
+
params = {};
|
|
190
|
+
params["objectType"] = self.class.name.split('::').last
|
|
191
|
+
instance_variables.each do |var|
|
|
192
|
+
value = instance_variable_get(var)
|
|
193
|
+
var = var.to_s.sub('@', '')
|
|
194
|
+
kvar = camelcase(var)
|
|
195
|
+
if (value != nil)
|
|
196
|
+
if (value.is_a? ObjectBase)
|
|
197
|
+
params[kvar] = value.to_params;
|
|
198
|
+
else
|
|
199
|
+
params[kvar] = value;
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
return params;
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def to_b(val)
|
|
207
|
+
return [true, 'true', 1, '1'].include?(val.is_a?(String) ? val.downcase : val)
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def camelcase(val)
|
|
211
|
+
val = val.split('_').map { |e| e.capitalize }.join()
|
|
212
|
+
val[0,1].downcase + val[1,val.length]
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
class Configuration
|
|
217
|
+
attr_accessor :logger
|
|
218
|
+
attr_accessor :service_url
|
|
219
|
+
attr_accessor :format
|
|
220
|
+
attr_accessor :client_tag
|
|
221
|
+
attr_accessor :timeout
|
|
222
|
+
attr_accessor :partner_id
|
|
223
|
+
|
|
224
|
+
def initialize(partner_id = -1)
|
|
225
|
+
@service_url = "http://www.kaltura.com"
|
|
226
|
+
@format = 2 # xml
|
|
227
|
+
@client_tag = "ruby"
|
|
228
|
+
@timeout = 10
|
|
229
|
+
@partner_id = partner_id
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
def service_url=(url)
|
|
233
|
+
@service_url = url.chomp('/')
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
class ClassFactory
|
|
238
|
+
def self.object_from_xml(xml_element)
|
|
239
|
+
instance = nil
|
|
240
|
+
if xml_element.elements.size > 0
|
|
241
|
+
if xml_element.elements[1].name == 'item' # array
|
|
242
|
+
instance = []
|
|
243
|
+
xml_element.elements.each('item') do | element |
|
|
244
|
+
instance.push(ClassFactory.object_from_xml(element))
|
|
245
|
+
end
|
|
246
|
+
else # object
|
|
247
|
+
object_type_element = xml_element.get_text('objectType')
|
|
248
|
+
if (object_type_element != nil)
|
|
249
|
+
object_class = xml_element.get_text('objectType').value
|
|
250
|
+
instance = ClassFactory.set_instance(object_class)
|
|
251
|
+
xml_element.elements.each do | element |
|
|
252
|
+
value = ClassFactory.object_from_xml(element)
|
|
253
|
+
instance.send(self.underscore(element.name) + "=", value);
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
else # simple type
|
|
258
|
+
return xml_element.text
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
return instance;
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
def self.underscore(val)
|
|
265
|
+
val.gsub(/(.)([A-Z])/,'\1_\2').downcase
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
def self.set_instance(object_request_class)
|
|
269
|
+
string_object_class = object_request_class.to_s
|
|
270
|
+
instance = nil
|
|
271
|
+
stripped_request = ClassFactory.strip_kaltura_from_request(string_object_class)
|
|
272
|
+
instance = Module.const_get("Kaltura")
|
|
273
|
+
unless ClassFactory.request_is_response?(string_object_class)
|
|
274
|
+
instance = instance.const_get("Response").const_get(stripped_request).new
|
|
275
|
+
else
|
|
276
|
+
instance = instance.const_get(stripped_request).new
|
|
277
|
+
end
|
|
278
|
+
instance
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
def self.strip_kaltura_from_request(request)
|
|
282
|
+
request.gsub("Kaltura","")
|
|
283
|
+
end
|
|
284
|
+
def self.request_is_response?(request)
|
|
285
|
+
request_array = []
|
|
286
|
+
request_array << request
|
|
287
|
+
request_array == request.split("Response",0)
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
class APIError < RuntimeError
|
|
292
|
+
attr_reader :code
|
|
293
|
+
attr_reader :message
|
|
294
|
+
|
|
295
|
+
def initialize(code,message)
|
|
296
|
+
@code = code
|
|
297
|
+
@message = message
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
end
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
module Kaltura
|
|
2
|
+
module Response
|
|
3
|
+
|
|
4
|
+
class BaseResponse < ObjectBase
|
|
5
|
+
attr_accessor :objects
|
|
6
|
+
attr_accessor :total_count
|
|
7
|
+
|
|
8
|
+
def total_count=(val)
|
|
9
|
+
@total_count = val.to_i
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class AccessControlListResponse < BaseResponse
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class BaseEntryListResponse < BaseResponse
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class ModerationFlagListResponse < BaseResponse
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class BulkUploadListResponse < BaseResponse
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class CategoryListResponse < BaseResponse
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class ConversionProfileListResponse < BaseResponse
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class DataListResponse < BaseResponse
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class FlavorParamsListResponse < BaseResponse
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
class LiveStreamListResponse < BaseResponse
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class MediaListResponse < BaseResponse
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class MixListResponse < BaseResponse
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class PlaylistListResponse < BaseResponse
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class SearchResultResponse < ObjectBase
|
|
50
|
+
attr_accessor :objects
|
|
51
|
+
attr_accessor :need_media_info
|
|
52
|
+
|
|
53
|
+
def need_media_info=(val)
|
|
54
|
+
@need_media_info = to_b(val)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
class StartWidgetSessionResponse < ObjectBase
|
|
59
|
+
attr_accessor :partner_id
|
|
60
|
+
attr_accessor :ks
|
|
61
|
+
attr_accessor :user_id
|
|
62
|
+
|
|
63
|
+
def partner_id=(val)
|
|
64
|
+
@partner_id = val.to_i
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
class BaseSyndicationFeedListResponse < BaseResponse
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class UiConfListResponse < BaseResponse
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
class UploadResponse < ObjectBase
|
|
75
|
+
attr_accessor :upload_token_id
|
|
76
|
+
attr_accessor :file_size
|
|
77
|
+
attr_accessor :error_code
|
|
78
|
+
attr_accessor :error_description
|
|
79
|
+
|
|
80
|
+
def file_size=(val)
|
|
81
|
+
@file_size = val.to_i
|
|
82
|
+
end
|
|
83
|
+
def error_code=(val)
|
|
84
|
+
@error_code = val.to_i
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
class UserListResponse < BaseResponse
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
class WidgetListResponse < BaseResponse
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
class SystemUserListResponse < BaseResponse
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
class SystemPartnerUsageListResponse < BaseResponse
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
class PartnerListResponse < BaseResponse
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
class FileSyncListResponse < BaseResponse
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
class FlavorParamsOutputListResponse < BaseResponse
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
class MediaInfoListResponse < BaseResponse
|
|
110
|
+
end
|
|
111
|
+
end #module Response
|
|
112
|
+
end #module Kaltura
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
require 'kaltura/service/base_service'
|
|
2
|
+
|
|
3
|
+
require 'kaltura/service/access_control_service'
|
|
4
|
+
require 'kaltura/service/admin_user_service'
|
|
5
|
+
require 'kaltura/service/base_entry_service'
|
|
6
|
+
require 'kaltura/service/bulk_upload_service'
|
|
7
|
+
require 'kaltura/service/category_service'
|
|
8
|
+
require 'kaltura/service/conversion_profile_service'
|
|
9
|
+
require 'kaltura/service/data_service'
|
|
10
|
+
require 'kaltura/service/email_ingestion_profile_service'
|
|
11
|
+
require 'kaltura/service/flavor_asset_service'
|
|
12
|
+
require 'kaltura/service/flavor_params_service'
|
|
13
|
+
require 'kaltura/service/live_stream_service'
|
|
14
|
+
require 'kaltura/service/media_service'
|
|
15
|
+
require 'kaltura/service/mixing_service'
|
|
16
|
+
require 'kaltura/service/notification_service'
|
|
17
|
+
require 'kaltura/service/partner_service'
|
|
18
|
+
require 'kaltura/service/playlist_service'
|
|
19
|
+
require 'kaltura/service/report_service'
|
|
20
|
+
require 'kaltura/service/search_service'
|
|
21
|
+
require 'kaltura/service/session_service'
|
|
22
|
+
require 'kaltura/service/stats_service'
|
|
23
|
+
require 'kaltura/service/syndication_feed_service'
|
|
24
|
+
require 'kaltura/service/system_service'
|
|
25
|
+
require 'kaltura/service/ui_conf_service'
|
|
26
|
+
require 'kaltura/service/upload_service'
|
|
27
|
+
require 'kaltura/service/user_service'
|
|
28
|
+
require 'kaltura/service/widget_service'
|
|
29
|
+
require 'kaltura/service/x_internal_service'
|
|
30
|
+
require 'kaltura/service/system_user_service'
|
|
31
|
+
require 'kaltura/service/system_partner_service'
|
|
32
|
+
|
|
33
|
+
module Kaltura
|
|
34
|
+
##
|
|
35
|
+
# The service module provides instance methods to the Kaltura::Client class. This is the bulk of API actions.
|
|
36
|
+
##
|
|
37
|
+
module Service
|
|
38
|
+
|
|
39
|
+
##
|
|
40
|
+
# FileSyncService is a system user service.
|
|
41
|
+
#
|
|
42
|
+
# @example List up to 100 file sync objects with an error status:
|
|
43
|
+
# client = Kaltura::Client.new
|
|
44
|
+
# filter = Kaltura::Filter::FileSyncFilter.new
|
|
45
|
+
# filter.status_equal = Kaltura::Constants::FileSync::Status::ERROR
|
|
46
|
+
# pager = Kaltura::FilterPager.new
|
|
47
|
+
# pager.page_size = 100
|
|
48
|
+
# client.file_sync_service.list(filter,pager)
|
|
49
|
+
#
|
|
50
|
+
##
|
|
51
|
+
class FileSyncService < BaseService
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# Lists file sync objects by a filter and a pager.
|
|
55
|
+
#
|
|
56
|
+
# @param [Kaltura::Filter::FileSyncFilter] filter The filter to apply to the list.
|
|
57
|
+
# @param [Kaltura::FilterPager] pager The default pager to apply to large lists.
|
|
58
|
+
#
|
|
59
|
+
# @return [Kaltura::Response::FileSyncListResponse] FileSyncListResponse is equivalent to Kaltura::Response::BaseResponse
|
|
60
|
+
#
|
|
61
|
+
# @raise [Kaltura::APIError] raises default Kaltura errors.
|
|
62
|
+
##
|
|
63
|
+
def list(filter=nil, pager=nil)
|
|
64
|
+
kparams = {}
|
|
65
|
+
client.add_param(kparams, 'filter', filter)
|
|
66
|
+
client.add_param(kparams, 'pager', pager)
|
|
67
|
+
perform_request('fileSync','list',kparams,false)
|
|
68
|
+
end
|
|
69
|
+
end #class FileSyncService
|
|
70
|
+
|
|
71
|
+
##
|
|
72
|
+
# FlavorParamsOutputService is not documented by Kaltura. Probably best to not play with this.
|
|
73
|
+
# This is likely just used internally by the KMC.
|
|
74
|
+
##
|
|
75
|
+
class FlavorParamsOutputService < BaseService
|
|
76
|
+
|
|
77
|
+
##
|
|
78
|
+
# Lists file sync objects by a filter and a pager.
|
|
79
|
+
#
|
|
80
|
+
# @param [Kaltura::Filter::FlavorParamsOutputFilter] filter The filter to apply to the list action.
|
|
81
|
+
# @param [Kaltura::FilterPager] pager The default pager to apply to large lists.
|
|
82
|
+
#
|
|
83
|
+
# @return [Kaltura::Response::FlavorParamsOutputListResponse] This is equivalent to the BaseResponse class.
|
|
84
|
+
#
|
|
85
|
+
# @raise [Kaltura::APIError] raises default Kaltura errors.
|
|
86
|
+
##
|
|
87
|
+
def list(filter=nil, pager=nil)
|
|
88
|
+
kparams = {}
|
|
89
|
+
client.add_param(kparams, 'filter', filter)
|
|
90
|
+
client.add_param(kparams, 'pager', pager)
|
|
91
|
+
perform_request('flavorParamsOutput','list',kparams,false)
|
|
92
|
+
end
|
|
93
|
+
end #class FlavorParamsOutputService
|
|
94
|
+
|
|
95
|
+
##
|
|
96
|
+
# MediaInfoService is not documented by Kaltura. Probably best to not play with this.
|
|
97
|
+
# This is likely just used internally by the KMC.
|
|
98
|
+
##
|
|
99
|
+
class MediaInfoService < BaseService
|
|
100
|
+
##
|
|
101
|
+
# Lists media info objects by a filter and a pager.
|
|
102
|
+
#
|
|
103
|
+
# @param [Kaltura::Filter::MediaInfoFilter] filter The filter to apply to the list action.
|
|
104
|
+
# @param [Kaltura::FilterPager] pager The default pager to apply to large lists.
|
|
105
|
+
#
|
|
106
|
+
# @return [Kaltura::Response::MediaInfoListResponse] This is equivalent to the BaseResponse class.
|
|
107
|
+
#
|
|
108
|
+
# @raise [Kaltura::APIError] raises default Kaltura errors.
|
|
109
|
+
##
|
|
110
|
+
def list(filter=nil, pager=nil)
|
|
111
|
+
kparams = {}
|
|
112
|
+
client.add_param(kparams, 'filter', filter)
|
|
113
|
+
client.add_param(kparams, 'pager', pager)
|
|
114
|
+
perform_request('mediaInfo','list',kparams,false)
|
|
115
|
+
end
|
|
116
|
+
end #class MediaInfoService
|
|
117
|
+
|
|
118
|
+
##
|
|
119
|
+
# EntryAdminService is not documented by Kaltura. Probably best not to play with this.
|
|
120
|
+
# This is likely just used internally by the KMC.
|
|
121
|
+
##
|
|
122
|
+
class EntryAdminService < BaseService
|
|
123
|
+
|
|
124
|
+
##
|
|
125
|
+
# Gets an EntryAdmin object by entry_id.
|
|
126
|
+
#
|
|
127
|
+
# @param [String] entry_id Media entry id
|
|
128
|
+
# @param [Integer] version Desired version of the data.
|
|
129
|
+
#
|
|
130
|
+
# @return [Object] Not entirely sure what this returns.
|
|
131
|
+
#
|
|
132
|
+
# @raise [Kaltura::APIError] Raises default Kaltura errors.
|
|
133
|
+
##
|
|
134
|
+
def get(entry_id, version=-1)
|
|
135
|
+
kparams = {}
|
|
136
|
+
client.add_param(kparams, 'entryId', entry_id)
|
|
137
|
+
client.add_param(kparams, 'version', version)
|
|
138
|
+
perform_request('entryAdmin','get',kparams,false)
|
|
139
|
+
end
|
|
140
|
+
end #class EntryAdminService
|
|
141
|
+
end #module Service
|
|
142
|
+
end #module Kaltura
|