Class: Emailfuse::Client
- Inherits:
-
Object
- Object
- Emailfuse::Client
- Defined in:
- lib/emailfuse/client.rb
Class Method Summary collapse
- .connection ⇒ Object
- .delete_request(url, headers: {}) ⇒ Object
- .get_request(url, params: {}, headers: {}) ⇒ Object
- .handle_response(response) ⇒ Object
- .patch_request(url, body:, headers: {}) ⇒ Object
- .post_request(url, body: {}, headers: {}) ⇒ Object
- .url ⇒ Object
Class Method Details
.connection ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/emailfuse/client.rb', line 8 def connection @connection ||= Faraday.new("#{url}/api/v1") do |conn| conn.request :authorization, :Bearer, Emailfuse.config.token conn.headers = { "User-Agent" => "emailfuse/v#{VERSION} (github.com/voupe/emailfuse-gem)" } conn.request :multipart conn.request :json conn.response :json end end |
.delete_request(url, headers: {}) ⇒ Object
35 36 37 |
# File 'lib/emailfuse/client.rb', line 35 def delete_request(url, headers: {}) handle_response connection.delete(url, headers) end |
.get_request(url, params: {}, headers: {}) ⇒ Object
23 24 25 |
# File 'lib/emailfuse/client.rb', line 23 def get_request(url, params: {}, headers: {}) handle_response connection.get(url, params, headers) end |
.handle_response(response) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/emailfuse/client.rb', line 39 def handle_response(response) case response.status when 400 raise Error, "Error 400: Your request was malformed." when 401 raise Error, "Error 401: You did not supply valid authentication credentials." when 403 raise Error, "Error 403: You are not allowed to perform that action." when 404 raise Error, "Error 404: No results were found for your request." when 409 raise Error, "Error 409: Your request was a conflict." when 429 raise Error, "Error 429: Your request exceeded the API rate limit." when 422 raise Error, "Error 422: Unprocessable Entity." when 500 raise Error, "Error 500: We were unable to perform the request due to server-side problems." when 503 raise Error, "Error 503: You have been rate limited for sending more than 20 requests per second." when 501 raise Error, "Error 501: This resource has not been implemented." when 204 return true end response end |
.patch_request(url, body:, headers: {}) ⇒ Object
31 32 33 |
# File 'lib/emailfuse/client.rb', line 31 def patch_request(url, body:, headers: {}) handle_response connection.patch(url, body, headers) end |
.post_request(url, body: {}, headers: {}) ⇒ Object
27 28 29 |
# File 'lib/emailfuse/client.rb', line 27 def post_request(url, body: {}, headers: {}) handle_response connection.post(url, body, headers) end |