Class: PlatformSdk::Edkey::Client
- Inherits:
 - 
      Object
      
        
- Object
 - PlatformSdk::Edkey::Client
 
 
- Defined in:
 - lib/platform_sdk/edkey/client.rb
 
Instance Attribute Summary collapse
- 
  
    
      #base_url  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute base_url.
 - 
  
    
      #client_id  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute client_id.
 - 
  
    
      #client_secret  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute client_secret.
 - 
  
    
      #conn  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute conn.
 - 
  
    
      #token  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute token.
 - 
  
    
      #token_expires_at  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute token_expires_at.
 
Instance Method Summary collapse
- #access_token ⇒ Object
 - #attendance(start_date, end_date) ⇒ Object
 - #expired? ⇒ Boolean
 - #headers ⇒ Object
 - 
  
    
      #initialize(base_url, client_id, client_secret)  ⇒ Client 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Client.
 
Constructor Details
#initialize(base_url, client_id, client_secret) ⇒ Client
Returns a new instance of Client.
      8 9 10 11 12 13 14 15 16 17 18 19 20 21  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 8 def initialize(base_url, client_id, client_secret) @client_id = client_id @client_secret = client_secret @base_url = base_url # @token = "q8XNbZJRJjB4AkCgVlGAxjvEFYm7xeK9" @conn = Faraday.new(base_url) do |faraday| faraday.adapter :net_http faraday.request :json faraday.response :json faraday.response :raise_error end end  | 
  
Instance Attribute Details
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
      6 7 8  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 6 def base_url @base_url end  | 
  
#client_id ⇒ Object (readonly)
Returns the value of attribute client_id.
      6 7 8  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 6 def client_id @client_id end  | 
  
#client_secret ⇒ Object (readonly)
Returns the value of attribute client_secret.
      6 7 8  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 6 def client_secret @client_secret end  | 
  
#conn ⇒ Object (readonly)
Returns the value of attribute conn.
      6 7 8  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 6 def conn @conn end  | 
  
#token ⇒ Object (readonly)
Returns the value of attribute token.
      6 7 8  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 6 def token @token end  | 
  
#token_expires_at ⇒ Object (readonly)
Returns the value of attribute token_expires_at.
      6 7 8  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 6 def token_expires_at @token_expires_at end  | 
  
Instance Method Details
#access_token ⇒ Object
      31 32 33 34 35 36 37 38 39 40 41  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 31 def access_token if expired? response = @conn.post("api/v2/auth/request-token", token_request_body.to_json, { "Content-Type" => "application/json", "Accept" => "*/*" }) @token = response.body["token"] @token_expires_at = DateTime.strptime(response.body["expires_at"], "%Y-%m-%d %H:%M:%S") end @token end  | 
  
#attendance(start_date, end_date) ⇒ Object
      49 50 51 52 53 54 55 56 57  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 49 def attendance(start_date, end_date) path = "/api/v2/attendance-exporter/long-term" body = { startDate: start_date, endDate: end_date }.to_json response = @conn.post(path, body, headers) response.body end  | 
  
#expired? ⇒ Boolean
      43 44 45 46 47  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 43 def expired? return true if @token.nil? @token_expires_at < DateTime.now end  | 
  
#headers ⇒ Object
      23 24 25 26 27 28 29  | 
    
      # File 'lib/platform_sdk/edkey/client.rb', line 23 def headers { "Authorization" => "Bearer #{access_token}", "Content-Type" => "application/json", "Accept" => "application/json" } end  |