16
16
17
17
@dataclass
18
18
class TrackerBody (BaseBody ):
19
- """JSON body dataclass for PUT, POST & PATCH requests."""
19
+ """JSON body dataclass for PUT, POST & PATCH requests.
20
+
21
+ Examples:
22
+ >>> TrackerBody(description="What a wonderful tracker description!", project_id=2123132)
23
+ TrackerBody(description='What a wonderful tracker description!', project_id=2123132)
24
+ """
20
25
21
26
description : Optional [str ] = field (default = None )
22
27
duration : Optional [int | timedelta ] = field (default = None )
@@ -89,6 +94,16 @@ class TrackerEndpoint(TogglCachedEndpoint):
89
94
See the [UserEndpoint][toggl_api.UserEndpoint] for _GET_ specific requests.
90
95
91
96
[Official Documentation](https://engineering.toggl.com/docs/api/time_entries)
97
+
98
+ Examples:
99
+ >>> tracker_endpoint = TrackerEndpoint(324525, BasicAuth(...), JSONCache(Path("cache")))
100
+
101
+ >>> body = TrackerBody(description="What a wonderful tracker description!", project_id=2123132)
102
+ >>> tracker = tracker_endpoint.add(body)
103
+ TogglTracker(id=58687689, name="What a wonderful tracker description!", project=2123132, ...)
104
+
105
+ >>> tracker_endpoint.delete(tracker)
106
+ None
92
107
"""
93
108
94
109
TRACKER_ALREADY_STOPPED : Final [int ] = 409
@@ -100,6 +115,11 @@ def edit(self, tracker: TogglTracker | int, body: TrackerBody) -> TogglTracker |
100
115
101
116
[Official Documentation](https://engineering.toggl.com/docs/api/time_entries#put-timeentries)
102
117
118
+ Examples:
119
+ >>> body = TrackerBody(description="What a wonderful tracker description!", project_id=2123132)
120
+ >>> tracker_endpoint.edit(58687684, body)
121
+ TogglTracker(id=58687684, name="What a wonderful tracker description!", project=2123132, ...)
122
+
103
123
Args:
104
124
tracker: Target tracker model or id to edit.
105
125
body: Updated content to add.
@@ -132,6 +152,10 @@ def delete(self, tracker: TogglTracker | int) -> None:
132
152
133
153
[Official Documentation](https://engineering.toggl.com/docs/api/time_entries#delete-timeentries)
134
154
155
+ Examples:
156
+ >>> tracker_endpoint.delete(58687684)
157
+ None
158
+
135
159
Args:
136
160
tracker: Tracker object with ID to delete.
137
161
@@ -165,8 +189,15 @@ def stop(self, tracker: TogglTracker | int) -> TogglTracker | None:
165
189
166
190
[Official Documentation](https://engineering.toggl.com/docs/api/time_entries#patch-stop-timeentry)
167
191
192
+ Examples:
193
+ >>> tracker_endpoint.stop(58687684)
194
+ TogglTracker(id=58687684, name="What a wonderful tracker description!", ...)
195
+
168
196
Args:
169
- tracker: Tracker object with IP to stop.
197
+ tracker: Tracker id to stop. An integer or model.
198
+
199
+ Raises:
200
+ HTTPStatusError: For anything thats not 'ok' or a '409' status code.
170
201
171
202
Returns:
172
203
TogglTracker | None: If the tracker was stopped or if the tracker
@@ -193,6 +224,11 @@ def add(self, body: TrackerBody) -> TogglTracker | None:
193
224
194
225
[Official Documentation](https://engineering.toggl.com/docs/api/time_entries#post-timeentries)
195
226
227
+ Examples:
228
+ >>> body = TrackerBody(description="Tracker description!", project_id=2123132)
229
+ >>> tracker_endpoint.edit(body)
230
+ TogglTracker(id=78895400, name="Tracker description!", project=2123132, ...)
231
+
196
232
Args:
197
233
body: Body of the request. Description must be set. If start date
198
234
is not set it will be set to current time with duration set
0 commit comments