Models¶

User¶

class app.model.User(slack_id)¶

Represent a user with related fields and methods.

Parameters

slack_id (str) –

__init__(slack_id)¶

Initialize the user with a given Slack ID.

Parameters

slack_id (str) –

classmethod from_dict(d)¶

Convert dict response object to user model.

Parameters
  • d (typing.Dict[str, typing.Any]) – the dictionary representing a user

  • cls (typing.Type[~T]) –

Return type

~T

Returns

the converted user model.

get_attachment()¶

Return slack-formatted attachment (dictionary) for user.

Return type

typing.Dict[str, typing.Any]

classmethod is_valid(user)¶

Return true if this user has no missing required fields.

Required fields for database to accept:
  • slack_id

  • permissions_level

Parameters
  • user (~T) – user to check

  • cls (typing.Type[~T]) –

Return type

bool

Returns

true if this user has no missing required fields

classmethod to_dict(user)¶

Convert user object to dict object.

The difference with the in-built self.__dict__ is that this is more compatible with storing into NoSQL databases like DynamoDB.

Parameters
  • user (~T) – the user object

  • cls (typing.Type[~T]) –

Return type

typing.Dict[str, typing.Any]

Returns

the dictionary representing the user

Team¶

class app.model.Team(github_team_id, github_team_name, displayname)¶

Represent a team with related fields and methods.

Parameters
  • github_team_id (str) –

  • github_team_name (str) –

  • displayname (str) –

__init__(github_team_id, github_team_name, displayname)¶

Initialize the team.

Parameters are a valid Github team ID, team name and display name.

Parameters
  • github_team_id (str) –

  • github_team_name (str) –

  • displayname (str) –

add_member(github_user_id)¶

Add a new member’s Github ID to the team’s set of members’ IDs.

Parameters

github_user_id (str) –

add_team_lead(github_user_id)¶

Add a user’s Github ID to the team’s set of team lead IDs.

Parameters

github_user_id (str) –

discard_member(github_user_id)¶

Discard the member of the team with Github ID in the argument.

Parameters

github_user_id (str) –

discard_team_lead(github_user_id)¶

Remove a user’s Github ID to the team’s set of team lead IDs.

Parameters

github_user_id (str) –

classmethod from_dict(d)¶

Convert dict response object to team model.

Parameters
  • d (typing.Dict[str, typing.Any]) – the dictionary representing a team

  • cls (typing.Type[~T]) –

Return type

~T

Returns

the converted team model.

get_attachment()¶

Return slack-formatted attachment (dictionary) for team.

get_basic_attachment()¶

Return basic slack-formatted attachment (dictionary) for team.

has_member(github_user_id)¶

Identify if any member has the ID specified in the argument.

Parameters

github_user_id (str) –

Return type

bool

has_team_lead(github_user_id)¶

Identify if user with given ID is a team lead.

Parameters

github_user_id (str) –

Return type

bool

is_team_lead(github_user_id)¶

Identify if user with given ID is a team lead.

Parameters

github_user_id (str) –

Return type

bool

classmethod is_valid(team)¶

Return true if this team has no missing required fields.

Required fields for database to accept:
  • github_team_name

  • github_team_id

Parameters
  • team (~T) – team to check

  • cls (typing.Type[~T]) –

Return type

bool

Returns

true if this team has no missing required fields

classmethod to_dict(team)¶

Convert team object to dict object.

The difference with the in-built self.__dict__ is that this is more compatible with storing into NoSQL databases like DynamoDB.

Parameters
  • team (~T) – the team object

  • cls (typing.Type[~T]) –

Return type

typing.Dict[str, typing.Any]

Returns

the dictionary representing the team

Permissions¶

class app.model.Permissions(value)¶

Enum to represent possible permissions levels.

member = 1¶
team_lead = 2¶
admin = 3¶
__str__()¶

Return the string without ‘Permissions.’ prepended.

Return type

str