Class: PusherPlatform::Instance

Inherits:
Object
  • Object
show all
Defined in:
lib/pusher-platform/instance.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Instance

Returns a new instance of Instance.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/pusher-platform/instance.rb', line 12

def initialize(options)
  raise PusherPlatform::Error.new("No instance locator provided") if options[:locator].nil?
  raise PusherPlatform::Error.new("No key provided") if options[:key].nil?
  raise PusherPlatform::Error.new("No service name provided") if options[:service_name].nil?
  raise PusherPlatform::Error.new("No service version provided") if options[:service_version].nil?
  locator = options[:locator]
  @service_name = options[:service_name]
  @service_version = options[:service_version]

  key_parts = options[:key].match(/^([^:]+):(.+)$/)
  raise PusherPlatform::Error.new("Invalid key") if key_parts.nil?

  @key_id = key_parts[1]
  @key_secret = key_parts[2]

  split_locator = locator.split(':')

  @platform_version = split_locator[0]
  @cluster = split_locator[1]
  @instance_id = split_locator[2]

  @client = if options[:client]
    options[:client]
  else
    BaseClient.new(
      host: options[:host] || "#{@cluster}.#{HOST_BASE}",
      port: options[:port],
      instance_id: @instance_id,
      service_name: @service_name,
      service_version: @service_version
    )
  end

  @authenticator = Authenticator.new(@instance_id, @key_id, @key_secret)
end

Instance Method Details

#authenticate(auth_payload, options) ⇒ Object



52
53
54
# File 'lib/pusher-platform/instance.rb', line 52

def authenticate(auth_payload, options)
  @authenticator.authenticate(auth_payload, options)
end

#authenticate_with_refresh_token(auth_payload, options) ⇒ Object



60
61
62
# File 'lib/pusher-platform/instance.rb', line 60

def authenticate_with_refresh_token(auth_payload, options)
  @authenticator.authenticate_with_refresh_token(auth_payload, options)
end

#authenticate_with_refresh_token_and_request(auth_payload, options) ⇒ Object



64
65
66
# File 'lib/pusher-platform/instance.rb', line 64

def authenticate_with_refresh_token_and_request(auth_payload, options)
  @authenticator.authenticate_with_refresh_token_and_request(auth_payload, options)
end

#authenticate_with_request(request, options) ⇒ Object



56
57
58
# File 'lib/pusher-platform/instance.rb', line 56

def authenticate_with_request(request, options)
  @authenticator.authenticate_with_request(request, options)
end

#generate_access_token(options) ⇒ Object



68
69
70
# File 'lib/pusher-platform/instance.rb', line 68

def generate_access_token(options)
  @authenticator.generate_access_token(options)
end

#request(options) ⇒ Object



48
49
50
# File 'lib/pusher-platform/instance.rb', line 48

def request(options)
  @client.request(options)
end