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 |