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

pulibrary / orangelight / 4e01fe00-694b-47b4-8b30-2de4dc4acc66

31 Jul 2025 07:56PM UTC coverage: 92.891% (-2.5%) from 95.4%
4e01fe00-694b-47b4-8b30-2de4dc4acc66

Pull #4962

circleci

web-flow
Merge pull request #5130 from pulibrary/clean_up_scss_comments

Remove SCSS commented code.
Pull Request #4962: Orangelight pos workcycle 07-07-2025

193 of 197 new or added lines in 24 files covered. (97.97%)

161 existing lines in 35 files now uncovered.

5932 of 6386 relevant lines covered (92.89%)

1443.08 hits per line

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

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

7
    def digitize_fill_in_confirmation(submission)
2✔
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,
×
13
           from: I18n.t('requests.default.email_from'),
14
           subject:)
15
    end
16

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

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

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

41
    def pres_confirmation(submission)
2✔
42
      confirmation_email(submission:, subject_key: 'requests.pres.email_subject')
4✔
43
    end
44

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

53
    def annex_confirmation(submission)
2✔
54
      confirmation_email(submission:, subject_key: 'requests.annex.email_subject')
10✔
55
    end
56

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

64
    def annex_in_library_confirmation(submission)
2✔
65
      confirmation_email(submission:, subject_key: 'requests.annex_in_library.email_subject')
1✔
66
    end
67

68
    def annex_edd_email(submission); end
2✔
69

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

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

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

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

102
    def on_order_confirmation(submission)
2✔
103
      confirmation_email(submission:, subject_key: 'requests.on_order.email_subject')
6✔
104
    end
105

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

111
    def in_process_confirmation(submission)
2✔
112
      confirmation_email(submission:, subject_key: 'requests.in_process.email_subject')
9✔
113
    end
114

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

119
    def recap_no_items_confirmation(submission)
2✔
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,
×
124
           from: I18n.t('requests.default.email_from'),
125
           subject:)
126
    end
127

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

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

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

140
    def recap_confirmation(submission)
2✔
141
      subject_key = 'requests.recap.email_subject'
5✔
142

143
      confirmation_email(submission:, subject_key:)
5✔
144
    end
145

146
    def recap_marquand_edd_email(submission); end
2✔
147

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

152
    def recap_marquand_in_library_email(submission); end
2✔
153

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

158
    def recap_in_library_email(submission)
2✔
159
      # only send an email to the libraries if this is a marquand request
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?
1✔
161
    end
162

163
    def recap_in_library_confirmation(submission)
2✔
164
      subject_key = 'requests.recap_in_library.email_subject'
1✔
165

166
      confirmation_email(submission:, subject_key:)
1✔
167
    end
168

169
    def recap_edd_confirmation(submission)
2✔
170
      confirmation_email(submission:, subject_key: 'requests.recap_edd.email_subject')
6✔
171
    end
172

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

177
    def clancy_in_library_confirmation(submission)
2✔
178
      confirmation_email(submission:, subject_key: 'requests.clancy_in_library.confirmation_subject')
1✔
179
    end
180

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

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

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

193
    def clancy_edd_confirmation(submission)
2✔
194
      confirmation_email(submission:, subject_key: 'requests.clancy_edd.confirmation_subject')
1✔
195
    end
196

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

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

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

209
    def marquand_in_library_confirmation(submission)
2✔
210
      confirmation_email(submission:, subject_key: 'requests.marquand_in_library.confirmation_subject')
1✔
211
    end
212

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

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

236
    private
2✔
237

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

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

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

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

275
      def annex_items(submission:)
2✔
276
        submission.items.select { |item| item["type"] == 'annex' }
16✔
277
      end
278
  end
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