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

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

Raises:

  • (ArgumentError)


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