• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / orangelight / 0e37073d-109c-440c-949f-49d2aa86311b

18 Aug 2025 09:05PM UTC coverage: 0.482% (-94.9%) from 95.343%
0e37073d-109c-440c-949f-49d2aa86311b

push

circleci

web-flow
Replace per_page_options_for_select with custom component to avoid deprecation issue (#5186)

* Start creating new component to address deprecaton warning

* Replace per_page_options_for_select with custom component to avoid deprecation issue

Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>

---------

Co-authored-by: Ryan Jensen <rj1044@princeton.edu>
Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>

0 of 33 new or added lines in 1 file covered. (0.0%)

9374 existing lines in 213 files now uncovered.

47 of 9753 relevant lines covered (0.48%)

0.01 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/mailers/requests/request_mailer.rb
1
# frozen_string_literal: true
UNCOV
2
module Requests
×
UNCOV
3
  class RequestMailer < ApplicationMailer
×
UNCOV
4
    include Requests::Bibdata
×
UNCOV
5
    helper "requests/application"
×
6

UNCOV
7
    def digitize_fill_in_confirmation(submission)
×
8
      @submission = Submission.new_from_hash submission
×
9
      @delivery_mode = "edd"
×
10
      subject = I18n.t('requests.paging.email_subject', pick_up_location: "Digitization")
×
11
      destination_email = @submission.email
×
12
      mail(to: destination_email,
×
UNCOV
13
           from: I18n.t('requests.default.email_from'),
×
UNCOV
14
           subject:)
×
UNCOV
15
    end
×
16

UNCOV
17
    def paging_email(submission)
×
UNCOV
18
      @submission = Submission.new_from_hash submission
×
UNCOV
19
      pick_ups = paging_pick_ups(submission: @submission)
×
UNCOV
20
      subject = I18n.t('requests.paging.email_subject', pick_up_location: pick_ups.join(", "))
×
UNCOV
21
      destination_email = "fstpage@princeton.edu"
×
UNCOV
22
      mail(to: destination_email,
×
UNCOV
23
           from: I18n.t('requests.default.email_from'),
×
UNCOV
24
           subject:)
×
UNCOV
25
    end
×
26

UNCOV
27
    def paging_confirmation(submission)
×
UNCOV
28
      @submission = Submission.new_from_hash submission
×
UNCOV
29
      pick_ups = paging_pick_ups(submission: @submission)
×
UNCOV
30
      subject = I18n.t('requests.paging.email_subject', pick_up_location: pick_ups.join(", "))
×
UNCOV
31
      destination_email = @submission.email
×
UNCOV
32
      mail(to: destination_email,
×
UNCOV
33
           from: I18n.t('requests.default.email_from'),
×
UNCOV
34
           subject:)
×
UNCOV
35
    end
×
36

UNCOV
37
    def pres_email(submission)
×
UNCOV
38
      request_email(submission:, subject_key: 'requests.pres.email_subject', destination_key: 'requests.pres.email')
×
UNCOV
39
    end
×
40

UNCOV
41
    def pres_confirmation(submission)
×
UNCOV
42
      confirmation_email(submission:, subject_key: 'requests.pres.email_subject')
×
UNCOV
43
    end
×
44

UNCOV
45
    def annex_email(submission)
×
UNCOV
46
      @submission = Submission.new_from_hash submission
×
UNCOV
47
      destination_email = annex_email_destinations(submission: @submission)
×
UNCOV
48
      mail(to: destination_email,
×
UNCOV
49
           from: I18n.t('requests.default.email_from'),
×
UNCOV
50
           subject: I18n.t('requests.annex.email_subject'))
×
UNCOV
51
    end
×
52

UNCOV
53
    def annex_confirmation(submission)
×
UNCOV
54
      confirmation_email(submission:, subject_key: 'requests.annex.email_subject')
×
UNCOV
55
    end
×
56

UNCOV
57
    def annex_in_library_email(submission)
×
UNCOV
58
      @submission = Submission.new_from_hash submission
×
UNCOV
59
      mail(to: I18n.t('requests.annex.email'),
×
UNCOV
60
           from: I18n.t('requests.default.email_from'),
×
UNCOV
61
           subject: I18n.t('requests.annex_in_library.email_subject'))
×
UNCOV
62
    end
×
63

UNCOV
64
    def annex_in_library_confirmation(submission)
×
UNCOV
65
      confirmation_email(submission:, subject_key: 'requests.annex_in_library.email_subject')
×
UNCOV
66
    end
×
67

UNCOV
68
    def annex_edd_email(submission); end
×
69

UNCOV
70
    def annex_edd_confirmation(submission)
×
UNCOV
71
      confirmation_email(submission:, subject_key: 'requests.recap_edd.email_subject', partial: 'recap_edd_confirmation')
×
UNCOV
72
    end
×
73

74
    # temporary changes issue 438
UNCOV
75
    def on_shelf_email(submission)
×
UNCOV
76
      @submission = Submission.new_from_hash submission
×
UNCOV
77
      location_email = get_location_contact_email(@submission.items.first[:location_code])
×
78
      # Location and destination are the same forthe moment
79
      # destination_email = I18n.t('requests.on_shelf.email')
UNCOV
80
      subject = "#{I18n.t('requests.on_shelf.email_subject')} (#{@submission.items.first[:location_code].upcase}) #{@submission.items.first[:call_number]}"
×
UNCOV
81
      mail(to: location_email,
×
82
           # cc: destination_email,
UNCOV
83
           from: I18n.t('requests.default.email_from'),
×
UNCOV
84
           subject:)
×
UNCOV
85
    end
×
86

87
    # temporary changes issue 438
UNCOV
88
    def on_shelf_confirmation(submission)
×
UNCOV
89
      @submission = Submission.new_from_hash submission
×
UNCOV
90
      destination_email = @submission.email
×
UNCOV
91
      subject = "#{Requests::BibdataService.delivery_locations[@submission.items.first['pick_up']]['label']} #{I18n.t('requests.on_shelf.email_subject_patron')}"
×
UNCOV
92
      mail(to: destination_email,
×
UNCOV
93
           from: I18n.t('requests.default.email_from'),
×
UNCOV
94
           subject:)
×
UNCOV
95
    end
×
96

UNCOV
97
    def on_order_email(submission)
×
UNCOV
98
      destination_key = 'requests.default.email_destination'
×
UNCOV
99
      request_email(submission:, subject_key: 'requests.on_order.email_subject', destination_key:)
×
UNCOV
100
    end
×
101

UNCOV
102
    def on_order_confirmation(submission)
×
UNCOV
103
      confirmation_email(submission:, subject_key: 'requests.on_order.email_subject')
×
UNCOV
104
    end
×
105

UNCOV
106
    def in_process_email(submission)
×
UNCOV
107
      destination_key = 'requests.default.email_destination'
×
UNCOV
108
      request_email(submission:, subject_key: 'requests.in_process.email_subject', destination_key:)
×
UNCOV
109
    end
×
110

UNCOV
111
    def in_process_confirmation(submission)
×
UNCOV
112
      confirmation_email(submission:, subject_key: 'requests.in_process.email_subject')
×
UNCOV
113
    end
×
114

UNCOV
115
    def recap_no_items_email(submission)
×
116
      request_email(submission:, subject_key: 'requests.recap_no_items.email_subject', destination_key: 'requests.recap_no_items.email')
×
UNCOV
117
    end
×
118

UNCOV
119
    def recap_no_items_confirmation(submission)
×
120
      @submission = Submission.new_from_hash submission
×
121
      destination_email = @submission.email
×
122
      subject = I18n.t('requests.recap.email_subject')
×
123
      mail(to: destination_email,
×
UNCOV
124
           from: I18n.t('requests.default.email_from'),
×
UNCOV
125
           subject:)
×
UNCOV
126
    end
×
127

UNCOV
128
    def digitize_email(submission)
×
129
      # TODO: what should we do here
UNCOV
130
    end
×
131

UNCOV
132
    def digitize_confirmation(submission)
×
UNCOV
133
      confirmation_email(submission:, subject_key: 'requests.digitize.email_subject', from_key: 'requests.digitize.email_from')
×
UNCOV
134
    end
×
135

UNCOV
136
    def interlibrary_loan_confirmation(submission)
×
UNCOV
137
      confirmation_email(submission:, subject_key: 'requests.interlibrary_loan.email_subject', from_key: 'requests.interlibrary_loan.email_from')
×
UNCOV
138
    end
×
139

UNCOV
140
    def recap_confirmation(submission)
×
UNCOV
141
      subject_key = 'requests.recap.email_subject'
×
142

UNCOV
143
      confirmation_email(submission:, subject_key:)
×
UNCOV
144
    end
×
145

UNCOV
146
    def recap_marquand_edd_email(submission); end
×
147

UNCOV
148
    def recap_marquand_edd_confirmation(submission)
×
UNCOV
149
      confirmation_email(submission:, subject_key: 'requests.recap_edd.email_subject', partial: 'recap_edd_confirmation')
×
UNCOV
150
    end
×
151

UNCOV
152
    def recap_marquand_in_library_email(submission); end
×
153

UNCOV
154
    def recap_marquand_in_library_confirmation(submission)
×
UNCOV
155
      confirmation_email(submission:, subject_key: 'requests.recap_in_library.email_subject')
×
UNCOV
156
    end
×
157

UNCOV
158
    def recap_in_library_email(submission)
×
159
      # only send an email to the libraries if this is a marquand request
UNCOV
160
      request_email(submission:, subject_key: 'requests.recap_marquand.email_subject', destination_key: 'requests.recap_marquand.email_destination') if Submission.new_from_hash(submission).marquand?
×
UNCOV
161
    end
×
162

UNCOV
163
    def recap_in_library_confirmation(submission)
×
UNCOV
164
      subject_key = 'requests.recap_in_library.email_subject'
×
165

UNCOV
166
      confirmation_email(submission:, subject_key:)
×
UNCOV
167
    end
×
168

UNCOV
169
    def recap_edd_confirmation(submission)
×
UNCOV
170
      confirmation_email(submission:, subject_key: 'requests.recap_edd.email_subject')
×
UNCOV
171
    end
×
172

UNCOV
173
    def clancy_in_library_email(submission)
×
UNCOV
174
      request_email(submission:, subject_key: 'requests.clancy_in_library.email_subject', destination_key: 'requests.clancy_in_library.email_destination')
×
UNCOV
175
    end
×
176

UNCOV
177
    def clancy_in_library_confirmation(submission)
×
UNCOV
178
      confirmation_email(submission:, subject_key: 'requests.clancy_in_library.confirmation_subject')
×
UNCOV
179
    end
×
180

UNCOV
181
    def clancy_unavailable_edd_email(submission)
×
UNCOV
182
      request_email(submission:, subject_key: 'requests.clancy_unavailable_edd.email_subject', destination_key: 'requests.clancy_unavailable_edd.email_destination')
×
UNCOV
183
    end
×
184

UNCOV
185
    def clancy_unavailable_edd_confirmation(submission)
×
UNCOV
186
      confirmation_email(submission:, subject_key: 'requests.clancy_unavailable_edd.confirmation_subject')
×
UNCOV
187
    end
×
188

UNCOV
189
    def clancy_edd_email(submission)
×
UNCOV
190
      request_email(submission:, subject_key: 'requests.clancy_edd.email_subject', destination_key: 'requests.clancy_edd.email_destination')
×
UNCOV
191
    end
×
192

UNCOV
193
    def clancy_edd_confirmation(submission)
×
UNCOV
194
      confirmation_email(submission:, subject_key: 'requests.clancy_edd.confirmation_subject')
×
UNCOV
195
    end
×
196

UNCOV
197
    def marquand_edd_email(submission)
×
UNCOV
198
      request_email(submission:, subject_key: 'requests.marquand_edd.email_subject', destination_key: 'requests.marquand_edd.email_destination')
×
UNCOV
199
    end
×
200

UNCOV
201
    def marquand_edd_confirmation(submission)
×
UNCOV
202
      confirmation_email(submission:, subject_key: 'requests.marquand_edd.confirmation_subject')
×
UNCOV
203
    end
×
204

UNCOV
205
    def marquand_in_library_email(submission)
×
UNCOV
206
      request_email(submission:, subject_key: 'requests.marquand_in_library.email_subject', destination_key: 'requests.marquand_in_library.email_destination')
×
UNCOV
207
    end
×
208

UNCOV
209
    def marquand_in_library_confirmation(submission)
×
UNCOV
210
      confirmation_email(submission:, subject_key: 'requests.marquand_in_library.confirmation_subject')
×
UNCOV
211
    end
×
212

UNCOV
213
    def service_error_email(errors, submission)
×
UNCOV
214
      @submission = Submission.new_from_hash submission
×
UNCOV
215
      @errors = errors
×
UNCOV
216
      error_types = @errors.flat_map { |_key, value| value }.pluck(:type).uniq
×
UNCOV
217
      destination_email = if error_types.include?("digitize")
×
UNCOV
218
                            I18n.t('requests.digitize.invalid_patron.email')
×
UNCOV
219
                          else
×
UNCOV
220
                            I18n.t('requests.error.service_error_email')
×
UNCOV
221
                          end
×
UNCOV
222
      mail(to: destination_email,
×
UNCOV
223
           from: I18n.t('requests.default.email_from'),
×
UNCOV
224
           subject: I18n.t('requests.error.service_error_subject'))
×
UNCOV
225
    end
×
226

UNCOV
227
    def invalid_illiad_patron_email(user_attributes, transaction_attributes)
×
UNCOV
228
      @user_attributes = user_attributes
×
UNCOV
229
      @transaction_attributes = transaction_attributes
×
UNCOV
230
      destination_email = I18n.t('requests.digitize.invalid_patron.email')
×
UNCOV
231
      mail(to: destination_email,
×
UNCOV
232
           from: I18n.t('requests.default.email_from'),
×
UNCOV
233
           subject: I18n.t('requests.digitize.invalid_patron.subject'))
×
UNCOV
234
    end
×
235

UNCOV
236
    private
×
237

UNCOV
238
      def confirmation_email(submission:, subject_key:, from_key: 'requests.default.email_from', partial: nil)
×
UNCOV
239
        @submission = Submission.new_from_hash submission
×
UNCOV
240
        destination_email = @submission.email
×
UNCOV
241
        subject = I18n.t(subject_key)
×
UNCOV
242
        mail(to: destination_email,
×
UNCOV
243
             from: I18n.t(from_key),
×
UNCOV
244
             subject:,
×
UNCOV
245
             template_name: partial)
×
UNCOV
246
      end
×
247

UNCOV
248
      def request_email(submission:, subject_key:, destination_key: 'requests.default.email_destination', from_key: 'requests.default.email_from')
×
UNCOV
249
        @submission = Submission.new_from_hash submission
×
UNCOV
250
        destination_email = I18n.t(destination_key)
×
UNCOV
251
        mail(to: destination_email,
×
UNCOV
252
             from: I18n.t(from_key),
×
UNCOV
253
             subject: I18n.t(subject_key))
×
UNCOV
254
      end
×
255

UNCOV
256
      def paging_pick_ups(submission:)
×
UNCOV
257
        @delivery_mode = submission.items[0]["delivery_mode_#{submission.items[0]['mfhd']}"]
×
UNCOV
258
        if @delivery_mode == "edd"
×
259
          ["Digitization"]
×
UNCOV
260
        else
×
UNCOV
261
          @submission.items.map { |item| Requests::BibdataService.delivery_locations[item["pick_up"]]["label"] }
×
UNCOV
262
        end
×
UNCOV
263
      end
×
264

UNCOV
265
      def annex_email_destinations(submission:)
×
UNCOV
266
        annex_items(submission:).map do |item|
×
UNCOV
267
          if item["location_code"] == 'annex$doc'
×
UNCOV
268
            I18n.t('requests.anxadoc.email')
×
UNCOV
269
          else
×
UNCOV
270
            I18n.t('requests.annex.email')
×
UNCOV
271
          end
×
UNCOV
272
        end
×
UNCOV
273
      end
×
274

UNCOV
275
      def annex_items(submission:)
×
UNCOV
276
        submission.items.select { |item| item["type"] == 'annex' }
×
UNCOV
277
      end
×
UNCOV
278
  end
×
UNCOV
279
end
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc