Method: Fcmpush::Client#initialize

Defined in:
lib/fcmpush/client.rb

#initialize(domain, project_id, configuration, **options) ⇒ Client

Returns a new instance of Client.



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
# File 'lib/fcmpush/client.rb', line 17

def initialize(domain, project_id, configuration, **options)
  @domain = domain
  @project_id = project_id
  @path = V1_ENDPOINT_PREFIX + project_id.to_s + V1_ENDPOINT_SUFFIX
  @options = {}.merge(options)
  @configuration = configuration.dup
  access_token_response = v1_authorize
  @access_token = access_token_response['access_token']
  @access_token_expiry = Time.now.utc + access_token_response['expires_in']
  # @server_key = configuration.server_key
  @connection = Net::HTTP::Persistent.new

  @connection.open_timeout = configuration.open_timeout if configuration.open_timeout
  @connection.read_timeout = configuration.read_timeout if configuration.read_timeout

  if !configuration.proxy
    # do nothing
  elsif configuration.proxy == :ENV
    @connection.proxy = :ENV
  elsif configuration.proxy && configuration.proxy[:uri]
    uri = URI(configuration.proxy[:uri])
    # user name must not be a empty string, password can
    if configuration.proxy[:user] && configuration.proxy[:user].strip != ''
      uri.user = configuration.proxy[:user]
      uri.password = configuration.proxy[:password] if configuration.proxy[:password]
    end
    @connection.proxy = uri
  end
end