Class: Verbalizeit::Client

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key, environement) ⇒ Client

Returns a new instance of Client.



8
9
10
11
12
# File 'lib/verbalizeit/client.rb', line 8

def initialize(api_key, environement)
  @api_key = api_key
  @environment = environement
  @languages = fetch_languages
end

Instance Attribute Details

#languagesObject (readonly)

Returns the value of attribute languages.



6
7
8
# File 'lib/verbalizeit/client.rb', line 6

def languages
  @languages
end

Instance Method Details

#create_task(source_language, target_language, operation, options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/verbalizeit/client.rb', line 14

def create_task(source_language, target_language, operation, options = {})
  body = {
    source_language: source_language,
    target_language: target_language,
    operation: operation,
    file: options[:file],
    media_resource_url: options[:media_resource_url],
    start: "#{options[:start]}",
    rush_order: "#{options[:rush_order]}",
    postback_url: options[:postback_url],
    status_url: options[:status_url]
  }

  response = Typhoeus.post(tasks_url, body: body, headers: authorization_header)

  if response.code == 200
    Task.from(parse_body(response.body), self)
  elsif response.code == 400
    raise Error::BadRequest, format_errors(response.body)
  elsif response.code == 401
    raise Error::Unauthorized
  end
end

#get_task(id) ⇒ Object



53
54
55
56
57
# File 'lib/verbalizeit/client.rb', line 53

def get_task(id)
  response = Typhoeus.get(get_task_url(id), headers: authorization_header)
  validate_response(response.code)
  Task.from(parse_body(response.body), self)
end

#list_tasks(options = {}) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/verbalizeit/client.rb', line 38

def list_tasks(options = {})
  params = {
    start: options[:start],
    limit: options[:limit] || 10,
    status: options[:status]
  }
  response = Typhoeus.get(tasks_url, params: params, headers: authorization_header)

  if response.code == 200
    list_tasks_success(response.body)
  else
    raise Error::NotImplemented
  end
end

#start_task(id) ⇒ Object



59
60
61
62
63
# File 'lib/verbalizeit/client.rb', line 59

def start_task(id)
  response = Typhoeus.post(start_task_url(id), headers: authorization_header)
  validate_response(response.code)
  true
end

#task_completed_file(id) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/verbalizeit/client.rb', line 65

def task_completed_file(id)
  response = Typhoeus.get(task_completed_file_url(id), headers: authorization_header)
  validate_response(response.code)

  # original string => "attachment; filename=\"sample.srt\""
  filename = response.headers["Content-Disposition"].rpartition("filename=").last
  struct = Struct.new(:filename, :content)
  struct.new(filename, response.body)
end