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