From ef27b8d4a4c1a93bbe94d00440bd90aa27483b0c Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 16 Jun 2020 14:45:27 +0200 Subject: [PATCH 01/17] Get User/Channel ID Allow call to get ID of public room (channel) or user --- AUTHORS.txt | 1 + docs/conf.py | 4 +-- docs/rocketchat.calls.channels.rst | 8 ++++++ docs/rocketchat.calls.users.rst | 8 ++++++ rocketchat/api.py | 28 ++++++++++++++++++- .../calls/channels/get_public_room_id.py | 18 ++++++++++++ rocketchat/calls/users/get_user_id.py | 18 ++++++++++++ setup.py | 2 +- 8 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 rocketchat/calls/channels/get_public_room_id.py create mode 100644 rocketchat/calls/users/get_user_id.py diff --git a/AUTHORS.txt b/AUTHORS.txt index a34910b..983c226 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,3 +1,4 @@ Derek Stegelman - dstegelman Jorge Alberto Díaz Orozco - jadolg cesarandreslopez +Luca Zimmermann - soundstorm \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 399816d..c25b268 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -62,9 +62,9 @@ # built documents. # # The short X.Y version. -version = u'1.2.14' +version = u'1.2.15' # The full version, including alpha/beta/rc tags. -release = u'1.2.14' +release = u'1.2.15' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/rocketchat.calls.channels.rst b/docs/rocketchat.calls.channels.rst index 4235a51..330dc33 100644 --- a/docs/rocketchat.calls.channels.rst +++ b/docs/rocketchat.calls.channels.rst @@ -36,6 +36,14 @@ rocketchat.calls.channels.get\_public\_rooms module :undoc-members: :show-inheritance: +rocketchat.calls.channels.get\_public\_room\_id module +------------------------------------------------ + +.. automodule:: rocketchat.calls.channels.get_public_room_id + :members: + :undoc-members: + :show-inheritance: + rocketchat.calls.channels.get\_room\_info module ------------------------------------------------ diff --git a/docs/rocketchat.calls.users.rst b/docs/rocketchat.calls.users.rst index 9d5a611..4e593ca 100644 --- a/docs/rocketchat.calls.users.rst +++ b/docs/rocketchat.calls.users.rst @@ -20,6 +20,14 @@ rocketchat.calls.users.delete\_user module :undoc-members: :show-inheritance: +rocketchat.calls.users.get\_user\_id module +--------------------------------------------- + +.. automodule:: rocketchat.calls.users.get_user_id + :members: + :undoc-members: + :show-inheritance: + rocketchat.calls.users.get\_user\_info module --------------------------------------------- diff --git a/rocketchat/api.py b/rocketchat/api.py index 3103a1c..dcdbf5f 100644 --- a/rocketchat/api.py +++ b/rocketchat/api.py @@ -4,6 +4,8 @@ from rocketchat.calls.channels.get_room_info import GetRoomInfo from rocketchat.calls.groups.get_private_room_info import GetPrivateRoomInfo from rocketchat.calls.groups.get_room_id import GetRoomId +from rocketchat.calls.groups.get_public_room_id import GetPublicRoomId +from rocketchat.calls.groups.get_user_id import GetUserId from rocketchat.calls.groups.set_room_topic import SetRoomTopic from rocketchat.calls.channels.get_history import GetRoomHistory from rocketchat.calls.groups.get_private_room_history import GetPrivateRoomHistory @@ -114,7 +116,7 @@ def get_private_room_info(self, room_id, **kwargs): def get_room_id(self, room_name, **kwargs): """ - Get room ID + Get private room ID :param room_name: :param kwargs: :return: @@ -124,6 +126,30 @@ def get_room_id(self, room_name, **kwargs): **kwargs ) + def get_public_room_id(self, room_name, **kwargs): + """ + Get public room ID + :param room_name: + :param kwargs: + :return: + """ + return GetPublicRoomId(settings=self.settings, **kwargs).call( + room_name=room_name, + **kwargs + ) + + def get_room_id(self, user_name, **kwargs): + """ + Get user ID + :param user_name: + :param kwargs: + :return: + """ + return GetUserId(settings=self.settings, **kwargs).call( + user_name=user_name, + **kwargs + ) + def get_room_history( self, room_id, diff --git a/rocketchat/calls/channels/get_public_room_id.py b/rocketchat/calls/channels/get_public_room_id.py new file mode 100644 index 0000000..54946a8 --- /dev/null +++ b/rocketchat/calls/channels/get_public_room_id.py @@ -0,0 +1,18 @@ +import logging + +from rocketchat.calls.base import RocketChatBase + +logger = logging.getLogger(__name__) + + +class GetPublicRoomId(RocketChatBase): + endpoint = '/api/v1/channels.info' + + def build_endpoint(self, **kwargs): + return '{endpoint}?roomName={room_name}'.format( + endpoint=self.endpoint, + room_id=kwargs.get('room_name') + ) + + def post_response(self, result): + return result['channel']['_id'] diff --git a/rocketchat/calls/users/get_user_id.py b/rocketchat/calls/users/get_user_id.py new file mode 100644 index 0000000..2d86655 --- /dev/null +++ b/rocketchat/calls/users/get_user_id.py @@ -0,0 +1,18 @@ +import logging + +from rocketchat.calls.base import RocketChatBase + +logger = logging.getLogger(__name__) + + +class GetUserId(RocketChatBase): + endpoint = '/api/v1/users.info' + + def build_endpoint(self, **kwargs): + return '{endpoint}?roomName={user_name}'.format( + endpoint=self.endpoint, + room_id=kwargs.get('user_name') + ) + + def post_response(self, result): + return result['user']['_id'] diff --git a/setup.py b/setup.py index 2076550..433e3d9 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup(name='rocket-python', - version='1.2.14', + version='1.2.15', description="RocketChat API with Python", long_description=open("README.md", "r").read(), long_description_content_type='text/markdown', From 260a6423909a51cf16804608ef5ea0f1b301cf0e Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 16 Jun 2020 19:37:46 +0200 Subject: [PATCH 02/17] Correct title underlines --- docs/rocketchat.calls.channels.rst | 2 +- docs/rocketchat.calls.users.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/rocketchat.calls.channels.rst b/docs/rocketchat.calls.channels.rst index 330dc33..a14fbde 100644 --- a/docs/rocketchat.calls.channels.rst +++ b/docs/rocketchat.calls.channels.rst @@ -37,7 +37,7 @@ rocketchat.calls.channels.get\_public\_rooms module :show-inheritance: rocketchat.calls.channels.get\_public\_room\_id module ------------------------------------------------- +------------------------------------------------------ .. automodule:: rocketchat.calls.channels.get_public_room_id :members: diff --git a/docs/rocketchat.calls.users.rst b/docs/rocketchat.calls.users.rst index 4e593ca..cbfcae8 100644 --- a/docs/rocketchat.calls.users.rst +++ b/docs/rocketchat.calls.users.rst @@ -21,7 +21,7 @@ rocketchat.calls.users.delete\_user module :show-inheritance: rocketchat.calls.users.get\_user\_id module ---------------------------------------------- +------------------------------------------- .. automodule:: rocketchat.calls.users.get_user_id :members: From 6e27abb0a20c19311809aaaf1535ea13bdc6b6bf Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 16 Jun 2020 19:38:19 +0200 Subject: [PATCH 03/17] Feature to upload remote files --- docs/rocketchat.calls.groups.rst | 8 ++++++ rocketchat/api.py | 20 +++++++++++++ rocketchat/calls/groups/upload_remote_file.py | 28 +++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 rocketchat/calls/groups/upload_remote_file.py diff --git a/docs/rocketchat.calls.groups.rst b/docs/rocketchat.calls.groups.rst index 6023198..768144b 100644 --- a/docs/rocketchat.calls.groups.rst +++ b/docs/rocketchat.calls.groups.rst @@ -44,6 +44,14 @@ rocketchat.calls.groups.upload\_file module :undoc-members: :show-inheritance: +rocketchat.calls.groups.upload\_remote\_file module +--------------------------------------------------- + +.. automodule:: rocketchat.calls.groups.upload_remote_file + :members: + :undoc-members: + :show-inheritance: + Module contents --------------- diff --git a/rocketchat/api.py b/rocketchat/api.py index dcdbf5f..c1770d5 100644 --- a/rocketchat/api.py +++ b/rocketchat/api.py @@ -17,6 +17,7 @@ from rocketchat.calls.users.create_user import CreateUser from rocketchat.calls.users.delete_user import DeleteUser from rocketchat.calls.groups.upload_file import UploadFile +from rocketchat.calls.groups.upload_remote_file import UploadRemoteFile from rocketchat.calls.im.create_room import CreateImRoom from rocketchat.calls.im.open_room import OpenImRoom from rocketchat.calls.im.close_room import CloseImRoom @@ -101,6 +102,25 @@ def upload_file(self, room_id, description, file, message, mime_type='text/plain **kwargs ) + def upload_remote_file(self, room_id, description, url, message, filename='Uploaded File', mime_type='text/plain', **kwargs): + """ + Upload file to room + :param room_id: + :param description: + :param file: + :param kwargs: + :return: + """ + return UploadFile(settings=self.settings, **kwargs).call( + room_id=room_id, + description=description, + url=url, + message=message, + filename=filename, + mime_type=mime_type, + **kwargs + ) + def get_private_room_info(self, room_id, **kwargs): """ Get various information about a specific private group diff --git a/rocketchat/calls/groups/upload_remote_file.py b/rocketchat/calls/groups/upload_remote_file.py new file mode 100644 index 0000000..c004fb5 --- /dev/null +++ b/rocketchat/calls/groups/upload_remote_file.py @@ -0,0 +1,28 @@ +import logging + +from rocketchat.calls.base import RocketChatBase, PostMixin, logger +import sys +if sys.version_info[0] == 2: + import urllib +else: + import urllib.request as urllib +logger.setLevel(logging.DEBUG) + + +class UploadRemoteFile(PostMixin, RocketChatBase): + endpoint = '/api/v1/rooms.upload' + + def build_endpoint(self, **kwargs): + return '{endpoint}/{room_id}'.format(endpoint=self.endpoint, + room_id=kwargs.get('room_id')) + + def build_files(self, **kwargs): + return {'file': (kwargs.get('filename'), + urllib.urlopen(kwargs.get('url')), + kwargs.get('mime_type'))} + + def build_payload(self, **kwargs): + return {'description': kwargs.get('description'), 'msg': kwargs.get('message')} + + def post_response(self, result): + return result From e03e75a94e11043c078d27a281f564931a1532d6 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 16 Jun 2020 20:09:11 +0200 Subject: [PATCH 04/17] Fix wrong imports --- rocketchat/api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rocketchat/api.py b/rocketchat/api.py index c1770d5..7347c87 100644 --- a/rocketchat/api.py +++ b/rocketchat/api.py @@ -4,8 +4,8 @@ from rocketchat.calls.channels.get_room_info import GetRoomInfo from rocketchat.calls.groups.get_private_room_info import GetPrivateRoomInfo from rocketchat.calls.groups.get_room_id import GetRoomId -from rocketchat.calls.groups.get_public_room_id import GetPublicRoomId -from rocketchat.calls.groups.get_user_id import GetUserId +from rocketchat.calls.channels.get_public_room_id import GetPublicRoomId +from rocketchat.calls.users.get_user_id import GetUserId from rocketchat.calls.groups.set_room_topic import SetRoomTopic from rocketchat.calls.channels.get_history import GetRoomHistory from rocketchat.calls.groups.get_private_room_history import GetPrivateRoomHistory From c58f7e345f591412ff77ccff87298f7210ca0e57 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 16 Jun 2020 20:17:54 +0200 Subject: [PATCH 05/17] Fix wrong variable names --- rocketchat/calls/channels/get_public_room_id.py | 2 +- rocketchat/calls/users/get_user_id.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rocketchat/calls/channels/get_public_room_id.py b/rocketchat/calls/channels/get_public_room_id.py index 54946a8..89c5e02 100644 --- a/rocketchat/calls/channels/get_public_room_id.py +++ b/rocketchat/calls/channels/get_public_room_id.py @@ -11,7 +11,7 @@ class GetPublicRoomId(RocketChatBase): def build_endpoint(self, **kwargs): return '{endpoint}?roomName={room_name}'.format( endpoint=self.endpoint, - room_id=kwargs.get('room_name') + room_name=kwargs.get('room_name') ) def post_response(self, result): diff --git a/rocketchat/calls/users/get_user_id.py b/rocketchat/calls/users/get_user_id.py index 2d86655..e6f76b3 100644 --- a/rocketchat/calls/users/get_user_id.py +++ b/rocketchat/calls/users/get_user_id.py @@ -11,7 +11,7 @@ class GetUserId(RocketChatBase): def build_endpoint(self, **kwargs): return '{endpoint}?roomName={user_name}'.format( endpoint=self.endpoint, - room_id=kwargs.get('user_name') + user_name=kwargs.get('user_name') ) def post_response(self, result): From e5052355015c8aef750513acfc3bfe51e6b127ad Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 16 Jun 2020 21:27:58 +0200 Subject: [PATCH 06/17] Wrong name of method --- rocketchat/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocketchat/api.py b/rocketchat/api.py index 7347c87..78532cb 100644 --- a/rocketchat/api.py +++ b/rocketchat/api.py @@ -158,7 +158,7 @@ def get_public_room_id(self, room_name, **kwargs): **kwargs ) - def get_room_id(self, user_name, **kwargs): + def get_user_id(self, user_name, **kwargs): """ Get user ID :param user_name: From 7e2cdbf24d263db387f631e45ef2d81301546d4b Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 16 Jun 2020 21:32:04 +0200 Subject: [PATCH 07/17] Wrong get param --- rocketchat/calls/users/get_user_id.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocketchat/calls/users/get_user_id.py b/rocketchat/calls/users/get_user_id.py index e6f76b3..c182731 100644 --- a/rocketchat/calls/users/get_user_id.py +++ b/rocketchat/calls/users/get_user_id.py @@ -9,7 +9,7 @@ class GetUserId(RocketChatBase): endpoint = '/api/v1/users.info' def build_endpoint(self, **kwargs): - return '{endpoint}?roomName={user_name}'.format( + return '{endpoint}?username={user_name}'.format( endpoint=self.endpoint, user_name=kwargs.get('user_name') ) From d00332fc795bb40246ecc7d05155abdc283866c6 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Thu, 18 Jun 2020 19:18:38 +0200 Subject: [PATCH 08/17] bump version --- .bumpversion.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 2614ba9..b15b7d4 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.2.14 +current_version = 1.2.15 commit = True tag = True From c485b7bcb8af388f68f5624715890f6f20de1836 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Sat, 4 Jul 2020 13:11:43 +0200 Subject: [PATCH 09/17] Fix endpoints --- rocketchat/calls/im/close_room.py | 2 +- rocketchat/calls/im/open_room.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rocketchat/calls/im/close_room.py b/rocketchat/calls/im/close_room.py index 1423217..4a6ccf6 100644 --- a/rocketchat/calls/im/close_room.py +++ b/rocketchat/calls/im/close_room.py @@ -7,7 +7,7 @@ class CloseImRoom(PostMixin, RocketChatBase): - endpoint = "/api/v1/im.create" + endpoint = "/api/v1/im.close" def build_endpoint(self, **kwargs): return self.endpoint diff --git a/rocketchat/calls/im/open_room.py b/rocketchat/calls/im/open_room.py index 88957c0..2c4e89b 100644 --- a/rocketchat/calls/im/open_room.py +++ b/rocketchat/calls/im/open_room.py @@ -7,7 +7,7 @@ class OpenImRoom(PostMixin, RocketChatBase): - endpoint = "/api/v1/im.create" + endpoint = "/api/v1/im.open" def build_endpoint(self, **kwargs): return self.endpoint From a885ab9ec1ed47b8326eba903f1c74f8b4adb485 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Sat, 4 Jul 2020 13:15:10 +0200 Subject: [PATCH 10/17] New endpoints Add .invite functions and create private room --- docs/rocketchat.calls.channels.rst | 8 +++ docs/rocketchat.calls.groups.rst | 16 ++++++ docs/rocketchat.calls.im.rst | 54 +++++++++++++++++++ rocketchat/api.py | 36 +++++++++++++ .../calls/channels/invite_public_room.py | 22 ++++++++ .../calls/groups/create_private_room.py | 23 ++++++++ .../calls/groups/invite_private_room.py | 22 ++++++++ 7 files changed, 181 insertions(+) create mode 100644 docs/rocketchat.calls.im.rst create mode 100644 rocketchat/calls/channels/invite_public_room.py create mode 100644 rocketchat/calls/groups/create_private_room.py create mode 100644 rocketchat/calls/groups/invite_private_room.py diff --git a/docs/rocketchat.calls.channels.rst b/docs/rocketchat.calls.channels.rst index a14fbde..8447970 100644 --- a/docs/rocketchat.calls.channels.rst +++ b/docs/rocketchat.calls.channels.rst @@ -28,6 +28,14 @@ rocketchat.calls.channels.get\_history module :undoc-members: :show-inheritance: +rocketchat.calls.channels.invite\_public\_room module +--------------------------------------------- + +.. automodule:: rocketchat.calls.channels.invite_public_room + :members: + :undoc-members: + :show-inheritance: + rocketchat.calls.channels.get\_public\_rooms module --------------------------------------------------- diff --git a/docs/rocketchat.calls.groups.rst b/docs/rocketchat.calls.groups.rst index 768144b..cf342ad 100644 --- a/docs/rocketchat.calls.groups.rst +++ b/docs/rocketchat.calls.groups.rst @@ -4,6 +4,14 @@ rocketchat.calls.groups package Submodules ---------- +rocketchat.calls.groups.create\_private\_room module +---------------------------------------------------------- + +.. automodule:: rocketchat.calls.groups.create_private_room + :members: + :undoc-members: + :show-inheritance: + rocketchat.calls.groups.get\_private\_room\_history module ---------------------------------------------------------- @@ -12,6 +20,14 @@ rocketchat.calls.groups.get\_private\_room\_history module :undoc-members: :show-inheritance: +rocketchat.calls.groups.invite\_private\_room module +---------------------------------------------------------- + +.. automodule:: rocketchat.calls.groups.invite_private_room + :members: + :undoc-members: + :show-inheritance: + rocketchat.calls.groups.get\_private\_room\_info module ------------------------------------------------------- diff --git a/docs/rocketchat.calls.im.rst b/docs/rocketchat.calls.im.rst new file mode 100644 index 0000000..b1ded74 --- /dev/null +++ b/docs/rocketchat.calls.im.rst @@ -0,0 +1,54 @@ +rocketchat.calls.im package +=========================== + +Submodules +---------- + +rocketchat.calls.im.close\_room module +-------------------------------------- + +.. automodule:: rocketchat.calls.im.close_room + :members: + :undoc-members: + :show-inheritance: + +rocketchat.calls.im.create\_room module +--------------------------------------- + +.. automodule:: rocketchat.calls.im.create_room + :members: + :undoc-members: + :show-inheritance: + +rocketchat.calls.im.get\_history module +--------------------------------------- + +.. automodule:: rocketchat.calls.im.get_history + :members: + :undoc-members: + :show-inheritance: + +rocketchat.calls.im.get\_rooms module +------------------------------------- + +.. automodule:: rocketchat.calls.im.get_rooms + :members: + :undoc-members: + :show-inheritance: + +rocketchat.calls.im.open\_room module +------------------------------------- + +.. automodule:: rocketchat.calls.im.open_room + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: rocketchat.calls.im + :members: + :undoc-members: + :show-inheritance: diff --git a/rocketchat/api.py b/rocketchat/api.py index 78532cb..c6c5ddd 100644 --- a/rocketchat/api.py +++ b/rocketchat/api.py @@ -9,8 +9,11 @@ from rocketchat.calls.groups.set_room_topic import SetRoomTopic from rocketchat.calls.channels.get_history import GetRoomHistory from rocketchat.calls.groups.get_private_room_history import GetPrivateRoomHistory +from rocketchat.calls.groups.create_private_room import CreatePrivateRoom from rocketchat.calls.channels.create_public_room import CreatePublicRoom from rocketchat.calls.channels.delete_public_room import DeletePublicRoom +from rocketchat.calls.groups.invite_private_room import InvitePrivateRoom +from rocketchat.calls.channels.invite_public_room import InvitePublicRoom from rocketchat.calls.auth.get_me import GetMe from rocketchat.calls.users.get_users import GetUsers from rocketchat.calls.users.get_user_info import GetUserInfo @@ -65,6 +68,19 @@ def get_private_room_history(self, room_id, oldest=None, **kwargs): **kwargs ) + def create_private_room(self, name, **kwargs): + """ + Create group with given name + :param name: Room name + :param kwargs: + members: The users to add to the channel when it is created. + Optional; Ex.: ["rocket.cat"], Default: [] + read_only: Set if the group is read only or not. + Optional; Ex.: True, Default: False + :return: + """ + return CreatePrivateRoom(settings=self.settings, **kwargs).call(name=name, **kwargs) + def get_public_rooms(self, **kwargs): """ Get a listing of all public rooms with their names and IDs @@ -219,6 +235,26 @@ def delete_public_room(self, room_id, **kwargs): """ return DeletePublicRoom(settings=self.settings, **kwargs).call(room_id=room_id, **kwargs) + def invite_private_room(self, room_id, user_id, **kwargs): + """ + Invite user to group with given ID + :param room_id: Room ID + :param user_id: User ID + :param kwargs: + :return: + """ + return InvitePrivateRoom(settings=self.settings, **kwargs).call(room_id=room_id, user_id=user_id **kwargs) + + def invite_public_room(self, room_id, user_id, **kwargs): + """ + Invite user to channel with given ID + :param room_id: Room ID + :param user_id: User ID + :param kwargs: + :return: + """ + return InvitePublicRoom(settings=self.settings, **kwargs).call(room_id=room_id, user_id=user_id **kwargs) + def get_my_info(self, **kwargs): return GetMe(settings=self.settings, **kwargs).call(**kwargs) diff --git a/rocketchat/calls/channels/invite_public_room.py b/rocketchat/calls/channels/invite_public_room.py new file mode 100644 index 0000000..41481fb --- /dev/null +++ b/rocketchat/calls/channels/invite_public_room.py @@ -0,0 +1,22 @@ +import logging +import json + +from rocketchat.calls.base import PostMixin, RocketChatBase + +logger = logging.getLogger(__name__) + + +class InvitePrivateRoom(PostMixin, RocketChatBase): + endpoint = '/api/v1/channels.invite' + + def build_endpoint(self, **kwargs): + return self.endpoint + + def build_payload(self, **kwargs): + return json.dumps({ + 'roomId': kwargs.get('room_id'), + 'userId': kwargs.get('user_id') + }) + + def post_response(self, result): + return result diff --git a/rocketchat/calls/groups/create_private_room.py b/rocketchat/calls/groups/create_private_room.py new file mode 100644 index 0000000..2e4b91b --- /dev/null +++ b/rocketchat/calls/groups/create_private_room.py @@ -0,0 +1,23 @@ +import logging +import json + +from rocketchat.calls.base import PostMixin, RocketChatBase + +logger = logging.getLogger(__name__) + + +class CreatePrivateRoom(PostMixin, RocketChatBase): + endpoint = '/api/v1/groups.create' + + def build_endpoint(self, **kwargs): + return self.endpoint + + def build_payload(self, **kwargs): + return json.dumps({ + 'name': kwargs.get('name'), + 'members': kwargs.get('members', []), + 'readOnly': kwargs.get('read_only', False) + }) + + def post_response(self, result): + return result diff --git a/rocketchat/calls/groups/invite_private_room.py b/rocketchat/calls/groups/invite_private_room.py new file mode 100644 index 0000000..aa6712f --- /dev/null +++ b/rocketchat/calls/groups/invite_private_room.py @@ -0,0 +1,22 @@ +import logging +import json + +from rocketchat.calls.base import PostMixin, RocketChatBase + +logger = logging.getLogger(__name__) + + +class InvitePrivateRoom(PostMixin, RocketChatBase): + endpoint = '/api/v1/groups.invite' + + def build_endpoint(self, **kwargs): + return self.endpoint + + def build_payload(self, **kwargs): + return json.dumps({ + 'roomId': kwargs.get('room_id'), + 'userId': kwargs.get('user_id') + }) + + def post_response(self, result): + return result From d1daa23fcd70175dc6a2b558c0dc8b4f49e20541 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Sat, 4 Jul 2020 13:28:25 +0200 Subject: [PATCH 11/17] Update documentation to include all calls Closes #38 --- README.md | 88 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 46003b2..7f06041 100644 --- a/README.md +++ b/README.md @@ -27,50 +27,88 @@ This user *must* have Admin privs: 'domain': 'https://myrockethchatdomain.com'}) ##### Available Calls + +###### Messages / Rooms general functions api.send_message('message', 'room_id') + api.upload_file(room_id='room_id', + file='file', + description='File description', + message='Example message') + + api.upload_remote_file(room_id='room_id', + url='url', + description='File description', + message='Example message') + +###### Users + api.create_user('email', + 'name', + 'password', + 'username', + active=True, + roles=['user'], + join_default_channels=True, + require_password_change=False, + send_welcome_email=False, + verified=False, + customFields=None) + + api.delete_user('user_id') + + api.get_user_id('user_name') + + api.get_users() + + api.get_user_info('user_id') + + api.get_my_info() + +###### Direct Messages + api.create_im_room('username') + + api.close_room('room_id') + + api.open_room('room_id') + + api.get_im_room_history('room_id', oldest=date) + + api.get_im_rooms() + +###### Groups / Private Rooms + api.create_private_room('room_name', + members=[], + read_only=False) + + api.invite_private_room('room_id', 'user_id') + api.get_private_rooms() api.get_private_room_history('room_id', oldest=date) - api.get_public_rooms() - - api.get_room_info('room_id') + api.get_room_id('room_name') api.get_private_room_info('room_id') - api.get_room_history('room_id') + api.set_room_topic('topic', 'room_id') + +###### Channels / Public Rooms + api.get_public_rooms() api.create_public_room('room_name', members=[], read_only=False) - api.delete_public_room('room_id') + api.invite_public_room('room_id', 'user_id') - api.get_my_info() + api.get_room_info('room_id') - api.get_users() + api.get_public_room_id('room_name') - api.get_user_info('user_id') + api.get_room_history('room_id') - api.create_user('email', - 'name', - 'password', - 'username', - active=True, - roles=['user'], - join_default_channels=True, - require_password_change=False, - send_welcome_email=False, - verified=False, - customFields=None) - - api.delete_user('user_id') + api.delete_public_room('room_id') - api.upload_file(room_id='room_id', - file='file', - description='File description', - message='Example message') check /rocketchat/calls/api.py for more. From 57e881651f0e5d302108916d88901e828a2e92ea Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Sat, 4 Jul 2020 13:39:09 +0200 Subject: [PATCH 12/17] Correct typo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7f06041..a388a46 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,10 @@ This user *must* have Admin privs: from rocketchat.api import RocketChatAPI api = RocketChatAPI(settings={'username': 'someuser', 'password': 'somepassword', - 'domain': 'https://myrockethchatdomain.com'}) + 'domain': 'https://myrocketchatdomain.com'}) # or api = RocketChatAPI(settings={'token': 'sometoken', 'user_id': 'someuserid', - 'domain': 'https://myrockethchatdomain.com'}) + 'domain': 'https://myrocketchatdomain.com'}) ##### Available Calls From ff61d668d011ce76384cef9994bb150a6a625ee8 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Sat, 4 Jul 2020 13:43:12 +0200 Subject: [PATCH 13/17] Correct statements --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a388a46..e10ee3b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Python API wrapper for the [Rocket chat API](https://rocket.chat/docs/developer- #### Usage Initialize the client with a username and password or token and user_id. -This user *must* have Admin privs: +Currently no 2FA is supported. from rocketchat.api import RocketChatAPI @@ -118,7 +118,6 @@ check /rocketchat/calls/api.py for more. ##### Sending a message -You'll first need to get the _id of the room you want to send a message to. Currently, Rocket -can only send messages to *public* rooms. +You'll first need to get the `_id` of the room you want to send a message to. api.send_message('Your message', room_id) From 717f21b615ace6502d78bf7a95b3159371cf2df9 Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Fri, 17 Jul 2020 13:52:13 +0200 Subject: [PATCH 14/17] Revert version bump Co-authored-by: Peter Gonda --- .bumpversion.cfg | 3 +-- setup.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index b15b7d4..64b6d36 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,9 +1,8 @@ [bumpversion] -current_version = 1.2.15 +current_version = 1.2.14 commit = True tag = True [bumpversion:file:setup.py] [bumpversion:file:docs/conf.py] - diff --git a/setup.py b/setup.py index 433e3d9..2076550 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup(name='rocket-python', - version='1.2.15', + version='1.2.14', description="RocketChat API with Python", long_description=open("README.md", "r").read(), long_description_content_type='text/markdown', From 6a536d7a7e7e6d31b308c713f8aec1186b74d792 Mon Sep 17 00:00:00 2001 From: Peter Gonda Date: Mon, 17 Aug 2020 10:59:00 +0200 Subject: [PATCH 15/17] Update AUTHORS.txt --- AUTHORS.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 983c226..a34910b 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,4 +1,3 @@ Derek Stegelman - dstegelman Jorge Alberto Díaz Orozco - jadolg cesarandreslopez -Luca Zimmermann - soundstorm \ No newline at end of file From e56cb0abee01a8a90caeaef874504d7c29ae61fc Mon Sep 17 00:00:00 2001 From: Peter Gonda Date: Mon, 17 Aug 2020 10:59:48 +0200 Subject: [PATCH 16/17] Update conf.py --- docs/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index c25b268..399816d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -62,9 +62,9 @@ # built documents. # # The short X.Y version. -version = u'1.2.15' +version = u'1.2.14' # The full version, including alpha/beta/rc tags. -release = u'1.2.15' +release = u'1.2.14' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From f4accc41d7edb98254594cc099161eb4a8699bcf Mon Sep 17 00:00:00 2001 From: Luca Zimmermann Date: Tue, 18 Aug 2020 17:09:19 +0200 Subject: [PATCH 17/17] Rename function Co-authored-by: Peter Gonda --- rocketchat/calls/channels/invite_public_room.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocketchat/calls/channels/invite_public_room.py b/rocketchat/calls/channels/invite_public_room.py index 41481fb..f100426 100644 --- a/rocketchat/calls/channels/invite_public_room.py +++ b/rocketchat/calls/channels/invite_public_room.py @@ -6,7 +6,7 @@ logger = logging.getLogger(__name__) -class InvitePrivateRoom(PostMixin, RocketChatBase): +class InvitePublicRoom(PostMixin, RocketChatBase): endpoint = '/api/v1/channels.invite' def build_endpoint(self, **kwargs):