Skip to content

Commit e39ac98

Browse files
Merge pull request #2 from elbryan/team-worklogs
Added team worklogs.
2 parents b7ea92b + 7f8dd38 commit e39ac98

File tree

4 files changed

+41
-26
lines changed

4 files changed

+41
-26
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ tempo = client.Tempo(
2525
auth_token="<your_tempo_api_key>",
2626
base_url="https://api.tempo.io/core/3")
2727
28-
worklogs = tempo.get_worklogs(
28+
worklogs = tempo.get_all_worklogs(
2929
date_from="2019-11-10",
3030
date_to="2019-11-11"
3131
)
@@ -34,6 +34,8 @@ for i in worklogs:
3434
print(i)
3535
```
3636

37+
There are also functions to retrieve `user` and `team`-specific worklogs.
38+
3739

3840
## Contributing
3941

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="tempo-api-python-client",
8-
version="0.0.1",
8+
version="0.0.2",
99
author="Stanislav Ulrych",
1010
author_email="[email protected]",
1111
description="Python bindings for Tempo (https://tempo-io.github.io/tempo-api-docs/)",
@@ -19,4 +19,4 @@
1919
"Operating System :: OS Independent",
2020
],
2121
python_requires='>=3.6',
22-
)
22+
)

tempoapiclient/client.py

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -112,28 +112,8 @@ def get_work_attributes(self):
112112
"""
113113
return { x["key"]: x for x in self._list("/work-attributes") }
114114

115-
116-
def get_worklogs(self, date_from, date_to, user=None, add_work_attributes=False):
117-
"""
118-
Returns worklogs inside ```date_from``` and ```date_to```,
119-
for particular ```user```, adding work attributes if ```add_work_attributes```.
120-
"""
121-
122-
work_attributes = None
123-
date_from = self._resolve_date(date_from).isoformat()
124-
date_to = self._resolve_date(date_to).isoformat()
125-
url = "/worklogs"
126-
if user is not None:
127-
url += "/user/{}".format(user)
128-
params = { "from": date_from, "to": date_to, "limit": self.MAX_RESULTS }
129-
l = self._list(url, **params)
130-
131-
# restructure workattributes
132-
133-
if not self.work_attributes:
134-
self.work_attributes = self.get_work_attributes()
135-
136-
for worklog in l:
115+
def _process_worklogs(self, worklogs):
116+
for worklog in worklogs:
137117
attributes = (worklog.get("attributes") or {}).get("values") or {}
138118
resolved_attributes = {}
139119

@@ -145,6 +125,39 @@ def get_worklogs(self, date_from, date_to, user=None, add_work_attributes=False)
145125
worklog["attributes"] = resolved_attributes
146126
yield worklog
147127

128+
def get_all_worklogs(self, date_from, date_to):
129+
date_from = self._resolve_date(date_from).isoformat()
130+
date_to = self._resolve_date(date_to).isoformat()
131+
url = f"/worklogs"
132+
params = { "from": date_from, "to": date_to, "limit": self.MAX_RESULTS }
133+
l = self._list(url, **params)
134+
return self._process_worklogs(l)
135+
136+
def get_user_worklogs(self, date_from, date_to, userid):
137+
"""
138+
Returns worklogs inside ```date_from``` and ```date_to```,
139+
for particular ```user```.
140+
"""
141+
142+
date_from = self._resolve_date(date_from).isoformat()
143+
date_to = self._resolve_date(date_to).isoformat()
144+
url = f"/worklogs/user/{userid}"
145+
params = { "from": date_from, "to": date_to, "limit": self.MAX_RESULTS }
146+
l = self._list(url, **params)
147+
return self._process_worklogs(l)
148+
149+
def get_team_worklogs(self, date_from, date_to, teamid):
150+
"""
151+
Returns worklogs inside ```date_from``` and ```date_to```,
152+
for particular ```team```.
153+
"""
154+
155+
date_from = self._resolve_date(date_from).isoformat()
156+
date_to = self._resolve_date(date_to).isoformat()
157+
url = f"/worklogs/team/{teamid}"
158+
params = { "from": date_from, "to": date_to, "limit": self.MAX_RESULTS }
159+
l = self._list(url, **params)
160+
return self._process_worklogs(l)
148161

149162
def get_user_schedule(self, date_from, date_to, user=None):
150163
"""
@@ -157,4 +170,4 @@ def get_user_schedule(self, date_from, date_to, user=None):
157170
if user is not None:
158171
url += "/{}".format(user)
159172
params = { "from": date_from, "to": date_to, "limit": self.MAX_RESULTS }
160-
return list(self._list(url, **params))
173+
return list(self._list(url, **params))

0 commit comments

Comments
 (0)