Class: Zara4::API::Client
- Inherits:
-
Object
- Object
- Zara4::API::Client
- Includes:
- HTTMultiParty
- Defined in:
- lib/zara4/api/client.rb
Instance Attribute Summary collapse
-
#client_id ⇒ Object
Returns the value of attribute client_id.
-
#client_secret ⇒ Object
Returns the value of attribute client_secret.
Instance Method Summary collapse
-
#download_processed_image(processed_image, save_path) ⇒ Object
Download the given ProcessedImage and save it to the given path.
-
#initialize(credentials) ⇒ Client
constructor
Application authenticated client.
-
#process_image(image_processing_request) ⇒ Object
Process the given image processing Request.
Constructor Details
#initialize(credentials) ⇒ Client
Application authenticated client.
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/zara4/api/client.rb', line 15 def initialize(credentials) @client_id = credentials.fetch('client_id') @client_secret = credentials.fetch('client_secret') if @client_id && @client_secret authenticator = Zara4::API::Communication::Authentication::ApplicationAuthenticator.new(@client_id, @client_secret) authenticator.with_image_processing().with_usage() @access_token = authenticator.acquire_access_token() end end |
Instance Attribute Details
#client_id ⇒ Object
Returns the value of attribute client_id.
9 10 11 |
# File 'lib/zara4/api/client.rb', line 9 def client_id @client_id end |
#client_secret ⇒ Object
Returns the value of attribute client_secret.
9 10 11 |
# File 'lib/zara4/api/client.rb', line 9 def client_secret @client_secret end |
Instance Method Details
#download_processed_image(processed_image, save_path) ⇒ Object
Download the given ProcessedImage and save it to the given path.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/zara4/api/client.rb', line 65 def download_processed_image(processed_image, save_path) url = processed_image.file_urls[0] if @access_token url += '?access_token=' + @access_token.token end File.open(save_path, "w") do |f| IO.copy_stream(open(url), f) end end |
#process_image(image_processing_request) ⇒ Object
Process the given image processing Request.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/zara4/api/client.rb', line 32 def process_image(image_processing_request) url = Zara4::API::Communication::Util::url('/v1/image-processing/request') parameters = image_processing_request.generate_form_data parameters['access_token'] = @access_token.token response = self.class.post(url, { query: parameters, detect_mime_type: true }) # Check for API error response if response.has_key?('error') raise 'ERROR IS ' + response.fetch('error') end request_id = response['request-id'] generate_images_urls = response['generated-images']['urls'] bytes_original = response['compression']['bytes-original'] bytes_compressed = response['compression']['bytes-compressed'] return Zara4::API::ImageProcessing::ProcessedImage.new(image_processing_request, request_id, generate_images_urls, bytes_original, bytes_compressed) end |