class Immobilienscout::API::Attachment

Public Class Methods

add(is24_id, binary_file, metadata) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 7
def add(is24_id, binary_file, metadata)
  raise ArgumentError unless is24_id.present? && binary_file.present? && metadata.present?

  url = add_url(is24_id)
  metadata_file = create_metadata_file(metadata)
  params = { attachment: binary_file, metadata: metadata_file }
  parsed_response = Immobilienscout::Request.new(url, params).post_with_multipart

  unless parsed_response.success?
    raise Immobilienscout::Errors::InvalidRequest, parsed_response.messages.map(&:messages)
  end

  parsed_response
end
destroy(is24_id, attachment_id) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 43
def destroy(is24_id, attachment_id)
  raise ArgumentError unless is24_id.present?
  raise ArgumentError unless attachment_id.present?

  url = destroy_url(is24_id, attachment_id)
  parsed_response = Immobilienscout::Request.new(url).delete
  Immobilienscout::RequestErrorHandler.handle(parsed_response) unless parsed_response.success?

  parsed_response
end
put_order(is24_id, params) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 22
def put_order(is24_id, params)
  raise ArgumentError unless params.present?

  parsed_response = Immobilienscout::Request.new(put_order_url(is24_id), params).put
  unless parsed_response.success?
    raise Immobilienscout::Errors::InvalidRequest, parsed_response.messages.map(&:messages)
  end

  parsed_response
end
retrieve_all(is24_id) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 33
def retrieve_all(is24_id)
  raise ArgumentError unless is24_id.present?

  url = retrieve_all_url(is24_id)
  parsed_response = Immobilienscout::Request.new(url).get
  Immobilienscout::RequestErrorHandler.handle(parsed_response) unless parsed_response.success?

  parsed_response
end

Private Class Methods

add_url(is24_id) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 61
def add_url(is24_id)
  "#{Immobilienscout::Client.api_url}/restapi/api/offer/v1.0/user/me/realestate/#{is24_id}/attachment"
end
create_metadata_file(params) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 56
def create_metadata_file(params)
  metadata_object = StringIO.new(params.to_json)
  UploadIO.new(metadata_object, 'application/json')
end
destroy_url(is24_id, attachment_id) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 75
def destroy_url(is24_id, attachment_id)
  "#{Immobilienscout::Client.api_url}/restapi/api/"\
  "offer/v1.0/user/me/realestate/#{is24_id}/attachment/#{attachment_id}"
end
put_order_url(is24_id) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 65
def put_order_url(is24_id)
  "#{Immobilienscout::Client.api_url}/restapi/api/"\
  "offer/v1.0/user/me/realestate/#{is24_id}/attachment/attachmentsorder"
end
retrieve_all_url(is24_id) click to toggle source
# File lib/immobilienscout/api/attachment.rb, line 70
def retrieve_all_url(is24_id)
  "#{Immobilienscout::Client.api_url}/restapi/api/"\
  "offer/v1.0/user/me/realestate/#{is24_id}/attachment"
end