diff --git a/setup.py b/setup.py index 1af30f4..70fa689 100644 --- a/setup.py +++ b/setup.py @@ -31,6 +31,6 @@ packages=find_packages(), setup_requires=[], url="https://github.com/upwork/python-upwork", - version="2.0.0", + version="2.0.1", zip_safe=False, ) diff --git a/tests/routers/test_messages.py b/tests/routers/test_messages.py index 4532915..17c4fd2 100644 --- a/tests/routers/test_messages.py +++ b/tests/routers/test_messages.py @@ -55,6 +55,12 @@ def test_send_message_to_room(mocked_method): mocked_method.assert_called_with("/messages/v3/company/rooms/room_id/stories", {}) +@patch.object(upwork.Client, "post") +def test_send_message_to_rooms(mocked_method): + messages.Api(upwork.Client).send_message_to_rooms("company") + mocked_method.assert_called_with("/messages/v3/company/stories/batch", {}) + + @patch.object(upwork.Client, "put") def test_get_update_room_settings(mocked_method): messages.Api(upwork.Client).update_room_settings("company", "room_id", "username") diff --git a/upwork/__init__.py b/upwork/__init__.py index 7d437f0..21ab8d4 100644 --- a/upwork/__init__.py +++ b/upwork/__init__.py @@ -6,6 +6,6 @@ __author__ = """Maksym Novozhylov""" __email__ = "mnovozhilov@upwork.com" -__version__ = "2.0.0" +__version__ = "2.0.1" __all__ = ("Config", "Client", "routers") diff --git a/upwork/client.py b/upwork/client.py index 749d0ee..9b68788 100644 --- a/upwork/client.py +++ b/upwork/client.py @@ -42,7 +42,7 @@ def get_request_token(self): request_token_url = full_url(self.__uri_rtoken, upwork.DEFAULT_EPOINT) try: - r = requests.post(url=request_token_url, auth=oauth) + r = requests.post(url=request_token_url, auth=oauth, verify=self.config.verify_ssl) except Exception as e: raise e @@ -96,7 +96,7 @@ def get_access_token(self, verifier): access_token_url = full_url(self.__uri_atoken, upwork.DEFAULT_EPOINT) try: - r = requests.post(url=access_token_url, auth=oauth) + r = requests.post(url=access_token_url, auth=oauth, verify=self.config.verify_ssl) except Exception as e: raise e @@ -165,17 +165,18 @@ def send_request(self, uri, method="get", params={}): url = full_url(get_uri_with_format(uri, self.epoint), self.epoint) if method == "get": - r = requests.get(url, params=params, auth=oauth) + r = requests.get(url, params=params, auth=oauth, verify=self.config.verify_ssl) elif method == "put": headers = {"Content-type": "application/json"} - r = requests.put(url, json=params, headers=headers, auth=oauth) + r = requests.put(url, json=params, headers=headers, auth=oauth, verify=self.config.verify_ssl) elif method in {"post", "delete"}: headers = {"Content-type": "application/json"} - r = requests.post(url, json=params, headers=headers, auth=oauth) + r = requests.post(url, json=params, headers=headers, auth=oauth, verify=self.config.verify_ssl) else: raise ValueError( 'Do not know how to handle http method "{0}"'.format(method) ) + print(r) return r.json() diff --git a/upwork/config.py b/upwork/config.py index 4690c5d..4b21472 100644 --- a/upwork/config.py +++ b/upwork/config.py @@ -15,6 +15,8 @@ class Config: """Configuration container""" + verify_ssl = True + def __init__(self, config): self.consumer_key, self.consumer_secret = ( config["consumer_key"], @@ -26,3 +28,6 @@ def __init__(self, config): if "access_token_secret" in config: self.access_token_secret = config["access_token_secret"] + + if "verify_ssl" in config: + self.verify_ssl = config["verify_ssl"] diff --git a/upwork/routers/messages.py b/upwork/routers/messages.py index 75ebcfb..b396948 100644 --- a/upwork/routers/messages.py +++ b/upwork/routers/messages.py @@ -108,9 +108,9 @@ def create_room(self, company, params={}): def send_message_to_room(self, company, room_id, params={}): """Send a message to a room - + Parameters: - :param company: + :param company: :param room_id: :param params: (Default value = {}) @@ -119,6 +119,18 @@ def send_message_to_room(self, company, room_id, params={}): "/messages/v3/{0}/rooms/{1}/stories".format(company, room_id), params ) + def send_message_to_rooms(self, company, params={}): + """Send a message to a batch of rooms + + Parameters: + :param company: + :param params: (Default value = {}) + + """ + return self.client.post( + "/messages/v3/{0}/stories/batch".format(company), params + ) + def update_room_settings(self, company, room_id, username, params={}): """Update a room settings