Class: AdobeMediaEncoder::API::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/adobe_media_encoder/api/client.rb

Defined Under Namespace

Classes: HTTPClient, XMLHelper

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = { }) ⇒ Client

Returns a new instance of Client.



175
176
177
178
# File 'lib/adobe_media_encoder/api/client.rb', line 175

def initialize(args = { })
  initialize_logger(args)
  @http = HTTPClient.new(args)
end

Instance Attribute Details

#httpObject

Returns the value of attribute http.



173
174
175
# File 'lib/adobe_media_encoder/api/client.rb', line 173

def http
  @http
end

Instance Method Details

#initialize_logger(args = { }) ⇒ Object



180
181
182
183
184
185
186
187
188
# File 'lib/adobe_media_encoder/api/client.rb', line 180

def initialize_logger(args = { })
  @logger = args[:logger] ||= Logger.new(args[:log_to] || STDOUT)
  log_level = args[:log_level]
  if log_level
    @logger.level = log_level
    args[:logger] = @logger
  end
  @logger
end

#job_abort(args = { }) ⇒ Object



212
213
214
215
216
# File 'lib/adobe_media_encoder/api/client.rb', line 212

def job_abort(args = { })
  args = normalize_args(args, :symbolize_keys => true, :downcase_keys => true)
  job_id = args[:id] || args[:job_id] || args[:jobid]
  http.delete("job#{job_id ? "?jobID=#{job_id}" : ''}")
end

#job_history(args = { }) ⇒ Object



218
219
220
221
222
# File 'lib/adobe_media_encoder/api/client.rb', line 218

def job_history(args = { })
  args = normalize_args(args, :symbolize_keys => true, :downcase_keys => true)
  max_completed_jobs = args[:jobs] || args[:maxcompletedjobs]
  http.get("history#{max_completed_jobs ? "?maxCompletedJobs=#{max_completed_jobs}" : ''}")
end

#job_status(args = { }) ⇒ Object



224
225
226
# File 'lib/adobe_media_encoder/api/client.rb', line 224

def job_status(args = { })
  http.get('job')
end

#job_submit(args = { }) ⇒ Object



228
229
230
231
232
# File 'lib/adobe_media_encoder/api/client.rb', line 228

def job_submit(args = { })
  args = normalize_args(args, :symbolize_keys => false, :camelize_keys => true)
  xml = XMLHelper.create_manifest(args)
  http.post('job', xml)
end

#normalize_args(args = { }, options = { }) ⇒ Object



190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# File 'lib/adobe_media_encoder/api/client.rb', line 190

def normalize_args(args = { }, options = { })
  case args
    when Array
      [*args].map { |a| normalize_args(a, options) } if normalize_args.is_a?(Array)
    when Hash
      symbolize_keys = options.fetch(:symbolize_keys, true)
      camelize_keys = options.fetch(:camelize_keys, false)
      uncapitalize_keys = options.fetch(:uncapitalize_keys, false)
      downcase_keys = options.fetch(:downcase_keys, false)
      Hash[args.map do |k, v|
             _k = k.dup rescue k
             _k = _k.to_s.camel_case if camelize_keys rescue _k
             _k = _k.to_s.uncapitalize if uncapitalize_keys rescue _k
             _k = _k.to_s.downcase if downcase_keys rescue _k
             _k = symbolize_keys ? _k.to_sym : _k.to_s rescue _k
             [_k, v ]
           end]
    else
      args
  end
end

#server_kill(args = { }) ⇒ Object



234
235
236
# File 'lib/adobe_media_encoder/api/client.rb', line 234

def server_kill(args = { })
  http.delete('server')
end

#server_restart(args = { }) ⇒ Object



238
239
240
# File 'lib/adobe_media_encoder/api/client.rb', line 238

def server_restart(args = { })
  http.post('server')
end

#server_status(args = { }) ⇒ Object



242
243
244
# File 'lib/adobe_media_encoder/api/client.rb', line 242

def server_status(args = { })
  http.get('server')
end