class OverSIP::Modules::Callsign::Client
Public Class Methods
new(client_id, client_secret)
click to toggle source
# File lib/oversip-mod-callsign/client.rb, line 35 def initialize client_id, client_secret @base_url = 'https://callsign.bwincubator.com/v1' @client_id = client_id @client_secret = client_secret end
Public Instance Methods
describe_token(access_token)
click to toggle source
# File lib/oversip-mod-callsign/client.rb, line 12 def describe_token(access_token) url = [ @base_url, 'tokens', access_token ].join('/') request = if ::Fiber.current != OverSIP.root_fiber send_request :get, url else ::Fiber.new do send_request :get, url end.resume end status = request.response_header.status if status == 200 Token.from_json request.response else nil end end
Private Instance Methods
send_request(method, url)
click to toggle source
# File lib/oversip-mod-callsign/client.rb, line 43 def send_request(method, url) fiber = Fiber.current credentials = Base64.strict_encode64 [@client_id, @client_secret].join(':') http = EventMachine::HttpRequest.new(url).__send__ method.to_sym, :head => { 'Authorization' => ['Basic', credentials].join(' ') } http.callback { fiber.resume(http) } http.errback { fiber.resume(http) } Fiber.yield end