Sha256: eb381b241e0ced63bf2cc4c9968402c7340f43f1cf051677914ea281f41c72c0
Contents?: true
Size: 1.66 KB
Versions: 1
Compression:
Stored size: 1.66 KB
Contents
# frozen_string_literal: true require_relative '../rest_client' require 'exception/conversion_error' module Uploadcare module Client module Conversion # This is a base client for conversion operations # # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/Conversion class BaseConversionClient < RestClient API_VERSION_HEADER_VALUE = 'application/vnd.uploadcare-v0.7+json' def headers { 'Content-Type': 'application/json', Accept: API_VERSION_HEADER_VALUE, 'User-Agent': Uploadcare::Param::UserAgent.call } end private def send_convert_request(arr, options, url_builder_class) body = build_body_for_many(arr, options, url_builder_class) post(uri: convert_uri, content: body) end def success(response) body = response.body.to_s extract_result(body) end def extract_result(response_body) return if response_body.empty? parsed_body = JSON.parse(response_body, symbolize_names: true) errors = parsed_body[:error] || parsed_body[:problems] return Dry::Monads::Failure(errors) unless errors.nil? || errors.empty? Dry::Monads::Success(parsed_body) end # Prepares body for convert_many method def build_body_for_many(arr, options, url_builder_class) { paths: arr.map do |params| url_builder_class.call( **build_paths_body(params) ) end, store: options[:store] }.compact.to_json end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
uploadcare-ruby-4.3.6 | lib/uploadcare/client/conversion/base_conversion_client.rb |