Class: Verbalizeit::Client
- Inherits:
-
Object
- Object
- Verbalizeit::Client
- Defined in:
- lib/verbalizeit/client.rb
Instance Attribute Summary collapse
-
#languages ⇒ Object
readonly
Returns the value of attribute languages.
Instance Method Summary collapse
- #create_task(source_language, target_language, operation, options = {}) ⇒ Object
- #get_task(id) ⇒ Object
-
#initialize(api_key, environement) ⇒ Client
constructor
A new instance of Client.
- #list_tasks(options = {}) ⇒ Object
- #start_task(id) ⇒ Object
- #task_completed_file(id) ⇒ Object
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
#languages ⇒ Object (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, = {}) body = { source_language: source_language, target_language: target_language, operation: operation, file: [:file], media_resource_url: [:media_resource_url], start: "#{options[:start]}", rush_order: "#{options[:rush_order]}", postback_url: [:postback_url], status_url: [:status_url] } response = Typhoeus.post(tasks_url, body: body, headers: ) 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:: 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: ) 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( = {}) params = { start: [:start], limit: [:limit] || 10, status: [:status] } response = Typhoeus.get(tasks_url, params: params, headers: ) 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: ) 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: ) 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 |