Skip to content

Commit 6278085

Browse files
committed
Add ReportTimeEntries repository & ReportTimeEntry
1 parent 4a9fa6f commit 6278085

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

toggl_python/entities.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,21 @@ class TimeEntry(BaseEntity):
7474
duronly: Optional[bool] = None
7575

7676

77+
class ReportTimeEntry(BaseEntity):
78+
wid: Optional[int] = None
79+
pid: Optional[int] = None
80+
tid: Optional[int] = None
81+
uid: Optional[int] = None
82+
description: Optional[str] = None
83+
billable: Optional[int] = False
84+
is_billable: Optional[bool] = False
85+
cur: Optional[str] = False
86+
start: Union[datetime, Callable] = datetime.now
87+
end: Union[datetime, Callable] = None
88+
dur: int
89+
tags: List[str] = []
90+
91+
7792
class User(BaseEntity):
7893
api_token: Optional[str] = None
7994
default_wid: Optional[int] = None

toggl_python/repository.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
User,
1717
Workspace,
1818
WorkspaceUser,
19+
ReportTimeEntry,
1920
)
2021
from .exceptions import MethodNotAllowed, NotSupported
2122

@@ -96,7 +97,7 @@ def _retrieve(self, _url, entity_class, data_key: str = "data", **kwargs):
9697
data_key = data_key or self.DATA_CONTAINER.get('retrieve', None)
9798
if data_key:
9899
data = data[data_key]
99-
return entity_class(**data)
100+
return entity_class(**data)
100101

101102
def retrieve(self, id: int = None, **kwargs):
102103
full_url = self.BASE_URL.join(self.DETAIL_URL.format(id=id))
@@ -176,6 +177,14 @@ class TimeEntries(BaseRepository):
176177
ENTITY_CLASS = TimeEntry
177178

178179

180+
class ReportTimeEntries(BaseRepository):
181+
BASE_URL: httpx.URL = httpx.URL("https://toggl.com/reports/api/v2/")
182+
ADDITIONAL_PARAMS = {"list": {"user_agent": "toggl_python"}}
183+
DATA_CONTAINER = {"list": "data"}
184+
LIST_URL = "details"
185+
ENTITY_CLASS = ReportTimeEntry
186+
187+
179188
class Users(BaseRepository):
180189
EXCLUDED_METHODS = ("list", "create", "update", "partial_update")
181190
LIST_URL = "users"

0 commit comments

Comments
 (0)