Class: Nvoip::Client
- Inherits:
-
Object
- Object
- Nvoip::Client
- Defined in:
- lib/nvoip/client.rb
Class Method Summary collapse
Instance Method Summary collapse
- #check_otp(code:, key:) ⇒ Object
- #create_access_token(numbersip:, user_token:) ⇒ Object
- #create_call(caller:, called:, access_token:) ⇒ Object
- #get_balance(access_token:) ⇒ Object
-
#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
constructor
A new instance of Client.
- #list_whatsapp_templates(access_token:) ⇒ Object
- #refresh_access_token(refresh_token:) ⇒ Object
- #send_otp(payload:, access_token: nil, napikey: nil) ⇒ Object
- #send_sms(number_phone:, message:, flash_sms: false, access_token: nil, napikey: nil) ⇒ Object
- #send_whatsapp_template(payload:, access_token:) ⇒ Object
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: , 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 |