Class: PlatformSdk::Edkey::Client

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

Instance Attribute Summary collapse

Instance Method Summary collapse

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_urlObject (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_idObject (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_secretObject (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

#connObject (readonly)

Returns the value of attribute conn.



6
7
8
# File 'lib/platform_sdk/edkey/client.rb', line 6

def conn
  @conn
end

#tokenObject (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_atObject (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_tokenObject



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

Returns:

  • (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

#headersObject



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