Class: Porkbun::Client
- Inherits:
-
Object
- Object
- Porkbun::Client
- Defined in:
- lib/porkbun/client.rb
Constant Summary collapse
- BASE_URL =
"https://porkbun.com/api/json/v3"
Class Method Summary collapse
- .connection ⇒ Object
- .delete_request(url, headers: {}) ⇒ Object
- .handle_response(response) ⇒ Object
- .patch_request(url, body:, headers: {}) ⇒ Object
- .post_request(url, body: {}, headers: {}) ⇒ Object
- .put_request(url, body:, headers: {}) ⇒ Object
Class Method Details
.connection ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/porkbun/client.rb', line 8 def connection @connection ||= Faraday.new(BASE_URL) do |conn| conn.headers = { "User-Agent" => "porkbun/v#{VERSION} (github.com/deanpcmad/porkbun)" } conn.request :json conn.response :json, content_type: "application/json" end end |
.delete_request(url, headers: {}) ⇒ Object
34 35 36 |
# File 'lib/porkbun/client.rb', line 34 def delete_request(url, headers: {}) handle_response connection.delete(url, headers) end |
.handle_response(response) ⇒ Object
38 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 |
# File 'lib/porkbun/client.rb', line 38 def handle_response(response) case response.status when 400 raise Error, "Error 400: Your request was malformed. '#{response.body["message"]}'" when 401 raise Error, "Error 401: You did not supply valid authentication credentials. '#{response.body["message"]}'" when 403 raise Error, "Error 403: You are not allowed to perform that action. '#{response.body["message"]}'" when 404 raise Error, "Error 404: No results were found for your request. '#{response.body["message"]}'" when 409 raise Error, "Error 409: Your request was a conflict. '#{response.body["message"]}'" when 422 raise Error, "Error 422: Unprocessable Content. '#{response.body["message"]}'" when 429 raise Error, "Error 429: Your request exceeded the API rate limit. '#{response.body["message"]}'" when 500 raise Error, "Error 500: We were unable to perform the request due to server-side problems. '#{response.body["message"]}'" when 503 raise Error, "Error 503: You have been rate limited for sending more than 20 requests per second. '#{response.body["message"]}'" when 501 raise Error, "Error 501: This resource has not been implemented. '#{response.body["message"]}'" when 204 return true end response end |
.patch_request(url, body:, headers: {}) ⇒ Object
30 31 32 |
# File 'lib/porkbun/client.rb', line 30 def patch_request(url, body:, headers: {}) handle_response connection.patch(url, body, headers) end |
.post_request(url, body: {}, headers: {}) ⇒ Object
20 21 22 23 24 |
# File 'lib/porkbun/client.rb', line 20 def post_request(url, body: {}, headers: {}) auth = {apikey: Porkbun.config.api_key, secretapikey: Porkbun.config.api_secret} body.merge!(auth) handle_response connection.post(url, body, headers) end |
.put_request(url, body:, headers: {}) ⇒ Object
26 27 28 |
# File 'lib/porkbun/client.rb', line 26 def put_request(url, body:, headers: {}) handle_response connection.put(url, body, headers) end |