Module: Utils::DigitalOcean::Request
- Defined in:
- lib/bas/utils/digital_ocean/request.rb
Overview
This module is a Notion utility for sending request to create, update, or delete Notion resources.
Constant Summary collapse
- DIGITAL_OCEAN_BASE_URL =
"https://api.digitalocean.com/v2"
Class Method Summary collapse
-
.execute(params) ⇒ Object
Implements the request process logic to Notion.
- .headers(secret) ⇒ Object
- .validate_params(params) ⇒ Object
Class Method Details
.execute(params) ⇒ Object
Implements the request process logic to Notion.
Params:
-
method
HTTP request method: post, get, put, etc. -
body
Request body (Hash). -
endpoint
Notion resource endpoint. -
secret
Notion secret.
returns HTTParty::Response
27 28 29 30 31 32 33 34 35 |
# File 'lib/bas/utils/digital_ocean/request.rb', line 27 def self.execute(params) validate_params(params) url = "#{DIGITAL_OCEAN_BASE_URL}/#{params[:endpoint]}" headers = headers(params[:secret]) body = params[:body]&.to_json HTTParty.send(params[:method], url, { body: body, headers: headers }) end |
.headers(secret) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/bas/utils/digital_ocean/request.rb', line 37 def self.headers(secret) { "Authorization" => "Bearer #{secret}", "Content-Type" => "application/json" } end |
.validate_params(params) ⇒ Object
44 45 46 47 |
# File 'lib/bas/utils/digital_ocean/request.rb', line 44 def self.validate_params(params) raise ArgumentError, "Secret is required" unless params[:secret] raise ArgumentError, "Endpoint is required" unless params[:endpoint] end |