Class: CivicSIPSdk::Client
- Inherits:
-
Object
- Object
- CivicSIPSdk::Client
- Defined in:
- lib/civic_sip_sdk/client.rb
Constant Summary collapse
- BASE_URL =
'https://api.civic.com/sip'- AUTH_CODE_PATH =
'scopeRequest/authCode'- PUBLIC_HEX =
'049a45998638cfb3c4b211d72030d9ae8329a242db63bfb0076a54e7647370a8ac5708b57af6065805d5a6be72332620932dbb35e8d318fce18e7c980a0eb26aa1'- MIMETYPE_JSON =
'application/json'- ENV_VAR =
'CIVIC_SIP_SDK_ENV'- TEST_ENV =
'test'- HTTP_REQUEST_METHOD =
'POST'
Instance Method Summary collapse
-
#exchange_code(jwt_token:) ⇒ CivicSIPSdk::UserData
Exchange authorization code in the form of a JWT Token for the user data requested in the scope request.
-
#initialize(config:) ⇒ Client
constructor
Creates a client.
Constructor Details
#initialize(config:) ⇒ Client
Creates a client
24 25 26 27 |
# File 'lib/civic_sip_sdk/client.rb', line 24 def initialize(config:) @config = config @test_env = ENV[ENV_VAR] == TEST_ENV end |
Instance Method Details
#exchange_code(jwt_token:) ⇒ CivicSIPSdk::UserData
Exchange authorization code in the form of a JWT Token for the user data requested in the scope request.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/civic_sip_sdk/client.rb', line 34 def exchange_code(jwt_token:) json_body_str = JSON.generate('authToken' => jwt_token) response = HTTParty.post( "#{BASE_URL}/#{@config.env}/#{AUTH_CODE_PATH}", headers: { 'Content-Type' => MIMETYPE_JSON, 'Accept' => MIMETYPE_JSON, 'Content-Length' => json_body_str.size.to_s, 'Authorization' => (body: json_body_str) }, body: json_body_str ) unless response.code == 200 raise StandardError.new( "Failed to exchange JWT token. HTTP status: #{response.code}, response body: #{response.body}" ) end res_payload = JSON.parse(response.body) extract_user_data(response: res_payload) end |