Module upwork.routers.messages
Expand source code
# Licensed under the Upwork's API Terms of Use;
# you may not use this file except in compliance with the Terms.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Author:: Maksym Novozhylov (mnovozhilov@upwork.com)
# Copyright:: Copyright 2020(c) Upwork.com
# License:: See LICENSE.txt and TOS - https://developers.upwork.com/api-tos.html
class Api:
""" """
client = None
def __init__(self, client):
self.client = client
def get_rooms(self, company, params={}):
"""Retrieve rooms information
Parameters:
:param company:
:param params: (Default value = {})
"""
return self.client.get("/messages/v3/{0}/rooms".format(company), params)
def get_room_details(self, company, room_id, params={}):
"""Get a specific room information
Parameters:
:param company:
:param room_id:
:param params: (Default value = {})
"""
return self.client.get(
"/messages/v3/{0}/rooms/{1}".format(company, room_id), params
)
def get_room_messages(self, company, room_id, params={}):
"""Get messages from a specific room
Parameters:
:param company:
:param room_id:
:param params: (Default value = {})
"""
return self.client.get(
"/messages/v3/{0}/rooms/{1}/stories".format(company, room_id), params
)
def get_room_by_offer(self, company, offer_id, params={}):
"""Get a specific room by offer ID
Parameters:
:param company:
:param offer_id:
:param params: (Default value = {})
"""
return self.client.get(
"/messages/v3/{0}/rooms/offers/{1}".format(company, offer_id), params
)
def get_room_by_application(self, company, application_id, params={}):
"""Get a specific room by application ID
Parameters:
:param company:
:param application_id:
:param params: (Default value = {})
"""
return self.client.get(
"/messages/v3/{0}/rooms/applications/{1}".format(company, application_id),
params,
)
def get_room_by_contract(self, company, contract_id, params={}):
"""Get a specific room by contract ID
Parameters:
:param company:
:param contract_id:
:param params: (Default value = {})
"""
return self.client.get(
"/messages/v3/{0}/rooms/contracts/{1}".format(company, contract_id), params
)
def create_room(self, company, params={}):
"""Create a new room
Parameters:
:param company:
:param params: (Default value = {})
"""
return self.client.post("/messages/v3/{0}/rooms".format(company), params)
def send_message_to_room(self, company, room_id, params={}):
"""Send a message to a room
Parameters:
:param company:
:param room_id:
:param params: (Default value = {})
"""
return self.client.post(
"/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
Parameters:
:param company:
:param room_id:
:param username:
:param params: (Default value = {})
"""
return self.client.put(
"/messages/v3/{0}/rooms/{1}/users/{2}".format(company, room_id, username),
params,
)
def update_room_metadata(self, company, room_id, params={}):
"""Update the metadata of a room
Parameters:
:param company:
:param room_id:
:param params: (Default value = {})
"""
return self.client.put(
"/messages/v3/{0}/rooms/{1}".format(company, room_id), params
)
Classes
class Api (client)
-
Expand source code
class Api: """ """ client = None def __init__(self, client): self.client = client def get_rooms(self, company, params={}): """Retrieve rooms information Parameters: :param company: :param params: (Default value = {}) """ return self.client.get("/messages/v3/{0}/rooms".format(company), params) def get_room_details(self, company, room_id, params={}): """Get a specific room information Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/{1}".format(company, room_id), params ) def get_room_messages(self, company, room_id, params={}): """Get messages from a specific room Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/{1}/stories".format(company, room_id), params ) def get_room_by_offer(self, company, offer_id, params={}): """Get a specific room by offer ID Parameters: :param company: :param offer_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/offers/{1}".format(company, offer_id), params ) def get_room_by_application(self, company, application_id, params={}): """Get a specific room by application ID Parameters: :param company: :param application_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/applications/{1}".format(company, application_id), params, ) def get_room_by_contract(self, company, contract_id, params={}): """Get a specific room by contract ID Parameters: :param company: :param contract_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/contracts/{1}".format(company, contract_id), params ) def create_room(self, company, params={}): """Create a new room Parameters: :param company: :param params: (Default value = {}) """ return self.client.post("/messages/v3/{0}/rooms".format(company), params) def send_message_to_room(self, company, room_id, params={}): """Send a message to a room Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.post( "/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 Parameters: :param company: :param room_id: :param username: :param params: (Default value = {}) """ return self.client.put( "/messages/v3/{0}/rooms/{1}/users/{2}".format(company, room_id, username), params, ) def update_room_metadata(self, company, room_id, params={}): """Update the metadata of a room Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.put( "/messages/v3/{0}/rooms/{1}".format(company, room_id), params )
Class variables
var client
Methods
def create_room(self, company, params={})
-
Create a new room
Parameters: :param company: :param params: (Default value = {})
Expand source code
def create_room(self, company, params={}): """Create a new room Parameters: :param company: :param params: (Default value = {}) """ return self.client.post("/messages/v3/{0}/rooms".format(company), params)
def get_room_by_application(self, company, application_id, params={})
-
Get a specific room by application ID
Parameters: :param company: :param application_id: :param params: (Default value = {})
Expand source code
def get_room_by_application(self, company, application_id, params={}): """Get a specific room by application ID Parameters: :param company: :param application_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/applications/{1}".format(company, application_id), params, )
def get_room_by_contract(self, company, contract_id, params={})
-
Get a specific room by contract ID
Parameters: :param company: :param contract_id: :param params: (Default value = {})
Expand source code
def get_room_by_contract(self, company, contract_id, params={}): """Get a specific room by contract ID Parameters: :param company: :param contract_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/contracts/{1}".format(company, contract_id), params )
def get_room_by_offer(self, company, offer_id, params={})
-
Get a specific room by offer ID
Parameters: :param company: :param offer_id: :param params: (Default value = {})
Expand source code
def get_room_by_offer(self, company, offer_id, params={}): """Get a specific room by offer ID Parameters: :param company: :param offer_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/offers/{1}".format(company, offer_id), params )
def get_room_details(self, company, room_id, params={})
-
Get a specific room information
Parameters: :param company: :param room_id: :param params: (Default value = {})
Expand source code
def get_room_details(self, company, room_id, params={}): """Get a specific room information Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/{1}".format(company, room_id), params )
def get_room_messages(self, company, room_id, params={})
-
Get messages from a specific room
Parameters: :param company: :param room_id: :param params: (Default value = {})
Expand source code
def get_room_messages(self, company, room_id, params={}): """Get messages from a specific room Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.get( "/messages/v3/{0}/rooms/{1}/stories".format(company, room_id), params )
def get_rooms(self, company, params={})
-
Retrieve rooms information
Parameters: :param company: :param params: (Default value = {})
Expand source code
def get_rooms(self, company, params={}): """Retrieve rooms information Parameters: :param company: :param params: (Default value = {}) """ return self.client.get("/messages/v3/{0}/rooms".format(company), params)
def send_message_to_room(self, company, room_id, params={})
-
Send a message to a room
Parameters: :param company: :param room_id: :param params: (Default value = {})
Expand source code
def send_message_to_room(self, company, room_id, params={}): """Send a message to a room Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.post( "/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 = {})
Expand source code
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_metadata(self, company, room_id, params={})
-
Update the metadata of a room
Parameters: :param company: :param room_id: :param params: (Default value = {})
Expand source code
def update_room_metadata(self, company, room_id, params={}): """Update the metadata of a room Parameters: :param company: :param room_id: :param params: (Default value = {}) """ return self.client.put( "/messages/v3/{0}/rooms/{1}".format(company, room_id), params )
def update_room_settings(self, company, room_id, username, params={})
-
Update a room settings
Parameters: :param company: :param room_id: :param username: :param params: (Default value = {})
Expand source code
def update_room_settings(self, company, room_id, username, params={}): """Update a room settings Parameters: :param company: :param room_id: :param username: :param params: (Default value = {}) """ return self.client.put( "/messages/v3/{0}/rooms/{1}/users/{2}".format(company, room_id, username), params, )