Sha256: 74cfdf815e490e3b82e4417572917ec38a9f4de27aef4ffc588c6dd86396d4f2
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
module VoiceBase module V3 module Client include VoiceBase::V2::Client 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 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 private def require_media_file_or_url!(args = {}) if args[:media_url].nil? && args[:media_file].nil? raise ArgumentError, "Missing argument :media_url or :media_file" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
voicebase-client-ruby-1.3.0 | lib/voicebase/v3/client.rb |