Class: Ghostcrawl::SessionsClient

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

Overview

Manage browser sessions — /v1/sessions.

Instance Method Summary collapse

Constructor Details

#initialize(v1) ⇒ SessionsClient

Returns a new instance of SessionsClient.



611
612
613
# File 'lib/ghostcrawl/client.rb', line 611

def initialize(v1)
  @v1 = v1
end

Instance Method Details

#create(profile_name:, **opts) ⇒ Object

Create a new browser session. Delegates to POST /v1/sessions/create via the generated builder.

Parameters:

  • profile_name (String)

    identity profile to use



624
625
626
627
# File 'lib/ghostcrawl/client.rb', line 624

def create(profile_name:, **opts)
  data = { "profile" => profile_name }.merge(opts.transform_keys(&:to_s))
  ResponseHelper.to_hash(@v1.sessions.create.post(AdditionalDataBody.new(data)))
end

#extend(session_id, duration_seconds: 300) ⇒ Object

Extend a session's TTL. Delegates to POST /v1/sessions/id/extend via the generated builder.



631
632
633
634
635
# File 'lib/ghostcrawl/client.rb', line 631

def extend(session_id, duration_seconds: 300)
  ResponseHelper.to_hash(@v1.sessions.by_profile_id(session_id).extend.post(
    AdditionalDataBody.new({ "ttl_seconds" => duration_seconds })
  ))
end

#listObject

List all active sessions. Delegates to GET /v1/sessions via the generated SessionsRequestBuilder.



617
618
619
# File 'lib/ghostcrawl/client.rb', line 617

def list
  ResponseHelper.to_hash(@v1.sessions.get)
end

#release(session_id) ⇒ Object

Release a session back to the pool. Delegates to POST /v1/sessions/id/release via the generated builder.



639
640
641
# File 'lib/ghostcrawl/client.rb', line 639

def release(session_id)
  ResponseHelper.to_hash(@v1.sessions.by_profile_id(session_id).release.post)
end