eetlijst-python 0.0.3__tar.gz → 0.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/PKG-INFO +1 -1
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/pyproject.toml +1 -1
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/eetlijst.py +2 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/__init__.py +1 -0
- eetlijst_python-0.0.4/src/eetlijst/services/me/__init__.py +1 -0
- eetlijst_python-0.0.4/src/eetlijst/services/me/me.py +53 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/PKG-INFO +1 -1
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/SOURCES.txt +2 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/README.md +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/setup.cfg +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/exceptions.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_attendances.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_events.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_expenses.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_groups.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_settlements.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_users_in_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/app_status.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/async_base_client.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/automatic_events.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/base_model.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/client.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_expense.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_list_item.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_many_list_items.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_settlement.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/enums.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/exceptions.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/fragments.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_attendance.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_event.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_user.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_user_in_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/group_total_expense.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/input_types.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/join_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/list_items.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/remove_account.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/settle_unsettled_expenses.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/settlement_expenses.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_attendance.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_event.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_expense.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_expense_distribution.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_list_item.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_many_attendance.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_user.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_user_in_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_users_in_group.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/app/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/app/app.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/app/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/event_attendance/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/event_attendance/event_attendance.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/event_attendance/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/events/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/events/events.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/events/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/expenses.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/utils.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/group_list.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/group_users.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/groups/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/groups/groups.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/groups/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/settlements.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/utils.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/users/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/users/transformers.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/users/users.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/utils/__init__.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/utils/datetime.py +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/dependency_links.txt +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/requires.txt +0 -0
- {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/top_level.txt +0 -0
|
@@ -12,6 +12,7 @@ from eetlijst.services import (
|
|
|
12
12
|
GroupList,
|
|
13
13
|
Groups,
|
|
14
14
|
GroupUsers,
|
|
15
|
+
Me,
|
|
15
16
|
Settlements,
|
|
16
17
|
Users,
|
|
17
18
|
)
|
|
@@ -57,3 +58,4 @@ class Eetlijst:
|
|
|
57
58
|
self.expenses = Expenses(self._client, settlements)
|
|
58
59
|
|
|
59
60
|
self.users = Users(self._client)
|
|
61
|
+
self.me = Me(api_key, self.users)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .me import Me
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import json
|
|
3
|
+
from datetime import datetime, timezone
|
|
4
|
+
from typing import Any, Optional
|
|
5
|
+
|
|
6
|
+
from eetlijst.services.users import Users
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Me:
|
|
10
|
+
def __init__(self, api_key: str, users: Users):
|
|
11
|
+
self._users = users
|
|
12
|
+
payload = self._decode_payload(api_key)
|
|
13
|
+
|
|
14
|
+
self.user_id: Optional[str] = payload.get("sub")
|
|
15
|
+
self.name: Optional[str] = payload.get("name")
|
|
16
|
+
|
|
17
|
+
iat_timestamp = payload.get("iat")
|
|
18
|
+
self.issued_at: Optional[datetime] = (
|
|
19
|
+
datetime.fromtimestamp(iat_timestamp, tz=timezone.utc)
|
|
20
|
+
if iat_timestamp is not None
|
|
21
|
+
else None
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
exp_timestamp = payload.get("exp")
|
|
25
|
+
self.expires: Optional[datetime] = (
|
|
26
|
+
datetime.fromtimestamp(exp_timestamp, tz=timezone.utc)
|
|
27
|
+
if exp_timestamp is not None
|
|
28
|
+
else None
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
async def get(self):
|
|
32
|
+
if not self.user_id:
|
|
33
|
+
raise ValueError(
|
|
34
|
+
"Cannot fetch user profile: missing 'sub' (user_id) in JWT."
|
|
35
|
+
)
|
|
36
|
+
return await self._users.get(self.user_id)
|
|
37
|
+
|
|
38
|
+
@staticmethod
|
|
39
|
+
def _decode_payload(token: str) -> dict[str, Any]:
|
|
40
|
+
try:
|
|
41
|
+
if token.lower().startswith("bearer "):
|
|
42
|
+
token = token[7:]
|
|
43
|
+
|
|
44
|
+
parts = token.split(".")
|
|
45
|
+
if len(parts) != 3:
|
|
46
|
+
return {}
|
|
47
|
+
|
|
48
|
+
payload_b64 = parts[1]
|
|
49
|
+
padding = "=" * (-len(payload_b64) % 4)
|
|
50
|
+
decoded_bytes = base64.urlsafe_b64decode(payload_b64 + padding)
|
|
51
|
+
return json.loads(decoded_bytes.decode("utf-8"))
|
|
52
|
+
except Exception:
|
|
53
|
+
return {}
|
|
@@ -68,6 +68,8 @@ src/eetlijst/services/group_users/transformers.py
|
|
|
68
68
|
src/eetlijst/services/groups/__init__.py
|
|
69
69
|
src/eetlijst/services/groups/groups.py
|
|
70
70
|
src/eetlijst/services/groups/transformers.py
|
|
71
|
+
src/eetlijst/services/me/__init__.py
|
|
72
|
+
src/eetlijst/services/me/me.py
|
|
71
73
|
src/eetlijst/services/settlements/__init__.py
|
|
72
74
|
src/eetlijst/services/settlements/settlements.py
|
|
73
75
|
src/eetlijst/services/settlements/transformers.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_users_in_group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_many_list_items.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/group_total_expense.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/settle_unsettled_expenses.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/settlement_expenses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_many_attendance.py
RENAMED
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_user_in_group.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_users_in_group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/event_attendance/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/events/transformers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/transformers.py
RENAMED
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/__init__.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/group_list.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/transformers.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/__init__.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/group_users.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/transformers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/groups/transformers.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/__init__.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/settlements.py
RENAMED
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/transformers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|