Class: Ecoportal::API::Common::GraphQL::Client

Inherits:
Graphlient::Client
  • Object
show all
Includes:
AuthService
Defined in:
lib/ecoportal/api/common/graphql/client.rb

Constant Summary collapse

ENDPOINT_PATH =
'external/graphql'.freeze
READ_TIMEOUT =
90
WRITE_TIMEOUT =
90

Constants included from AuthService

AuthService::DEFAULT_SERVER, AuthService::TOKEN_AUTORENEW

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from AuthService::InstanceMethods

#session_token, #session_token_renewed

Constructor Details

#initialize(email: nil, pass: nil, org_id: self.org_id, host: server, schema_path: host, no_schema: false) ⇒ Client

Returns a new instance of Client.



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/ecoportal/api/common/graphql/client.rb', line 16

def initialize(
  email:       nil,
  pass:        nil,
  org_id:      self.org_id,
  host:        server,
  schema_path: host,
  no_schema:   false
)
  @org_id      = org_id
  @host        = host
  @no_schema   = no_schema
  @user_email  = email
  @user_pass   = pass

  puts "Configuring GraphQL Client onto '#{url}'"

  pp email

  super(
    url,
    headers:      {
      'Authorization' => "Bearer #{session_token(host: host)}"
    },
    http_options: {
      read_timeout:  READ_TIMEOUT,
      write_timeout: WRITE_TIMEOUT
    }.tap do |options|
      options.merge!(schema_path: schema_path) unless @no_schema
    end
  )
end

Instance Attribute Details

#hostObject

Returns the value of attribute host.



9
10
11
# File 'lib/ecoportal/api/common/graphql/client.rb', line 9

def host
  @host
end

#http_clientObject

Returns the value of attribute http_client.



9
10
11
# File 'lib/ecoportal/api/common/graphql/client.rb', line 9

def http_client
  @http_client
end

Instance Method Details

#new(org_id: self.org_id, host: self.host, schema_path: host, no_schema: @no_schema) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/ecoportal/api/common/graphql/client.rb', line 48

def new(org_id: self.org_id, host: self.host, schema_path: host, no_schema: @no_schema)
  self.class.new(
    org_id:      org_id,
    host:        host,
    schema_path: schema_path,
    no_schema:   no_schema
  )
end

#org_idObject



57
58
59
# File 'lib/ecoportal/api/common/graphql/client.rb', line 57

def org_id
  @org_id || fetch_env_required('ORGANIZATION_ID')
end