Skip to content

Commit 104dd2d

Browse files
committed
added ReportTimeEntriesList wrapper
1 parent 588ffc4 commit 104dd2d

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

toggl_python/repository.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
ReportTimeEntry,
2020
)
2121
from .exceptions import MethodNotAllowed, NotSupported
22-
from .response import ListResponse
22+
from .response import ReportTimeEntriesList
2323

2424

2525
class BaseRepository(Api):
@@ -30,6 +30,7 @@ class BaseRepository(Api):
3030
EXCLUDED_METHODS = ()
3131
ADDITIONAL_PARAMS = {}
3232
DATA_CONTAINER = {}
33+
LIST_RESPONSE = None
3334

3435
def __init__(self, base_url=None, auth=None):
3536
super().__init__(base_url=base_url, auth=auth)
@@ -118,7 +119,9 @@ def _list(self, _url, entity_class, data_key: str = None, **kwargs):
118119
data = data[data_key]
119120
if data:
120121
value = [entity_class(**entity) for entity in data]
121-
return ListResponse(value, response_body)
122+
if self.LIST_RESPONSE:
123+
value = self.LIST_RESPONSE(value, response_body)
124+
return value
122125

123126
def list(self, **kwargs):
124127
if "list" in self.EXCLUDED_METHODS:
@@ -189,6 +192,7 @@ class ReportTimeEntries(BaseRepository):
189192
DATA_CONTAINER = {"list": "data"}
190193
LIST_URL = "details"
191194
ENTITY_CLASS = ReportTimeEntry
195+
LIST_RESPONSE = ReportTimeEntriesList
192196

193197

194198
class Users(BaseRepository):

toggl_python/response.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
class ListResponse(list):
2+
response_parameters = ()
3+
24
def __init__(self, value, response_body):
35
super(ListResponse, self).__init__(value)
46

5-
response_parameters = (
6-
"total_count",
7-
"per_page",
8-
"total_grand",
9-
"total_billable",
10-
"total_currencies",
11-
)
12-
13-
for parameter in response_parameters:
7+
for parameter in self.response_parameters:
148
if parameter in response_body:
159
setattr(self, parameter, response_body[parameter])
10+
11+
12+
class ReportTimeEntriesList(ListResponse):
13+
response_parameters = (
14+
"total_count",
15+
"per_page",
16+
"total_grand",
17+
"total_billable",
18+
"total_currencies",
19+
)

0 commit comments

Comments
 (0)