Module: VoiceBase::V2::Client
Defined Under Namespace
Classes: FileParam, HashParam, StringParam
Constant Summary
collapse
- BOUNDARY =
"0123456789ABLEWASIEREISAWELBA9876543210"
- MULTIPART_CONTENT_TYPE =
"multipart/form-data; boundary=#{BOUNDARY}"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.extended(client, args = {}) ⇒ Object
7
8
9
10
|
# File 'lib/voicebase/v2/client.rb', line 7
def self.extended(client, args = {})
client.api_host = client.args[:host] || ENV.fetch('VOICEBASE_V2_API_HOST', 'https://apis.voicebase.com')
client.api_endpoint = client.args[:api_endpoint] || ENV.fetch('VOICEBASE_V2_API_ENDPOINT', '/v2-beta')
end
|
Instance Method Details
#authenticate! ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/voicebase/v2/client.rb', line 12
def authenticate!
auth = {:username => @auth_key, :password => @auth_secret}
response = VoiceBase::Response.new(
self.class.get(
uri + '/access/users/admin/tokens',
basic_auth: auth,
headers: {
'User-Agent' => @user_agent,
'Accept' => 'application/json'
}
), api_version)
@token = VoiceBase::Client::Token.new(response.tokens.any? && response.tokens.first.fetch("token"))
rescue NoMethodError => ex
raise VoiceBase::AuthenticationError, response.status_message
end
|
#delete_file(args = {}, headers = {}) ⇒ Object
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/voicebase/v2/client.rb', line 105
def delete_file(args = {}, = {})
raise ArgumentError, "Missing argument :media_id" unless args[:media_id]
url = uri + "/media/#{args[:media_id]}"
response = self.class.delete(
url,
headers: ()
)
VoiceBase::Response.new(response, api_version)
end
|
#get_json_transcript(args, headers) ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/voicebase/v2/client.rb', line 62
def get_json_transcript(args, )
raise ArgumentError, "Missing argument :media_id" unless args[:media_id]
url = uri + "/media/#{args[:media_id]}"
response = self.class.get(
url,
headers: ()
)
VoiceBase::Response.new(response, api_version)
end
|
I presume this method exists for parity with the V1 API however we are not using it
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/voicebase/v2/client.rb', line 42
def get_media(args = {}, = {})
raise ArgumentError, "Missing argument :media_id" unless args[:media_id]
url = if args[:media_id]
uri + "/media/#{args[:media_id]}"
elsif args[:external_id]
uri + "/media?externalID=#{args[:external_id]}"
else
raise ArgumentError, "Missing argument :media_url or :media_file"
end
if args[:external_id]
uri + "/media?externalID=#{args[:external_id]}"
else
raise ArgumentError, "Missing argument :external_id"
end
VoiceBase::Response.new(self.class.get(
url, headers: ()
), api_version)
end
|
I presume this method exists for parity with the V1 API however we are not using it
97
98
99
100
101
102
103
|
# File 'lib/voicebase/v2/client.rb', line 97
def get_media_progress(args = {}, = {})
raise ArgumentError, "Missing argument :media_id" unless args[:media_id]
VoiceBase::Response.new(self.class.get(
uri + "/media/#{args[:media_id]}/progress",
headers: ()
), api_version)
end
|
#get_text_transcript(args, headers) ⇒ Object
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/voicebase/v2/client.rb', line 74
def get_text_transcript(args, )
raise ArgumentError, "Missing argument :media_id" unless args[:media_id]
url = uri + "/media/#{args[:media_id]}/transcripts/latest"
.merge!({ 'Accept' => 'text/plain' })
response = self.class.get(
url,
headers: ()
)
response.parsed_response
end
|
#get_transcript(args = {}, headers = {}) ⇒ Object
88
89
90
91
92
93
94
|
# File 'lib/voicebase/v2/client.rb', line 88
def get_transcript(args = {}, = {})
if args[:format] == "txt"
get_text_transcript(args, )
else
get_json_transcript(args, )
end
end
|
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/voicebase/v2/client.rb', line 28
def upload_media(args = {}, = {})
media_url = require_media_file_or_url(args)
form_args = form_args(media_url, args[:language]) form_args.merge! metadata(args[:external_id]) if args[:external_id]
response = self.class.post(
uri + '/media',
headers: (),
body: multipart_query(form_args)
)
VoiceBase::Response.new(response, api_version)
end
|