Class: MailDude::MessagesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/mail_dude/messages_controller.rb

Instance Method Summary collapse

Instance Method Details

#clearObject



44
45
46
47
# File 'app/controllers/mail_dude/messages_controller.rb', line 44

def clear
  count = MailDude.store.clear
  redirect_to messages_path, notice: "#{count} messages cleared."
end

#destroyObject



38
39
40
41
42
# File 'app/controllers/mail_dude/messages_controller.rb', line 38

def destroy
  raise MessageNotFoundError, 'Message not found' unless MailDude.store.delete(params[:id])

  redirect_to messages_path, notice: 'Message deleted.'
end

#htmlObject



16
17
18
19
20
21
22
# File 'app/controllers/mail_dude/messages_controller.rb', line 16

def html
  presenter = presenter_for(params[:id])
  response.headers['Content-Security-Policy'] =
    "default-src 'none'; img-src 'self' data:; style-src 'unsafe-inline'; font-src data:; " \
    "base-uri 'none'; form-action 'none'; script-src 'none'"
  render html: renderer_for(presenter).render.html_safe, layout: false
end

#indexObject



7
8
9
# File 'app/controllers/mail_dude/messages_controller.rb', line 7

def index
  @selected_message = first_message
end

#message_headersObject



28
29
30
# File 'app/controllers/mail_dude/messages_controller.rb', line 28

def message_headers
  render plain: presenter_for(params[:id]).raw_headers.presence || 'This message does not include headers.'
end

#rawObject



32
33
34
35
36
# File 'app/controllers/mail_dude/messages_controller.rb', line 32

def raw
  record = MailDude.store.find(params[:id])
  response.headers['Content-Disposition'] = %(inline; filename="#{record.id}.eml")
  render plain: record.raw_source, content_type: 'text/plain'
end

#showObject



11
12
13
14
# File 'app/controllers/mail_dude/messages_controller.rb', line 11

def show
  @selected_message = MailDude.store.find(params[:id])
  render :index
end

#textObject



24
25
26
# File 'app/controllers/mail_dude/messages_controller.rb', line 24

def text
  render plain: presenter_for(params[:id]).text_body.presence || 'This message does not include a plain text body.'
end