Class: Renalware::Letters::LettersController

Inherits:
BaseController show all
Includes:
Concerns::Pageable
Defined in:
app/controllers/renalware/letters/letters_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#patient

Methods inherited from BaseController

#patient

Instance Method Details

#authorObject



17
18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/renalware/letters/letters_controller.rb', line 17

def author
  user = Renalware::User.find(params[:author_id])
  author = Letters.cast_author(user)
  letters = author.letters.ordered.page(page).per(per_page)
  authorize letters
  render locals: {
    author: author,
    letters: present_letters(letters),
    columns: %i(patient)
  }
end

#contact_addedObject



91
92
93
94
95
# File 'app/controllers/renalware/letters/letters_controller.rb', line 91

def contact_added
  contact = @patient.contacts.find(params[:id])
  @contact = ContactPresenter.new(contact)
  @letter = LetterFormPresenter.new(Letter.new)
end

#createObject



43
44
45
46
47
48
# File 'app/controllers/renalware/letters/letters_controller.rb', line 43

def create
  attributes = letter_params.merge(event: find_event)
  DraftLetter.build
    .subscribe(self)
    .call(@patient, attributes)
end

#destroyObject



50
51
52
53
54
55
56
# File 'app/controllers/renalware/letters/letters_controller.rb', line 50

def destroy
  load_and_authorize_patient
  letter = find_letter(params[:id])
  authorize letter
  letter.destroy
  redirect_to patient_letters_letters_path(patient)
end

#draft_letter_failed(letter) ⇒ Object



63
64
65
66
# File 'app/controllers/renalware/letters/letters_controller.rb', line 63

def draft_letter_failed(letter)
  flash.now[:error] = t(".failed", model_name: "Letter")
  render_form(letter, :new)
end

#draft_letter_successful(letter) ⇒ Object



58
59
60
61
# File 'app/controllers/renalware/letters/letters_controller.rb', line 58

def draft_letter_successful(letter)
  RememberedLetterPreferences.new(session).persist(letter)
  redirect_to_letter_show(@patient, letter)
end

#editObject



72
73
74
# File 'app/controllers/renalware/letters/letters_controller.rb', line 72

def edit
  render_form(find_letter(params[:id]), :edit)
end

#indexObject



13
14
15
# File 'app/controllers/renalware/letters/letters_controller.rb', line 13

def index
  render :index, locals: { letters: present_letters(find_letters), patient: patient }
end

#newObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/renalware/letters/letters_controller.rb', line 29

def new
  @patient = load_and_authorize_patient
  letter = LetterFactory.new(
    @patient,
    event: find_event,
    author: current_user,
    clinical: clinical?
  )
    .with_contacts_as_default_ccs
    .build
  RememberedLetterPreferences.new(session).apply_to(letter)
  render_form(letter, :new)
end

#revise_letter_failed(letter) ⇒ Object



86
87
88
89
# File 'app/controllers/renalware/letters/letters_controller.rb', line 86

def revise_letter_failed(letter)
  flash.now[:error] = t(".failed", model_name: "Letter")
  render_form(letter, :edit)
end

#revise_letter_successful(letter) ⇒ Object



82
83
84
# File 'app/controllers/renalware/letters/letters_controller.rb', line 82

def revise_letter_successful(letter)
  redirect_to_letter_show(@patient, letter)
end

#showObject



68
69
70
# File 'app/controllers/renalware/letters/letters_controller.rb', line 68

def show
  @letter = present_letter(find_letter(params[:id]))
end

#updateObject



76
77
78
79
80
# File 'app/controllers/renalware/letters/letters_controller.rb', line 76

def update
  ReviseLetter.build
    .subscribe(self)
    .call(@patient, params[:id], letter_params)
end