Class: EmailClient
- Inherits:
-
Object
- Object
- EmailClient
- Defined in:
- lib/email_api/email/client/email_client.rb
Overview
General client that sends email utilizing multiple service providers
Class Method Summary collapse
-
.bad_req_code ⇒ Object
Accessor for the Bad Request Code.
-
.internal_err_code ⇒ Object
Accessor for the Internal Server Error Code.
-
.ok_code ⇒ Object
Accessor for the OK Code.
-
.send_email(email_object) ⇒ ClientResponse
Sends email utilizing multiple service providers.
-
.use_client_client(email_client, email_object) ⇒ Integer
Sends email using a single email client.
Class Method Details
.bad_req_code ⇒ Object
Accessor for the Bad Request Code
15 16 17 |
# File 'lib/email_api/email/client/email_client.rb', line 15 def self.bad_req_code 400 end |
.internal_err_code ⇒ Object
Accessor for the Internal Server Error Code
20 21 22 |
# File 'lib/email_api/email/client/email_client.rb', line 20 def self.internal_err_code 500 end |
.ok_code ⇒ Object
Accessor for the OK Code
10 11 12 |
# File 'lib/email_api/email/client/email_client.rb', line 10 def self.ok_code 200 end |
.send_email(email_object) ⇒ ClientResponse
Sends email utilizing multiple service providers
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/email_api/email/client/email_client.rb', line 28 def self.send_email(email_object) return ClientResponse.new if email_object.nil? || !email_object.is_a?(EmailObject) puts 'Attempting Email Sending via primary client: SENDGRID' response = use_client_client SendgridClient, email_object if response != ok_code puts 'Primary client failed. Attempting secondary client: MAILGUN' response = use_client_client MailgunClient, email_object end client_response = ClientResponse.new email_object if response == ok_code client_response.set_ok elsif response == bad_req_code client_response.set_bad_req elsif response == internal_err_code client_response.set_internal_err end client_response end |
.use_client_client(email_client, email_object) ⇒ Integer
Sends email using a single email client
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/email_api/email/client/email_client.rb', line 56 def self.use_client_client(email_client, email_object) begin response = email_client.send_email(email_object) puts 'Successful attempt' if response == ok_code puts 'Bad Request' if response == bad_req_code puts 'Internal Server Error' if response == internal_err_code rescue StandardError => e # Log error and fail send puts "Error: #{e.message}" response = internal_err_code end response end |