diff options
Diffstat (limited to 'django/factwise-python/factwise_submission/plannerapp/base/team_base.py')
| -rw-r--r-- | django/factwise-python/factwise_submission/plannerapp/base/team_base.py | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/django/factwise-python/factwise_submission/plannerapp/base/team_base.py b/django/factwise-python/factwise_submission/plannerapp/base/team_base.py new file mode 100644 index 0000000..29b1a5d --- /dev/null +++ b/django/factwise-python/factwise_submission/plannerapp/base/team_base.py @@ -0,0 +1,133 @@ +class TeamBase: + """ + Base interface implementation for API's to manage teams. + For simplicity a single team manages a single project. And there is a separate team per project. + Users can be + """ + + # create a team + def create_team(self, request: str) -> str: + """ + :param request: A json string with the team details + { + "name" : "<team_name>", + "description" : "<some description>", + "admin": "<id of a user>" + } + :return: A json string with the response {"id" : "<team_id>"} + + Constraint: + * Team name must be unique + * Name can be max 64 characters + * Description can be max 128 characters + """ + pass + + # list all teams + def list_teams(self) -> str: + """ + :return: A json list with the response. + [ + { + "name" : "<team_name>", + "description" : "<some description>", + "creation_time" : "<some date:time format>", + "admin": "<id of a user>" + } + ] + """ + pass + + # describe team + def describe_team(self, request: str) -> str: + """ + :param request: A json string with the team details + { + "id" : "<team_id>" + } + + :return: A json string with the response + + { + "name" : "<team_name>", + "description" : "<some description>", + "creation_time" : "<some date:time format>", + "admin": "<id of a user>" + } + + """ + pass + + # update team + def update_team(self, request: str) -> str: + """ + :param request: A json string with the team details + { + "id" : "<team_id>", + "team" : { + "name" : "<team_name>", + "description" : "<team_description>", + "admin": "<id of a user>" + } + } + + :return: + + Constraint: + * Team name must be unique + * Name can be max 64 characters + * Description can be max 128 characters + """ + pass + + # add users to team + def add_users_to_team(self, request: str): + """ + :param request: A json string with the team details + { + "id" : "<team_id>", + "users" : ["user_id 1", "user_id2"] + } + + :return: + + Constraint: + * Cap the max users that can be added to 50 + """ + pass + + # add users to team + def remove_users_from_team(self, request: str): + """ + :param request: A json string with the team details + { + "id" : "<team_id>", + "users" : ["user_id 1", "user_id2"] + } + + :return: + + Constraint: + * Cap the max users that can be added to 50 + """ + pass + + # list users of a team + def list_team_users(self, request: str): + """ + :param request: A json string with the team identifier + { + "id" : "<team_id>" + } + + :return: + [ + { + "id" : "<user_id>", + "name" : "<user_name>", + "display_name" : "<display name>" + } + ] + """ + pass + |
