eetlijst-python 0.0.7__tar.gz → 0.0.9__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.
Files changed (89) hide show
  1. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/PKG-INFO +7 -1
  2. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/README.md +6 -0
  3. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/pyproject.toml +1 -1
  4. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/eetlijst.py +11 -14
  5. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/app/app.py +3 -5
  6. eetlijst_python-0.0.9/src/eetlijst_py/services/base.py +20 -0
  7. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/event_attendance/event_attendance.py +28 -7
  8. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/events/events.py +7 -3
  9. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/expenses/expenses.py +14 -6
  10. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/group_list/group_list.py +12 -6
  11. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/group_users/group_users.py +23 -7
  12. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/groups/groups.py +16 -5
  13. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/groups/transformers.py +1 -1
  14. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/settlements/settlements.py +16 -6
  15. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/users/transformers.py +1 -1
  16. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/users/users.py +10 -4
  17. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_python.egg-info/PKG-INFO +7 -1
  18. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_python.egg-info/SOURCES.txt +1 -0
  19. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/setup.cfg +0 -0
  20. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/__init__.py +0 -0
  21. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/exceptions.py +0 -0
  22. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/__init__.py +0 -0
  23. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/all_attendances.py +0 -0
  24. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/all_events.py +0 -0
  25. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/all_expenses.py +0 -0
  26. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/all_groups.py +0 -0
  27. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/all_settlements.py +0 -0
  28. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/all_users_in_group.py +0 -0
  29. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/app_status.py +0 -0
  30. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/async_base_client.py +0 -0
  31. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/automatic_events.py +0 -0
  32. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/base_model.py +0 -0
  33. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/client.py +0 -0
  34. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/create_expense.py +0 -0
  35. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/create_group.py +0 -0
  36. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/create_list_item.py +0 -0
  37. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/create_many_list_items.py +0 -0
  38. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/create_settlement.py +0 -0
  39. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/enums.py +0 -0
  40. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/exceptions.py +0 -0
  41. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/fragments.py +0 -0
  42. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/get_attendance.py +0 -0
  43. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/get_event.py +0 -0
  44. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/get_group.py +0 -0
  45. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/get_user.py +0 -0
  46. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/get_user_in_group.py +0 -0
  47. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/group_total_expense.py +0 -0
  48. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/input_types.py +0 -0
  49. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/join_group.py +0 -0
  50. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/list_items.py +0 -0
  51. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/remove_account.py +0 -0
  52. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/settle_unsettled_expenses.py +0 -0
  53. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/settlement_expenses.py +0 -0
  54. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_attendance.py +0 -0
  55. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_event.py +0 -0
  56. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_expense.py +0 -0
  57. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_expense_distribution.py +0 -0
  58. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_group.py +0 -0
  59. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_list_item.py +0 -0
  60. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_many_attendance.py +0 -0
  61. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_user.py +0 -0
  62. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_user_in_group.py +0 -0
  63. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/generated/update_users_in_group.py +0 -0
  64. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/__init__.py +0 -0
  65. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/app/__init__.py +0 -0
  66. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/app/transformers.py +0 -0
  67. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/event_attendance/__init__.py +0 -0
  68. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/event_attendance/transformers.py +0 -0
  69. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/events/__init__.py +0 -0
  70. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/events/transformers.py +0 -0
  71. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/expenses/__init__.py +0 -0
  72. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/expenses/transformers.py +0 -0
  73. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/expenses/utils.py +0 -0
  74. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/group_list/__init__.py +0 -0
  75. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/group_list/transformers.py +0 -0
  76. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/group_users/__init__.py +0 -0
  77. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/group_users/transformers.py +0 -0
  78. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/groups/__init__.py +0 -0
  79. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/me/__init__.py +0 -0
  80. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/me/me.py +0 -0
  81. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/settlements/__init__.py +0 -0
  82. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/settlements/transformers.py +0 -0
  83. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/settlements/utils.py +0 -0
  84. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/services/users/__init__.py +0 -0
  85. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/utils/__init__.py +0 -0
  86. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_py/utils/datetime.py +0 -0
  87. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_python.egg-info/dependency_links.txt +0 -0
  88. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_python.egg-info/requires.txt +0 -0
  89. {eetlijst_python-0.0.7 → eetlijst_python-0.0.9}/src/eetlijst_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eetlijst-python
3
- Version: 0.0.7
3
+ Version: 0.0.9
4
4
  Summary: Python rewrite of the Eetlijst GraphQL client
5
5
  Requires-Python: <3.15,>=3.14
6
6
  Description-Content-Type: text/markdown
@@ -76,3 +76,9 @@ Build the package:
76
76
  ```
77
77
  python -m build
78
78
  ```
79
+
80
+ Publish from local:
81
+
82
+ ```
83
+ python -m twine upload dist/*
84
+ ```
@@ -61,3 +61,9 @@ Build the package:
61
61
  ```
62
62
  python -m build
63
63
  ```
64
+
65
+ Publish from local:
66
+
67
+ ```
68
+ python -m twine upload dist/*
69
+ ```
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eetlijst-python"
3
- version = "0.0.7"
3
+ version = "0.0.9"
4
4
  description = "Python rewrite of the Eetlijst GraphQL client"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.14,<3.15"
@@ -31,13 +31,10 @@ class Eetlijst:
31
31
  ws_origin: Optional[str] = None,
32
32
  ws_connection_init_payload: Optional[dict[str, Any]] = None,
33
33
  ):
34
- client_headers = dict(headers) if headers else {}
35
- if api_key:
36
- client_headers["Authorization"] = f"Bearer {api_key}"
37
-
34
+ self._api_key = api_key
38
35
  self._client = GraphQlClient(
39
36
  url=url or "https://api.eetlijst.nl/v1/graphql",
40
- headers=client_headers,
37
+ headers=headers,
41
38
  http_client=http_client,
42
39
  ws_url=ws_url,
43
40
  ws_headers=ws_headers,
@@ -45,17 +42,17 @@ class Eetlijst:
45
42
  ws_connection_init_payload=ws_connection_init_payload,
46
43
  )
47
44
 
48
- self.app = App(self._client)
45
+ self.app = App(self._client, self._api_key)
49
46
 
50
- event_attendance = EventAttendance(self._client)
51
- self.events = Events(self._client, event_attendance)
47
+ event_attendance = EventAttendance(self._client, self._api_key)
48
+ self.events = Events(self._client, self._api_key, event_attendance)
52
49
 
53
- group_users = GroupUsers(self._client)
54
- group_list = GroupList(self._client)
55
- self.groups = Groups(self._client, group_users, group_list)
50
+ group_users = GroupUsers(self._client, self._api_key)
51
+ group_list = GroupList(self._client, self._api_key)
52
+ self.groups = Groups(self._client, self._api_key, group_users, group_list)
56
53
 
57
- settlements = Settlements(self._client)
58
- self.expenses = Expenses(self._client, settlements)
54
+ settlements = Settlements(self._client, self._api_key)
55
+ self.expenses = Expenses(self._client, self._api_key, settlements)
59
56
 
60
- self.users = Users(self._client)
57
+ self.users = Users(self._client, self._api_key)
61
58
  self.me = Me(api_key, self.users)
@@ -1,18 +1,16 @@
1
1
  from dataclasses import dataclass
2
2
 
3
- from eetlijst_py.generated import GraphQlClient
4
-
5
3
  from eetlijst_py.exceptions import EetlijstException
6
4
 
7
5
  from eetlijst_py.services.app.transformers import transform_app_status
6
+ from eetlijst_py.services.base import BaseService
8
7
 
9
8
 
10
9
  @dataclass
11
- class App:
12
- _client: GraphQlClient
10
+ class App(BaseService):
13
11
 
14
12
  async def status(self):
15
- result = await self._client.app_status()
13
+ result = await self._client.app_status(headers=self._get_headers())
16
14
 
17
15
  if not result or not result.eetschema_app_status:
18
16
  raise EetlijstException("App status not found")
@@ -0,0 +1,20 @@
1
+ from dataclasses import dataclass
2
+ from typing import Optional
3
+
4
+ from eetlijst_py.generated import GraphQlClient
5
+
6
+
7
+ @dataclass
8
+ class BaseService:
9
+ _client: GraphQlClient
10
+ _api_key: str
11
+
12
+ def _get_headers(
13
+ self, custom_headers: Optional[dict[str, str]] = None
14
+ ) -> dict[str, str]:
15
+ headers = {"Authorization": f"Bearer {self._api_key}"}
16
+
17
+ if custom_headers:
18
+ headers.update(custom_headers)
19
+
20
+ return headers
@@ -1,6 +1,5 @@
1
1
  from dataclasses import dataclass
2
2
 
3
- from eetlijst_py.generated import GraphQlClient
4
3
  from eetlijst_py.generated.base_model import UNSET, UnsetType
5
4
  from eetlijst_py.generated.enums import AttendanceStatus
6
5
  from eetlijst_py.generated.input_types import (
@@ -10,6 +9,8 @@ from eetlijst_py.generated.input_types import (
10
9
  eetschema_event_attendees_set_input,
11
10
  )
12
11
 
12
+ from eetlijst_py.services.base import BaseService
13
+
13
14
  from .transformers import (
14
15
  transform_attendance,
15
16
  transform_update_attendance,
@@ -29,15 +30,19 @@ class EventAttendceUpdate(eetschema_event_attendees_set_input):
29
30
 
30
31
 
31
32
  @dataclass
32
- class EventAttendance:
33
- _client: GraphQlClient
33
+ class EventAttendance(BaseService):
34
34
 
35
35
  async def get(
36
36
  self,
37
37
  event_id: str,
38
38
  user_id: str,
39
39
  ):
40
- result = await self._client.get_attendance(event_id, user_id)
40
+ result = await self._client.get_attendance(
41
+ event_id,
42
+ user_id,
43
+ headers=self._get_headers(),
44
+ headers=self._get_headers(),
45
+ )
41
46
  return transform_attendance(result.eetschema_event_attendees_by_pk)
42
47
 
43
48
  async def all(
@@ -46,7 +51,13 @@ class EventAttendance:
46
51
  order: list[eetschema_event_attendees_order_by] | UnsetType | None = UNSET,
47
52
  limit: int | UnsetType | None = UNSET,
48
53
  ):
49
- result = await self._client.all_attendances(where, order, limit)
54
+ result = await self._client.all_attendances(
55
+ where,
56
+ order,
57
+ limit,
58
+ headers=self._get_headers(),
59
+ headers=self._get_headers(),
60
+ )
50
61
  return [
51
62
  transform_attendance(attendee)
52
63
  for attendee in result.eetschema_event_attendees
@@ -56,11 +67,21 @@ class EventAttendance:
56
67
  return await self.update_many([data])
57
68
 
58
69
  async def update(self, data: EventAttendceUpdate):
59
- result = await self._client.update_attendance(data.event_id, data.user_id, data)
70
+ result = await self._client.update_attendance(
71
+ data.event_id,
72
+ data.user_id,
73
+ data,
74
+ headers=self._get_headers(),
75
+ headers=self._get_headers(),
76
+ )
60
77
  return transform_update_attendance(result)
61
78
 
62
79
  async def update_many(self, data: list[eetschema_event_attendees_insert_input]):
63
- result = await self._client.update_many_attendance(data)
80
+ result = await self._client.update_many_attendance(
81
+ data,
82
+ headers=self._get_headers(),
83
+ headers=self._get_headers(),
84
+ )
64
85
  return transform_update_many_attendance(result)
65
86
 
66
87
  async def comment(self, user_id: str, event_id: str, comment: str | None):
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass
2
2
  from datetime import datetime
3
3
 
4
- from eetlijst_py.generated import GraphQlClient, order_by
4
+ from eetlijst_py.generated import order_by
5
5
  from eetlijst_py.generated.input_types import (
6
6
  eetschema_event_bool_exp,
7
7
  eetschema_event_order_by,
@@ -9,6 +9,7 @@ from eetlijst_py.generated.input_types import (
9
9
  uuid_comparison_exp,
10
10
  )
11
11
 
12
+ from eetlijst_py.services.base import BaseService
12
13
  from eetlijst_py.services.event_attendance import EventAttendance
13
14
 
14
15
  from eetlijst_py.utils.datetime import current_datetime, format_date
@@ -21,14 +22,14 @@ from .transformers import (
21
22
 
22
23
 
23
24
  @dataclass
24
- class Events:
25
- _client: GraphQlClient
25
+ class Events(BaseService):
26
26
  attendance: EventAttendance
27
27
 
28
28
  async def populate_dinners(self, group_id: str, date: datetime | str):
29
29
  result = await self._client.automatic_events(
30
30
  group_id,
31
31
  format_date(date),
32
+ headers=self._get_headers(),
32
33
  )
33
34
  return transform_automatic_events(result)
34
35
 
@@ -42,6 +43,7 @@ class Events:
42
43
  event_id,
43
44
  include_attendees,
44
45
  include_expenses,
46
+ headers=self._get_headers(),
45
47
  )
46
48
  return transform_event(result.eetschema_event_by_pk)
47
49
 
@@ -73,6 +75,7 @@ class Events:
73
75
  limit,
74
76
  include_attendees,
75
77
  include_expenses,
78
+ headers=self._get_headers(),
76
79
  )
77
80
  return [transform_event(event) for event in result.eetschema_event]
78
81
 
@@ -88,6 +91,7 @@ class Events:
88
91
  data,
89
92
  include_attendees,
90
93
  include_expenses,
94
+ headers=self._get_headers(),
91
95
  )
92
96
  return transform_update_event(result)
93
97
 
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Optional
3
3
 
4
- from eetlijst_py.generated import GraphQlClient, order_by
4
+ from eetlijst_py.generated import order_by
5
5
  from eetlijst_py.generated.input_types import (
6
6
  Boolean_comparison_exp,
7
7
  eetschema_expense_bool_exp,
@@ -12,6 +12,7 @@ from eetlijst_py.generated.input_types import (
12
12
  uuid_comparison_exp,
13
13
  )
14
14
 
15
+ from eetlijst_py.services.base import BaseService
15
16
  from eetlijst_py.services.expenses.transformers import (
16
17
  transform_create_expense,
17
18
  transform_expense,
@@ -22,13 +23,13 @@ from eetlijst_py.services.settlements import Settlements
22
23
 
23
24
 
24
25
  @dataclass
25
- class Expenses:
26
- _client: GraphQlClient
26
+ class Expenses(BaseService):
27
27
  settlements: Settlements
28
28
 
29
29
  async def get(self, expense_id: str):
30
30
  result = await self._client.all_expenses(
31
- where=eetschema_expense_bool_exp(id=uuid_comparison_exp(_eq=expense_id))
31
+ where=eetschema_expense_bool_exp(id=uuid_comparison_exp(_eq=expense_id)),
32
+ headers=self._get_headers(),
32
33
  )
33
34
 
34
35
  return transform_expense(result.eetschema_expense[0])
@@ -61,18 +62,20 @@ class Expenses:
61
62
  where=where_data,
62
63
  order=order_data,
63
64
  limit=limit,
65
+ headers=self._get_headers(),
64
66
  )
65
67
 
66
68
  return [transform_expense(expense) for expense in result.eetschema_expense]
67
69
 
68
70
  async def create(self, data: eetschema_expense_insert_input):
69
- result = await self._client.create_expense(*data)
71
+ result = await self._client.create_expense(*data, headers=self._get_headers())
70
72
  return transform_create_expense(result)
71
73
 
72
74
  async def update(self, expense_id: str, data: eetschema_expense_set_input):
73
75
  result = await self._client.update_expense(
74
76
  expense_id=expense_id,
75
77
  set_=data,
78
+ headers=self._get_headers(),
76
79
  )
77
80
 
78
81
  return transform_update_expense(result)
@@ -85,6 +88,7 @@ class Expenses:
85
88
  await self._client.update_expense_distribution(
86
89
  expense_id=expense_id,
87
90
  objects=data,
91
+ headers=self._get_headers(),
88
92
  )
89
93
 
90
94
  async def delete(self, expense_id: str):
@@ -94,5 +98,9 @@ class Expenses:
94
98
  )
95
99
 
96
100
  async def group_total(self, group_id: str):
97
- result = await self._client.group_total_expense(group_id=group_id)
101
+ result = await self._client.group_total_expense(
102
+ group_id=group_id,
103
+ headers=self._get_headers(),
104
+ headers=self._get_headers(),
105
+ )
98
106
  return transform_group_total_expense(result)
@@ -1,7 +1,6 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Optional
3
3
 
4
- from eetlijst_py.generated import GraphQlClient
5
4
  from eetlijst_py.generated.input_types import (
6
5
  eetschema_list_bool_exp,
7
6
  eetschema_list_insert_input,
@@ -12,6 +11,7 @@ from eetlijst_py.generated.input_types import (
12
11
 
13
12
  from eetlijst_py.exceptions import EetlijstException
14
13
 
14
+ from eetlijst_py.services.base import BaseService
15
15
  from eetlijst_py.services.group_list.transformers import (
16
16
  transform_create_list_item,
17
17
  transform_create_many_list_items,
@@ -21,12 +21,12 @@ from eetlijst_py.services.group_list.transformers import (
21
21
 
22
22
 
23
23
  @dataclass
24
- class GroupList:
25
- _client: GraphQlClient
24
+ class GroupList(BaseService):
26
25
 
27
26
  async def get(self, item_id: str):
28
27
  result = await self._client.list_items(
29
- where=eetschema_list_bool_exp(id=uuid_comparison_exp(_eq=item_id))
28
+ where=eetschema_list_bool_exp(id=uuid_comparison_exp(_eq=item_id)),
29
+ headers=self._get_headers(),
30
30
  )
31
31
 
32
32
  return transform_list_item(result.eetschema_list[0])
@@ -53,22 +53,28 @@ class GroupList:
53
53
  where=where_data,
54
54
  order=order,
55
55
  limit=limit,
56
+ headers=self._get_headers(),
56
57
  )
57
58
 
58
59
  return [transform_list_item(item) for item in result.eetschema_list]
59
60
 
60
61
  async def create_item(self, data: eetschema_list_insert_input):
61
- result = await self._client.create_list_item(*data)
62
+ result = await self._client.create_list_item(*data, headers=self._get_headers())
62
63
  return transform_create_list_item(result)
63
64
 
64
65
  async def create_many_items(self, items: list[eetschema_list_insert_input]):
65
- result = await self._client.create_many_list_items(items=items)
66
+ result = await self._client.create_many_list_items(
67
+ items=items,
68
+ headers=self._get_headers(),
69
+ headers=self._get_headers(),
70
+ )
66
71
  return transform_create_many_list_items(result)
67
72
 
68
73
  async def update_item(self, item_id: str, data: eetschema_list_set_input):
69
74
  result = await self._client.update_list_item(
70
75
  id=item_id,
71
76
  set_=data,
77
+ headers=self._get_headers(),
72
78
  )
73
79
  return transform_update_list_item(result)
74
80
 
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Optional, TypedDict, Union
3
3
 
4
- from eetlijst_py.generated import GraphQlClient, order_by
4
+ from eetlijst_py.generated import order_by
5
5
  from eetlijst_py.generated.input_types import (
6
6
  Boolean_comparison_exp,
7
7
  String_comparison_exp,
@@ -12,6 +12,7 @@ from eetlijst_py.generated.input_types import (
12
12
  uuid_comparison_exp,
13
13
  )
14
14
 
15
+ from eetlijst_py.services.base import BaseService
15
16
  from eetlijst_py.services.group_users.transformers import (
16
17
  transform_all_users_in_group,
17
18
  transform_get_user_in_group,
@@ -27,12 +28,13 @@ class UserOrderItem(TypedDict):
27
28
 
28
29
 
29
30
  @dataclass
30
- class GroupUsers:
31
- _client: GraphQlClient
31
+ class GroupUsers(BaseService):
32
32
 
33
33
  async def get(self, group_id: str, user_id: str):
34
34
  result = await self._client.get_user_in_group(
35
- group_id=group_id, user_id=user_id
35
+ group_id=group_id,
36
+ user_id=user_id,
37
+ headers=self._get_headers(),
36
38
  )
37
39
  return transform_get_user_in_group(result)
38
40
 
@@ -67,12 +69,19 @@ class GroupUsers:
67
69
  where=where_data,
68
70
  order=order_data,
69
71
  limit=limit,
72
+ headers=self._get_headers(),
70
73
  )
71
74
 
72
75
  return transform_all_users_in_group(result)
73
76
 
74
77
  async def add(self, group_id: str, user_id: str, invite_id: str):
75
- result = await self._client.join_group(group_id, user_id, invite_id)
78
+ result = await self._client.join_group(
79
+ group_id,
80
+ user_id,
81
+ invite_id,
82
+ headers=self._get_headers(),
83
+ headers=self._get_headers(),
84
+ )
76
85
  return transform_join_group(result)
77
86
 
78
87
  async def update(
@@ -82,7 +91,10 @@ class GroupUsers:
82
91
  data: eetschema_users_in_group_set_input,
83
92
  ):
84
93
  result = await self._client.update_user_in_group(
85
- group_id=group_id, user_id=user_id, set_=data
94
+ group_id=group_id,
95
+ user_id=user_id,
96
+ set_=data,
97
+ headers=self._get_headers(),
86
98
  )
87
99
 
88
100
  return transform_update_user_in_group(result)
@@ -91,7 +103,11 @@ class GroupUsers:
91
103
  self,
92
104
  updates: list[eetschema_users_in_group_updates],
93
105
  ):
94
- result = await self._client.update_users_in_group(updates=updates)
106
+ result = await self._client.update_users_in_group(
107
+ updates=updates,
108
+ headers=self._get_headers(),
109
+ headers=self._get_headers(),
110
+ )
95
111
  return transform_update_users_in_group(result)
96
112
 
97
113
  async def remove(self, group_id: str, user_id: str):
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import TYPE_CHECKING, List, Optional
3
3
 
4
- from eetlijst_py.generated import GraphQlClient, order_by
4
+ from eetlijst_py.generated import order_by
5
5
  from eetlijst_py.generated.input_types import (
6
6
  String_comparison_exp,
7
7
  eetschema_group_order_by,
@@ -10,6 +10,7 @@ from eetlijst_py.generated.input_types import (
10
10
  eetschema_users_in_group_order_by,
11
11
  )
12
12
 
13
+ from eetlijst_py.services.base import BaseService
13
14
  from eetlijst_py.services.group_list import GroupList
14
15
  from eetlijst_py.services.groups.transformers import (
15
16
  GroupResult,
@@ -24,8 +25,7 @@ if TYPE_CHECKING:
24
25
 
25
26
 
26
27
  @dataclass
27
- class Groups:
28
- _client: GraphQlClient
28
+ class Groups(BaseService):
29
29
  users: GroupUsers
30
30
  list: GroupList
31
31
 
@@ -34,7 +34,11 @@ class Groups:
34
34
  group_id: str,
35
35
  include_users: bool = False,
36
36
  ) -> GroupResult:
37
- result = await self._client.get_group(group_id=group_id)
37
+ result = await self._client.get_group(
38
+ group_id=group_id,
39
+ headers=self._get_headers(),
40
+ headers=self._get_headers(),
41
+ )
38
42
  return transform_get_group(result, include_users=include_users)
39
43
 
40
44
  async def all(
@@ -66,12 +70,18 @@ class Groups:
66
70
  limit=limit,
67
71
  include_users=include_users,
68
72
  include_inactive_users=include_inactive_users,
73
+ headers=self._get_headers(),
69
74
  )
70
75
 
71
76
  return transform_all_groups(result, include_users=include_users)
72
77
 
73
78
  async def create(self, name: str, user_id: str) -> GroupResult:
74
- result = await self._client.create_group(name=name, user_id=user_id)
79
+ result = await self._client.create_group(
80
+ name=name,
81
+ user_id=user_id,
82
+ headers=self._get_headers(),
83
+ headers=self._get_headers(),
84
+ )
75
85
  return transform_create_group(result)
76
86
 
77
87
  async def update(
@@ -80,5 +90,6 @@ class Groups:
80
90
  result = await self._client.update_group(
81
91
  group_id=group_id,
82
92
  set_=data,
93
+ headers=self._get_headers(),
83
94
  )
84
95
  return transform_update_group(result)
@@ -46,7 +46,7 @@ class GroupResult(BaseModel):
46
46
  invite_open: bool
47
47
  description: Optional[str]
48
48
  summary: list[GroupSummaryResult]
49
- users: list[UserInGroupResult] = []
49
+ users: list[UserInGroupResult]
50
50
 
51
51
 
52
52
  def transform_group(
@@ -3,7 +3,7 @@ from dataclasses import dataclass
3
3
  from datetime import datetime, timezone
4
4
  from typing import List, Optional, TypedDict
5
5
 
6
- from eetlijst_py.generated import GraphQlClient, order_by
6
+ from eetlijst_py.generated import order_by
7
7
  from eetlijst_py.generated.fragments import ExpenseFields
8
8
  from eetlijst_py.generated.input_types import (
9
9
  Boolean_comparison_exp,
@@ -16,6 +16,7 @@ from eetlijst_py.generated.input_types import (
16
16
  uuid_comparison_exp,
17
17
  )
18
18
 
19
+ from eetlijst_py.services.base import BaseService
19
20
  from eetlijst_py.services.expenses.transformers import (
20
21
  transform_create_expense,
21
22
  transform_update_expense,
@@ -41,14 +42,14 @@ class SettleResult(TypedDict):
41
42
 
42
43
 
43
44
  @dataclass
44
- class Settlements:
45
- _client: GraphQlClient
45
+ class Settlements(BaseService):
46
46
 
47
47
  async def get(self, settlement_id: str) -> Optional[SettlementResult]:
48
48
  result = await self._client.all_settlements(
49
49
  where=eetschema_settlements_bool_exp(
50
- id=uuid_comparison_exp(_eq=settlement_id)
51
- )
50
+ id=uuid_comparison_exp(_eq=settlement_id),
51
+ ),
52
+ headers=self._get_headers(),
52
53
  )
53
54
 
54
55
  return transform_settlement(result.eetschema_settlements[0])
@@ -73,11 +74,16 @@ class Settlements:
73
74
  where=where_data,
74
75
  order=order_data,
75
76
  limit=limit,
77
+ headers=self._get_headers(),
76
78
  )
77
79
  return [transform_settlement(s) for s in result.eetschema_settlements]
78
80
 
79
81
  async def create(self, group_id: str) -> SettlementResult:
80
- result = await self._client.create_settlement(group_id=group_id)
82
+ result = await self._client.create_settlement(
83
+ group_id=group_id,
84
+ headers=self._get_headers(),
85
+ headers=self._get_headers(),
86
+ )
81
87
  return transform_create_settlement(result)
82
88
 
83
89
  async def settle(
@@ -110,6 +116,7 @@ class Settlements:
110
116
  result = await self._client.settle_unsettled_expenses(
111
117
  settlement_id=settlement_id,
112
118
  where=where_data,
119
+ headers=self._get_headers(),
113
120
  )
114
121
  settled = transform_settle_unsettled_expenses(result)
115
122
 
@@ -141,12 +148,14 @@ class Settlements:
141
148
  description=description,
142
149
  settlement_expense_id=settlement_id,
143
150
  data=distribution_data,
151
+ headers=self._get_headers(),
144
152
  )
145
153
  created_expense = transform_create_expense(created_raw)
146
154
 
147
155
  updated_raw = await self._client.update_expense(
148
156
  expense_id=created_expense.id,
149
157
  set_=eetschema_expense_set_input(settled_id=settlement_id),
158
+ headers=self._get_headers(),
150
159
  )
151
160
  return transform_update_expense(updated_raw)
152
161
 
@@ -221,5 +230,6 @@ class Settlements:
221
230
  result = await self._client.settlement_expenses(
222
231
  where=where_data,
223
232
  order=order_data,
233
+ headers=self._get_headers(),
224
234
  )
225
235
  return transform_settlement_expenses(result)
@@ -29,7 +29,7 @@ class UserResult(BaseModel):
29
29
  profile_image_url: Optional[str] = None
30
30
  order_of_buttom_bar: Optional[str] = None
31
31
  funnel_lead: Optional[str] = None
32
- cook_points_imports: list[CookPointsImportResult] = []
32
+ cook_points_imports: list[CookPointsImportResult]
33
33
 
34
34
 
35
35
  class UserPrivateResult(UserFieldsPrivate):
@@ -1,9 +1,10 @@
1
1
  from dataclasses import dataclass
2
2
 
3
- from eetlijst_py.generated import GraphQlClient
4
3
  from eetlijst_py.generated.base_model import UNSET, UnsetType
5
4
  from eetlijst_py.generated.input_types import eetschema_user_set_input
6
5
 
6
+ from eetlijst_py.services.base import BaseService
7
+
7
8
  from .transformers import (
8
9
  transform_get_user,
9
10
  transform_remove_account_reasons,
@@ -12,17 +13,21 @@ from .transformers import (
12
13
 
13
14
 
14
15
  @dataclass
15
- class Users:
16
- _client: GraphQlClient
16
+ class Users(BaseService):
17
17
 
18
18
  async def get(self, user_id: str):
19
- result = await self._client.get_user(user_id=user_id)
19
+ result = await self._client.get_user(
20
+ user_id=user_id,
21
+ headers=self._get_headers(),
22
+ headers=self._get_headers(),
23
+ )
20
24
  return transform_get_user(result)
21
25
 
22
26
  async def update(self, user_id: str, data: eetschema_user_set_input):
23
27
  result = await self._client.update_user(
24
28
  user_id=user_id,
25
29
  set_=data,
30
+ headers=self._get_headers(),
26
31
  )
27
32
  return transform_update_user(result)
28
33
 
@@ -40,5 +45,6 @@ class Users:
40
45
  reason_to_remove_account_text,
41
46
  reason_to_remove_account_selection,
42
47
  reason_to_remove_account_selection_all_options,
48
+ headers=self._get_headers(),
43
49
  )
44
50
  return transform_remove_account_reasons(result)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eetlijst-python
3
- Version: 0.0.7
3
+ Version: 0.0.9
4
4
  Summary: Python rewrite of the Eetlijst GraphQL client
5
5
  Requires-Python: <3.15,>=3.14
6
6
  Description-Content-Type: text/markdown
@@ -76,3 +76,9 @@ Build the package:
76
76
  ```
77
77
  python -m build
78
78
  ```
79
+
80
+ Publish from local:
81
+
82
+ ```
83
+ python -m twine upload dist/*
84
+ ```
@@ -46,6 +46,7 @@ src/eetlijst_py/generated/update_user.py
46
46
  src/eetlijst_py/generated/update_user_in_group.py
47
47
  src/eetlijst_py/generated/update_users_in_group.py
48
48
  src/eetlijst_py/services/__init__.py
49
+ src/eetlijst_py/services/base.py
49
50
  src/eetlijst_py/services/app/__init__.py
50
51
  src/eetlijst_py/services/app/app.py
51
52
  src/eetlijst_py/services/app/transformers.py