class Progstr::Filer::Uploader

Public Instance Methods

delete_attachment(attachment) click to toggle source
# File lib/filer/uploader.rb, line 49
def delete_attachment(attachment)
  raise ApiError.new("message" => "Deleting a blank attachment.") if attachment.blank?
  url = "#{Progstr::Filer.url_prefix}files/#{attachment.id}"
  begin
    response = RestClient.delete(url, json_headers)
    UploadStatus.new MultiJson.decode(response)
  rescue MultiJson::DecodeError => unknown_error
    raise ApiError.new("message" => "Unknown server error when requesting #{url}:\r\n#{unknown_error}")
  rescue => e
    raise ApiError.new(MultiJson.decode(e.response))
  end
end
file_info(attachment) click to toggle source
# File lib/filer/uploader.rb, line 62
def file_info(attachment)
  raise ApiError.new("message" => "Getting info for a blank attachment.") if attachment.blank?

  url = "#{Progstr::Filer.url_prefix}files/info/#{attachment.id}"
  begin
    response = RestClient.get(url, json_headers)
    FileInfo.new MultiJson.decode(response)
  rescue MultiJson::DecodeError => unknown_error
    raise ApiError.new("message" => "Unknown server error when requesting #{url}:\r\n#{unknown_error}")
  rescue => e
    raise ApiError.new(MultiJson.decode(e.response))
  end
end
json_headers() click to toggle source
# File lib/filer/uploader.rb, line 20
def json_headers
  {
    :accept => "application/json",
    :"X-Progstr-Filer-Auth-Token" => Progstr::Filer.generate_auth_token,
  }
end
upload_attachment(attachment) click to toggle source
# File lib/filer/uploader.rb, line 27
def upload_attachment(attachment)
  url = "#{Progstr::Filer.url_prefix}upload/new"
  puts "upload to: #{url}"
  begin
    response = RestClient.post(url, {
                :upload1 => attachment.file,
                :authToken => Progstr::Filer.generate_auth_token,
                :uploader => self.class.name,
                :id => attachment.id
              }, json_headers)
    result = UploadStatus.new MultiJson.decode(response)
    attachment.mark_uploaded!
    result
  rescue => e
    if e.respond_to?(:response) && !e.response.nil?
      raise ApiError.new(MultiJson.decode(e.response))
    else
      raise
    end
  end
end