Class: Nvoip::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/nvoip/client.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_url: "https://api.nvoip.com.br/v2", oauth_client_id: ENV["NVOIP_OAUTH_CLIENT_ID"], oauth_client_secret: ENV["NVOIP_OAUTH_CLIENT_SECRET"]) ⇒ Client

Returns a new instance of Client.



18
19
20
21
22
23
# File 'lib/nvoip/client.rb', line 18

def initialize(base_url: "https://api.nvoip.com.br/v2",
  oauth_client_id: ENV["NVOIP_OAUTH_CLIENT_ID"], oauth_client_secret: ENV["NVOIP_OAUTH_CLIENT_SECRET"])
  @base_url = base_url.sub(%r{/+$}, "")
  @oauth_client_id = oauth_client_id
  @oauth_client_secret = oauth_client_secret
end

Class Method Details

.encode_basic_auth(client_id, client_secret) ⇒ Object



25
26
27
# File 'lib/nvoip/client.rb', line 25

def self.encode_basic_auth(client_id, client_secret)
  Base64.strict_encode64("#{client_id}:#{client_secret}")
end

Instance Method Details

#check_otp(code:, key:) ⇒ Object



92
93
94
# File 'lib/nvoip/client.rb', line 92

def check_otp(code:, key:)
  request("GET", "/check/otp?code=#{URI.encode_www_form_component(code)}&key=#{URI.encode_www_form_component(key)}")
end

#create_access_token(numbersip:, user_token:) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/nvoip/client.rb', line 29

def create_access_token(numbersip:, user_token:)
  request_form(
    "POST",
    "/oauth/token",
    {
      username: numbersip,
      password: user_token,
      grant_type: "password"
    },
    {
      "Authorization" => "Basic #{resolve_basic_auth}"
    }
  )
end

#create_call(caller:, called:, access_token:) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
# File 'lib/nvoip/client.rb', line 76

def create_call(caller:, called:, access_token:)
  request_json(
    "POST",
    "/calls/",
    {
      caller: caller,
      called: called
    },
    access_token: access_token
  )
end

#get_balance(access_token:) ⇒ Object



58
59
60
# File 'lib/nvoip/client.rb', line 58

def get_balance(access_token:)
  request("GET", "/balance", headers: auth_headers(access_token))
end

#list_whatsapp_templates(access_token:) ⇒ Object



96
97
98
# File 'lib/nvoip/client.rb', line 96

def list_whatsapp_templates(access_token:)
  request("GET", "/wa/listTemplates", headers: auth_headers(access_token))
end

#refresh_access_token(refresh_token:) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/nvoip/client.rb', line 44

def refresh_access_token(refresh_token:)
  request_form(
    "POST",
    "/oauth/token",
    {
      grant_type: "refresh_token",
      refresh_token: refresh_token
    },
    {
      "Authorization" => "Basic #{resolve_basic_auth}"
    }
  )
end

#send_otp(payload:, access_token: nil, napikey: nil) ⇒ Object



88
89
90
# File 'lib/nvoip/client.rb', line 88

def send_otp(payload:, access_token: nil, napikey: nil)
  request_json("POST", "/otp", payload, access_token: access_token, napikey: napikey)
end

#send_sms(number_phone:, message:, flash_sms: false, access_token: nil, napikey: nil) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/nvoip/client.rb', line 62

def send_sms(number_phone:, message:, flash_sms: false, access_token: nil, napikey: nil)
  request_json(
    "POST",
    "/sms",
    {
      numberPhone: number_phone,
      message: message,
      flashSms: flash_sms
    },
    access_token: access_token,
    napikey: napikey
  )
end

#send_whatsapp_template(payload:, access_token:) ⇒ Object



100
101
102
# File 'lib/nvoip/client.rb', line 100

def send_whatsapp_template(payload:, access_token:)
  request_json("POST", "/wa/sendTemplates", payload, access_token: access_token)
end