Class: TotalVoice::Chamada

Inherits:
Object
  • Object
show all
Defined in:
lib/api/chamada.rb

Overview

Inicializa o HTTP client

Constant Summary collapse

ROTA_CHAMADA =
"/chamada"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Chamada

Returns a new instance of Chamada.



10
11
12
# File 'lib/api/chamada.rb', line 10

def initialize(client)
  @client = client
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



7
8
9
# File 'lib/api/chamada.rb', line 7

def client
  @client
end

Instance Method Details

#avaliar(id, nota, comentario = nil) ⇒ json

Avalia uma Chamada com nota de 1 a 5

Parameters:

  • id (Integer)
  • nota (String)
  • comentario (String) (defaults to: nil)

Returns:

  • (json)


115
116
117
118
119
120
# File 'lib/api/chamada.rb', line 115

def avaliar(id, nota, comentario = nil)
  @client.post(Route.new([ROTA_CHAMADA, id.to_s, 'avaliar']), {
    nota: nota,
    comentario: comentario
  })
end

#buscar(id) ⇒ json

Busca as informações do registro da chamada

Parameters:

  • id (Integer)

Returns:

  • (json)


49
50
51
# File 'lib/api/chamada.rb', line 49

def buscar(id)
  @client.get(Route.new([ROTA_CHAMADA, id.to_s]))
end

#download_gravacao(id) ⇒ json

Busca as informações do registro da chamada

Parameters:

  • id (Integer)

Returns:

  • (json)


59
60
61
# File 'lib/api/chamada.rb', line 59

def download_gravacao(id)
  @client.get(Route.new([ROTA_CHAMADA, id.to_s, 'gravacao']))
end

#encerrar(id) ⇒ json

Encerra uma chamada ativa

Parameters:

  • id (Integer)

Returns:

  • (json)


39
40
41
# File 'lib/api/chamada.rb', line 39

def encerrar(id)
  @client.delete(Route.new([ROTA_CHAMADA, id.to_s]))
end

#escutar(id, numero, modo) ⇒ json

(Beta) Escuta uma chamada ativa

Parameters:

  • id (Integer)
  • numero (String)
  • modo (Integer)

Returns:

  • (json)


85
86
87
88
89
90
# File 'lib/api/chamada.rb', line 85

def escutar(id, numero, modo)
  @client.post(Route.new([ROTA_CHAMADA, id.to_s, 'escuta']), {
    numero: numero,
    modo: modo
  })
end

#ligar(numero_origem, numero_destino, opcoes = {}) ⇒ json

Realiza uma chamada telefônica entre dois números: A e B

Parameters:

  • numero_origem (String)
  • numero_destino (String)
  • opcoes (Hash) (defaults to: {})

Returns:

  • (json)


22
23
24
25
26
27
28
29
30
31
# File 'lib/api/chamada.rb', line 22

def ligar(numero_origem, numero_destino, opcoes = {})

  data = {
    numero_origem: numero_origem,
    numero_destino: numero_destino
  }
  data.merge!(opcoes)

  @client.post(Route.new([ROTA_CHAMADA]), data)
end

#relatorio(data_inicio, data_fim) ⇒ json

Gera relatório de chamadas

Parameters:

  • data_inicio (DateTime|String)
  • data_fim (DateTime|String)

Returns:

  • (json)


70
71
72
73
74
75
# File 'lib/api/chamada.rb', line 70

def relatorio(data_inicio, data_fim)
  @client.get(
    Route.new([ROTA_CHAMADA, 'relatorio']),
    Query.new({ 'data_inicio': Time.parse(data_inicio.to_s).utc, 'data_fim': Time.parse(data_fim.to_s).utc })
  )
end

#transferir(id, numero, perna) ⇒ json

(Beta) Faz uma transferência da chamada atual

Parameters:

  • id (Integer)
  • numero (String)
  • perna (String)

Returns:

  • (json)


100
101
102
103
104
105
# File 'lib/api/chamada.rb', line 100

def transferir(id, numero, perna)
  @client.post(Route.new([ROTA_CHAMADA, id.to_s, 'transfer']), {
    numero: numero,
    perna: perna
  })
end