Module: Discord

Defined in:
lib/discord_notifier.rb,
lib/discord_notifier/embed.rb,
lib/discord_notifier/version.rb,
lib/discord_notifier/form_data.rb,
lib/discord_notifier/backports/hash.rb,
lib/discord_notifier/backports/http.rb

Defined Under Namespace

Modules: Backports, Notifier Classes: Config, Embed

Constant Summary collapse

BOUNDARY =
"DiscordNotifier"

Class Method Summary collapse

Class Method Details

.form_data_request(uri, params) ⇒ Object



6
7
8
9
10
11
# File 'lib/discord_notifier/form_data.rb', line 6

def self.form_data_request(uri, params)
  req = Net::HTTP::Post.new(uri)
  req.add_field "Content-Type", "multipart/form-data; boundary=#{BOUNDARY}"
  req.body = Discord.multipart_form_data(params)
  return req
end

.multipart_form_data(config) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/discord_notifier/form_data.rb', line 13

def self.multipart_form_data(config)
  file = config[:file]
  filename = File.basename(file.path)
  file_contents = File.read(file)
  payload = config.select {|k, v| k != :file}

  form = <<~eos
    --#{BOUNDARY}
    Content-Disposition: form-data; name="file"; filename="#{filename}"

    #{file_contents}

    --#{BOUNDARY}
    Content-Disposition: form-data; name="payload_json"

    #{payload.to_json}

    --#{BOUNDARY}--
  eos

  form.encode crlf_newline: true
end