Class: PlatformSdk::LearnosityApi::Client

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

Overview

Learnosity::Client

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(credentials) ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/platform_sdk/learnosity_api/client.rb', line 12

def initialize(credentials)
  @credentials = credentials

  raise ArgumentError, "learnosity_host is required" if @credentials[:learnosity_host].nil?
  raise ArgumentError, "learnosity_version is required" if @credentials[:learnosity_version].nil?
  raise ArgumentError, "service is required" if @credentials[:service].nil?
  raise ArgumentError, "consumer_key is required" if @credentials[:consumer_key].nil?
  raise ArgumentError, "consumer_secret is required" if @credentials[:consumer_secret].nil?
  raise ArgumentError, "organisation_id is required" if @credentials[:organisation_id].nil?
  raise ArgumentError, "domain is required" if @credentials[:domain].nil?

  @security = {
    "consumer_key" => @credentials[:consumer_key],
    "user_id" => SecureRandom.uuid,
    "domain" => @credentials[:domain]
  }

end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials.



10
11
12
# File 'lib/platform_sdk/learnosity_api/client.rb', line 10

def credentials
  @credentials
end

#securityObject (readonly)

Returns the value of attribute security.



10
11
12
# File 'lib/platform_sdk/learnosity_api/client.rb', line 10

def security
  @security
end

Instance Method Details

#post(path, request) ⇒ Object



41
42
43
44
45
# File 'lib/platform_sdk/learnosity_api/client.rb', line 41

def post(path, request)
  request["organisation_id"] = @credentials[:organisation_id]
  uri = URI("https://#{@credentials[:learnosity_host]}/#{@credentials[:learnosity_version]}/#{path}")
  Net::HTTP.post_form(uri, sign(request))
end

#sign(request) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/platform_sdk/learnosity_api/client.rb', line 31

def sign(request)
  init = Learnosity::Sdk::Request::Init.new(
    @credentials[:service],
    @security,
    @credentials[:consumer_secret],
    request
  )
  init.generate
end