Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

added users.team #53

Merged
merged 3 commits into from
Dec 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/users.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,8 @@ Users
:members:
:undoc-members:
:show-inheritance:

.. automodule:: jelastic.api.users._Team
:members:
:undoc-members:
:show-inheritance:
135 changes: 135 additions & 0 deletions jelastic/api/users/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,16 @@ def Collaboration(self) -> "_Collaboration":
session=self._session, token=self._token, debug=self._debug
)

@property
def Team(self) -> "_Team":
"""
>>> from jelastic import Jelastic
>>> jelastic = Jelastic('https://jca.xapp.cloudmydc.com', token='d6f4e314a5b5fefd164995169f28ae32d987704f')
>>> jelastic.users.Team
Ref: https://docs.jelastic.com/api/private/#!/api/users.Team
"""
return _Team(session=self._session, token=self._token, debug=self._debug)

@property
def Registration(self) -> "_Registration":
"""
Expand Down Expand Up @@ -1551,3 +1561,128 @@ def SendSms(
"lang ": lang,
},
)


class _Team(Users):
"""
>>> from jelastic import Jelastic
>>> jelastic = Jelastic('https://jca.xapp.cloudmydc.com', token='d6f4e314a5b5fefd164995169f28ae32d987704f')
>>> jelastic.users.Team
Ref: https://docs.jelastic.com/api/private/#!/api/users.Team
"""

_endpoint2 = "team"

def Create(self, display_name: str, owner_uid: list[int] = None):
"""
param owner_uid: unique identifier of the collaboration Team owner.
"""
return self._get(
"Create",
params={
"displayName": display_name,
"ownerUid": owner_uid,
},
delimeter=",",
)

def Delete(self, team_id: int, owner_uid: list[int] = None):
"""
param team_id: unique identifier of the target collaboration Team.
param owner_uid: unique identifier of the collaboration Team owner.
"""
return self._get(
"Delete",
params={
"teamId": team_id,
"ownerUid": owner_uid,
},
delimeter=",",
)

def DeleteMember(self, member_id: int, owner_uid: list[int] = None):
"""
param member_id: unique identifier of the collaboration Team member.
param owner_uid: unique identifier of the collaboration Team owner.
"""
return self._get(
"DeleteMember",
params={
"memberId": member_id,
"ownerUid": owner_uid,
},
delimeter=",",
)

def Edit(
self,
team_id: int,
display_name: list[str] = None,
external_id: list[str] = None,
owner_uid: list[int] = None,
):
"""
param team_id: unique identifier of the collaboration Team
param external_id: unique identifier of the collaboration Team that links it with external resources.
param owner_uid: unique identifier of the collaboration Team owner.
"""
return self._get(
"Edit",
params={
"teamId": team_id,
"displayName": display_name,
"externalId": external_id,
"ownerUid": owner_uid,
},
delimeter=",",
)

def Get(self, owner_uid: list[int] = None):
"""
param owner_uid: unique identifier of the collaboration Team owner.
"""
return self._get(
"Get",
params={
"ownerUid": owner_uid,
},
delimeter=",",
)

def Invite(
self,
email: str,
team_id: int,
display_name: list[str] = None,
owner_uid: list[int] = None,
):
"""
param email: email address to send an invitation to.
param team_id: unique identifier of the collaboration Team
param display_name: invited user's display name (in the collaboration Team owner dashboard).
param owner_uid: unique identifier of the collaboration Team owner.
"""
return self._get(
"Invite",
params={
"email": email,
"teamId": team_id,
"displayName": display_name,
"ownerUid": owner_uid,
},
delimeter=",",
)

def ResendInvite(self, member_id: int, owner_uid: list[int] = None):
"""
param member_id: unique identifier of the collaboration Team member.
param owner_uid: unique identifier of the collaboration Team owner.
"""
return self._get(
"ResendInvite",
params={
"memberId": member_id,
"ownerUid": owner_uid,
},
delimeter=",",
)
113 changes: 113 additions & 0 deletions tests/unit/test_api/test_users/test_team.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
from . import *


def test_create(client):
client._get.return_value = success_response
response = client.Team.Create(["display_name1", "display_name2"], [1, 1])
client._get.assert_called_with(
"Create",
params={
"displayName": ["display_name1", "display_name2"],
"ownerUid": [1, 1],
},
delimeter=",",
)

assert response == success_response


def test_delete(client):
client._get.return_value = success_response
response = client.Team.Delete(1, [1, 1])
client._get.assert_called_with(
"Delete",
params={
"teamId": 1,
"ownerUid": [1, 1],
},
delimeter=",",
)

assert response == success_response


def test_delete_member_team(client):
client._get.return_value = success_response
response = client.Team.DeleteMember(1, [1, 1])
client._get.assert_called_with(
"DeleteMember",
params={
"memberId": 1,
"ownerUid": [1, 1],
},
delimeter=",",
)

assert response == success_response


def test_edit(client):
client._get.return_value = success_response
response = client.Team.Edit(
1, ["display_name1", "display_name2"], ["external_id1", "external_id2"], [1, 1]
)
client._get.assert_called_with(
"Edit",
params={
"teamId": 1,
"displayName": ["display_name1", "display_name2"],
"externalId": ["external_id1", "external_id2"],
"ownerUid": [1, 1],
},
delimeter=",",
)

assert response == success_response


def test_get(client):
client._get.return_value = success_response
response = client.Team.Get([1, 1])
client._get.assert_called_with(
"Get",
params={
"ownerUid": [1, 1],
},
delimeter=",",
)

assert response == success_response


def test_invite(client):
client._get.return_value = success_response
response = client.Team.Invite(
"email", 1, ["display_name1", "display_name2"], [1, 1]
)
client._get.assert_called_with(
"Invite",
params={
"email": "email",
"teamId": 1,
"displayName": ["display_name1", "display_name2"],
"ownerUid": [1, 1],
},
delimeter=",",
)

assert response == success_response


def test_resend_invite(client):
client._get.return_value = success_response
response = client.Team.ResendInvite(1, [1, 1])
client._get.assert_called_with(
"ResendInvite",
params={
"memberId": 1,
"ownerUid": [1, 1],
},
delimeter=",",
)

assert response == success_response