| Total Complexity | 12 |
| Total Lines | 61 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | from base import * |
||
| 2 | |||
| 3 | # ======================================================= |
||
| 4 | # Users |
||
| 5 | # ======================================================= |
||
| 6 | class Users(Resource): |
||
| 7 | def fetch(self, |
||
| 8 | with_invited: bool = False, |
||
| 9 | with_roles: list = (UserRoles.ADMIN, UserRoles.AGENT, UserRoles.COLLABORATOR)): |
||
| 10 | roles = ",".join([role[0] for role in with_roles]) |
||
| 11 | return self._get("/users", with_invited=with_invited, with_roles=roles, type="user") |
||
| 12 | |||
| 13 | def get(self, |
||
| 14 | user_id: bool, |
||
| 15 | max_tickets: False or int = 5 # False = all tickets |
||
| 16 | ): |
||
| 17 | return self._get("/users/{user_id}".format(user_id=user_id), max_tickets=max_tickets) |
||
| 18 | |||
| 19 | def create(self, |
||
| 20 | email: str, |
||
| 21 | name: str, |
||
| 22 | role: UserRoles = None, |
||
| 23 | team_ids: list = None): |
||
| 24 | user = { |
||
| 25 | "email": email, |
||
| 26 | "name": name, |
||
| 27 | "type": "user" |
||
| 28 | } |
||
| 29 | if role is not None: |
||
| 30 | user["role"] = role[1] |
||
| 31 | if team_ids is not None: |
||
| 32 | user["team_ids"] = ",".join(team_ids) |
||
| 33 | return self._post("/users", data={"user": user}) |
||
| 34 | |||
| 35 | def update(self, |
||
| 36 | user_id: int, |
||
| 37 | email: str = None, |
||
| 38 | first_name: str = None, |
||
| 39 | last_name: str = None, |
||
| 40 | role: UserRoles = None, |
||
| 41 | team_ids: list = None): |
||
| 42 | user = { |
||
| 43 | "type": "user" |
||
| 44 | } |
||
| 45 | |||
| 46 | if email is not None: |
||
| 47 | user["email"] = email |
||
| 48 | if first_name is not None: |
||
| 49 | user["first_name"] = first_name |
||
| 50 | if last_name is not None: |
||
| 51 | user["last_name"] = last_name |
||
| 52 | if role is not None: |
||
| 53 | user["role"] = role[1] |
||
| 54 | if team_ids is not None: |
||
| 55 | user["team_ids"] = ",".join(team_ids) |
||
| 56 | |||
| 57 | if len(user.keys()) == 1: |
||
| 58 | return # No update called |
||
| 59 | |||
| 60 | return self._post("/users/{user_id}".format(user_id=user_id), data={"user": user}) |
||
| 61 |