Sha256: 5d52cf1420c1df2f3729ee564b3d1897cbc2e062ae00bf22012a9baa17771579
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
require 'cogitate/interfaces' require 'cogitate/models/agent/with_token' module Cogitate module Client # Responsible for converting a ticket into an agent class RetrieveAgentFromTicket # @api public def self.call(ticket:, **keywords) new(ticket: ticket, **keywords).call end def initialize(ticket:, ticket_coercer: default_ticket_coercer, token_coercer: default_token_coercer) self.ticket = ticket self.ticket_coercer = ticket_coercer self.token_coercer = token_coercer end include Contracts Contract(Contracts::None => Cogitate::Interfaces::AgentWithTokenInterface) def call token = ticket_coercer.call(ticket: ticket) agent = token_coercer.call(token: token) Cogitate::Models::Agent::WithToken.new(token: token, agent: agent) end private attr_accessor :ticket, :ticket_coercer, :token_coercer def default_ticket_coercer # Responsible for issuing a request back to the Cogitate Server and reading the body require 'cogitate/client/ticket_to_token_coercer' unless defined?(TicketToTokenCoercer) TicketToTokenCoercer end def default_token_coercer require 'cogitate/client/token_to_object_coercer' unless defined?(TokenToObjectCoercer) TokenToObjectCoercer end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cogitate-0.0.2 | lib/cogitate/client/retrieve_agent_from_ticket.rb |