Class: IncomingEmailDetailsSerializer
Constant Summary
collapse
- EMAIL_RECEIVER_ERROR_PREFIX =
"Email::Receiver::"
Instance Method Summary
collapse
expire_cache_fragment!, fragment_cache
#include!
Constructor Details
Returns a new instance of IncomingEmailDetailsSerializer.
6
7
8
9
10
|
# File 'app/serializers/incoming_email_details_serializer.rb', line 6
def initialize(incoming_email, opts)
super
@error_string = incoming_email.error
@mail = Mail.new(incoming_email.raw)
end
|
Instance Method Details
#body ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'app/serializers/incoming_email_details_serializer.rb', line 35
def body
body =
begin
@mail.text_part.decoded
rescue StandardError
nil
end
body ||=
begin
@mail.html_part.decoded
rescue StandardError
nil
end
body ||=
begin
@mail.body.decoded
rescue StandardError
nil
end
return I18n.t("emails.incoming.no_body") if body.blank?
body
.encode("utf-8", invalid: :replace, undef: :replace, replace: "")
.strip
.truncate_words(100, escape: false)
end
|
#error ⇒ Object
14
15
16
|
# File 'app/serializers/incoming_email_details_serializer.rb', line 14
def error
@error_string.presence || I18n.t("emails.incoming.unrecognized_error")
end
|
#error_description ⇒ Object
18
19
20
21
|
# File 'app/serializers/incoming_email_details_serializer.rb', line 18
def error_description
error_name = @error_string.sub(EMAIL_RECEIVER_ERROR_PREFIX, "").underscore
I18n.t("emails.incoming.errors.#{error_name}")
end
|
27
28
29
|
# File 'app/serializers/incoming_email_details_serializer.rb', line 27
def
@mail..to_s
end
|
#include_error_description? ⇒ Boolean
23
24
25
|
# File 'app/serializers/incoming_email_details_serializer.rb', line 23
def include_error_description?
@error_string && @error_string[EMAIL_RECEIVER_ERROR_PREFIX]
end
|
#subject ⇒ Object
31
32
33
|
# File 'app/serializers/incoming_email_details_serializer.rb', line 31
def subject
@mail.subject.presence || I18n.t("emails.incoming.no_subject")
end
|