Skip to content

Commit

Permalink
Merge 7469a87 into 7360438
Browse files Browse the repository at this point in the history
  • Loading branch information
tylerlong authored Mar 30, 2018
2 parents 7360438 + 7469a87 commit 5233ae3
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 4 deletions.
39 changes: 39 additions & 0 deletions demo_multipart_mixed.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env python
# encoding: utf-8

import urllib
from config import USERNAME, EXTENSION, PASSWORD, APP_KEY, APP_SECRET, SERVER, MOBILE
from ringcentral import SDK


def main():
sdk = SDK(APP_KEY, APP_SECRET, SERVER)
platform = sdk.platform()
platform.login(USERNAME, EXTENSION, PASSWORD)

# Step 1. Get an answering rule ID

answering_rules = platform.get('/account/~/extension/~/answering-rule').json().records
last_answer_rule_id = answering_rules[-1].id
print 'Answering rule ID: ' + last_answer_rule_id

# Step 2. Update greeting audio file

binary = (
'test.mp3',
urllib.urlopen('https://freesound.org/data/previews/85/85785_14771-lq.mp3').read(),
'audio/mpeg'
)
builder = sdk.create_multipart_builder()
builder.set_body({
'type': 'Voicemail',
'answeringRule': { 'id': last_answer_rule_id }
})
builder.add(binary)
request = builder.request('/account/~/extension/~/greeting')
response = platform.send_request(request, multipart_mixed = True)
print 'Updated greeting audio: ' + response.json().uri


if __name__ == '__main__':
main()
7 changes: 5 additions & 2 deletions ringcentral/http/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,14 @@ class Client:
def __init__(self):
pass

def send(self, request):
def send(self, request, multipart_mixed=False):
response = None

try:
response = self.load_response(request.prepare())
prepared = request.prepare()
if multipart_mixed:
prepared.headers['Content-Type'] = prepared.headers['Content-Type'].replace('multipart/form-data;', 'multipart/mixed;')
response = self.load_response(prepared)

if response.ok():
return response
Expand Down
4 changes: 2 additions & 2 deletions ringcentral/platform/platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,8 @@ def inflate_request(self, request, skip_auth_check=False):

return request

def send_request(self, request, skip_auth_check=False):
return self._client.send(self.inflate_request(request, skip_auth_check=skip_auth_check))
def send_request(self, request, skip_auth_check=False, multipart_mixed=False):
return self._client.send(self.inflate_request(request, skip_auth_check=skip_auth_check), multipart_mixed)

def get(self, url, query_params=None, headers=None, skip_auth_check=False):
request = self._client.create_request('GET', url, query_params=query_params, headers=headers)
Expand Down

0 comments on commit 5233ae3

Please sign in to comment.