Module: Imgur

Defined in:
lib/discourse_imgur/imgur.rb

Class Method Summary collapse

Class Method Details

.store_file(file, image_info, upload_id) ⇒ Object

Raises:

  • (Discourse::SiteSettingMissing)


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/discourse_imgur/imgur.rb', line 11

def self.store_file(file, image_info, upload_id)
  raise Discourse::SiteSettingMissing.new("imgur_endpoint")   if SiteSetting.imgur_endpoint.blank?
  raise Discourse::SiteSettingMissing.new("imgur_client_id")  if SiteSetting.imgur_client_id.blank?

  @imgur_loaded = require 'imgur' unless @imgur_loaded

  blob = file.read

  response = RestClient.post(
    SiteSetting.imgur_endpoint,
    { image: Base64.encode64(blob) },
    { 'Authorization' => "ClientID #{SiteSetting.imgur_client_id}" }
  )

  json = JSON.parse(response.body)['data'] rescue nil

  return nil if json.blank?
  return json['link']
end