-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdata.py
More file actions
81 lines (59 loc) · 1.72 KB
/
data.py
File metadata and controls
81 lines (59 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
class User():
def __init__(self, user_id: str, name: str, avatar: str):
self.user_id = user_id
self.name = name
self.avatar = avatar
def normalize(self) -> dict[str, any]:
return {
"userID": self.user_id,
"name": self.name,
"avatar": self.avatar,
}
class Member():
def __init__(self, unit_id: str, user_id: str, role: str):
self.unit_id = unit_id
self.user_id = user_id
self.role = role
def normalize(self) -> dict[str, any]:
return {
"unitID": self.unit_id,
"userID": self.user_id,
"role": self.role,
}
class Role():
OWNER = "owner"
EDITOR = "editor"
READER = "reader"
x_authorization = {
"token:1": "1",
"token:2": "2",
"token:3": "3",
}
users = [
User("1", "user1", "avatar1"),
User("2", "user2", "avatar2"),
User("3", "user3", "avatar3"),
]
members = [
Member("unit1", "1", Role.OWNER),
Member("unit1", "2", Role.EDITOR),
Member("unit2", "2", Role.OWNER),
Member("unit2", "3", Role.READER),
Member("unit3", "3", Role.OWNER),
Member("unit3", "1", Role.EDITOR),
]
# return user_id if verify token success
def verify_token(token: str) -> str|None:
return x_authorization.get(token, None)
def get_user(user_id: str) -> User|None:
for user in users:
if user.user_id == user_id:
return user
return None
def get_members(unit_id: str) -> list[Member]:
return [m for m in members if m.unit_id == unit_id]
def get_role(unit_id: str, user_id: str) -> Member|None:
for m in members:
if m.unit_id == unit_id and m.user_id == user_id:
return m
return None