Class: Cloudconvert::Conversion
- Inherits:
-
Object
- Object
- Cloudconvert::Conversion
- Defined in:
- lib/cloudconvert/conversion.rb
Instance Attribute Summary collapse
-
#conn ⇒ Object
Returns the value of attribute conn.
-
#conversion_connection ⇒ Object
Returns the value of attribute conversion_connection.
-
#convert_request_url ⇒ Object
Returns the value of attribute convert_request_url.
-
#process_id ⇒ Object
Returns the value of attribute process_id.
-
#request_connection ⇒ Object
Returns the value of attribute request_connection.
Instance Method Summary collapse
- #api_key ⇒ Object
-
#build_upload_params(file_path, outputformat, callback_url = nil, options = {}) ⇒ Object
building params for local file.
- #callback(callback_url = nil) ⇒ Object
-
#cancel_conversion ⇒ Object
cancels current conversion.
-
#conversion_post_request(inputformat, outputformat) ⇒ Object
send conversion http request.
-
#convert(inputformat, outputformat, file_path, callback_url = nil, options = {}) ⇒ Object
convert request for file.
-
#converter_options(inputformat = "", outputformat = "") ⇒ Object
returns all possible conversions and options.
-
#delete_conversion ⇒ Object
deletes finished conversion.
-
#download_link ⇒ Object
checks if conversion finished for process id and returns download link.
-
#initialize ⇒ Conversion
constructor
request_connection => specific to file conversion.
- #initiate_connection(url) ⇒ Object
-
#list_conversions ⇒ Object
lists all conversions.
- #parse_response(response) ⇒ Object
- #start_conversion(inputformat, outputformat) ⇒ Object
-
#status ⇒ Object
checks status of conversion with process_id.
-
#upload(upload_params) ⇒ Object
upload request.
Constructor Details
#initialize ⇒ Conversion
request_connection => specific to file conversion
7 8 9 10 |
# File 'lib/cloudconvert/conversion.rb', line 7 def initialize raise Cloudconvert::API_KEY_ERROR if Cloudconvert.configuration.api_key == nil @conversion_connection = Faraday.new(:url => Cloudconvert::CONVERSION_URL) end |
Instance Attribute Details
#conn ⇒ Object
Returns the value of attribute conn.
3 4 5 |
# File 'lib/cloudconvert/conversion.rb', line 3 def conn @conn end |
#conversion_connection ⇒ Object
Returns the value of attribute conversion_connection.
3 4 5 |
# File 'lib/cloudconvert/conversion.rb', line 3 def conversion_connection @conversion_connection end |
#convert_request_url ⇒ Object
Returns the value of attribute convert_request_url.
3 4 5 |
# File 'lib/cloudconvert/conversion.rb', line 3 def convert_request_url @convert_request_url end |
#process_id ⇒ Object
Returns the value of attribute process_id.
3 4 5 |
# File 'lib/cloudconvert/conversion.rb', line 3 def process_id @process_id end |
#request_connection ⇒ Object
Returns the value of attribute request_connection.
3 4 5 |
# File 'lib/cloudconvert/conversion.rb', line 3 def request_connection @request_connection end |
Instance Method Details
#api_key ⇒ Object
65 66 67 68 |
# File 'lib/cloudconvert/conversion.rb', line 65 def api_key raise Cloudconvert::API_KEY_ERROR if Cloudconvert.configuration.api_key == nil Cloudconvert.configuration.api_key end |
#build_upload_params(file_path, outputformat, callback_url = nil, options = {}) ⇒ Object
building params for local file
93 94 95 96 97 98 |
# File 'lib/cloudconvert/conversion.rb', line 93 def build_upload_params(file_path, outputformat, callback_url = nil, = {}) upload_params = { :format => outputformat} upload_params.merge!(:callback => callback(callback_url)) if callback(callback_url).present? upload_params.merge!(:input => "download",:link => file_path ) upload_params.merge!() end |
#callback(callback_url = nil) ⇒ Object
70 71 72 |
# File 'lib/cloudconvert/conversion.rb', line 70 def callback(callback_url = nil) callback_url || Cloudconvert.configuration.callback end |
#cancel_conversion ⇒ Object
cancels current conversion
29 30 31 32 |
# File 'lib/cloudconvert/conversion.rb', line 29 def cancel_conversion response = @request_connection.get "/process/#{@process_id.to_s}/cancel" parse_response(response.body) end |
#conversion_post_request(inputformat, outputformat) ⇒ Object
send conversion http request
75 76 77 |
# File 'lib/cloudconvert/conversion.rb', line 75 def conversion_post_request(inputformat, outputformat) @conversion_connection.post "https://api.cloudconvert.org/process?inputformat=#{inputformat}&outputformat=#{outputformat}&apikey=#{api_key}" end |
#convert(inputformat, outputformat, file_path, callback_url = nil, options = {}) ⇒ Object
convert request for file
13 14 15 16 17 18 19 |
# File 'lib/cloudconvert/conversion.rb', line 13 def convert(inputformat, outputformat, file_path, callback_url = nil, = {}) raise "File path cant be blank" if file_path.nil? @convert_request_url = start_conversion(inputformat, outputformat) #initiate connection with new response host initiate_connection(@convert_request_url) upload(build_upload_params(file_path, outputformat, callback_url, )) end |
#converter_options(inputformat = "", outputformat = "") ⇒ Object
returns all possible conversions and options
60 61 62 63 |
# File 'lib/cloudconvert/conversion.rb', line 60 def (inputformat ="", outputformat = "") response = @conversion_connection.get "conversiontypes", {:inputformat => inputformat,:outputformat => outputformat } parse_response(response.body) end |
#delete_conversion ⇒ Object
deletes finished conversion
35 36 37 38 |
# File 'lib/cloudconvert/conversion.rb', line 35 def delete_conversion response = @request_connection.get "/process/#{@process_id.to_s}/delete" parse_response(response.body) end |
#download_link ⇒ Object
checks if conversion finished for process id and returns download link
48 49 50 51 |
# File 'lib/cloudconvert/conversion.rb', line 48 def download_link response = status response["step"] == "finished" ? "http:#{response['output']['url']}" : nil end |
#initiate_connection(url) ⇒ Object
88 89 90 |
# File 'lib/cloudconvert/conversion.rb', line 88 def initiate_connection(url) @request_connection = Faraday.new(:url => url) end |
#list_conversions ⇒ Object
lists all conversions
22 23 24 25 |
# File 'lib/cloudconvert/conversion.rb', line 22 def list_conversions response = @conversion_connection.get '/processes', {:apikey => api_key } parse_response(response.body) end |
#parse_response(response) ⇒ Object
100 101 102 |
# File 'lib/cloudconvert/conversion.rb', line 100 def parse_response(response) JSON.parse(response) end |
#start_conversion(inputformat, outputformat) ⇒ Object
79 80 81 82 83 84 85 86 |
# File 'lib/cloudconvert/conversion.rb', line 79 def start_conversion(inputformat, outputformat) response = conversion_post_request(inputformat,outputformat) parsed_response = parse_response(response.body) @process_id = parsed_response["id"] "https://#{parsed_response['host']}" end |
#status ⇒ Object
checks status of conversion with process_id
54 55 56 57 |
# File 'lib/cloudconvert/conversion.rb', line 54 def status response = @request_connection.get "/process/#{@process_id.to_s}" parse_response(response.body) end |
#upload(upload_params) ⇒ Object
upload request
41 42 43 44 |
# File 'lib/cloudconvert/conversion.rb', line 41 def upload(upload_params) response = @request_connection.post "/process/#{@process_id.to_s}", upload_params parse_response(response.body) end |