Module: VoiceBase::V3::Client

Includes:
VoiceBase::V2::Client
Defined in:
lib/voicebase/v3/client.rb

Constant Summary

Constants included from VoiceBase::V2::Client

VoiceBase::V2::Client::BOUNDARY, VoiceBase::V2::Client::MULTIPART_CONTENT_TYPE

Class Method Summary collapse

Instance Method Summary collapse

Methods included from VoiceBase::V2::Client

#authenticate!, #delete_file, #get_json_transcript, #get_media, #get_media_progress, #get_text_transcript, #get_transcript

Class Method Details

.extended(client, args = {}) ⇒ Object



6
7
8
9
# File 'lib/voicebase/v3/client.rb', line 6

def self.extended(client, args = {})
  client.api_host     = client.args[:host] || ENV.fetch('VOICEBASE_V3_API_HOST', 'https://apis.voicebase.com')
  client.api_endpoint = client.args[:api_endpoint] || ENV.fetch('VOICEBASE_V3_API_ENDPOINT', '/v3')
end

Instance Method Details

#upload_media(args = {}, headers = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/voicebase/v3/client.rb', line 11

def upload_media(args = {}, headers = {})
  require_media_file_or_url!(args)
  r = ::VoiceBase::Request::MultipartBuilder.new(headers: default_headers(headers))

  if args[:config]
    r.add(VoiceBase::Request::HashPart.new(name: "configuration", hash: args[:config]))
  end

  if args[:media_url]
    r.add(VoiceBase::Request::TextPart.new(name: "mediaUrl", body: args[:media_url]))
  end

  if args[:media_file]
    r.add(VoiceBase::Request::FilePart.new(name: "media", file: args[:media_file]))
  end

  #TODO: make metadata an object
  if args[:metadata]
    r.add(VoiceBase::Request::HashPart.new(name: "metadata", hash: args[:metadata]))
  end

  response = self.class.post(
      uri + '/media',
      headers: r.headers,
      body: r.body
  )
  VoiceBase::Response.new(response, api_version)
end