Skip to content

Commit 81de010

Browse files
authored
Created helper function in linear (#329)
* add helper function * used the created function
1 parent 5a904fe commit 81de010

File tree

1 file changed

+19
-36
lines changed

1 file changed

+19
-36
lines changed

ingestr/src/linear/__init__.py

Lines changed: 19 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,21 @@
55

66
from .helpers import _normalize_issue, _normalize_team, _paginate
77

8+
9+
def _get_date_range(updated_at, start_date):
10+
"""Extract current start and end dates from incremental state."""
11+
if updated_at.last_value:
12+
current_start_date = pendulum.parse(updated_at.last_value)
13+
else:
14+
current_start_date = pendulum.parse(start_date)
15+
16+
if updated_at.end_value:
17+
current_end_date = pendulum.parse(updated_at.end_value)
18+
else:
19+
current_end_date = pendulum.now(tz="UTC")
20+
21+
return current_start_date, current_end_date
22+
823
ISSUES_QUERY = """
924
query Issues($cursor: String) {
1025
issues(first: 50, after: $cursor) {
@@ -102,15 +117,7 @@ def issues(
102117
range_end="closed",
103118
),
104119
) -> Iterator[Dict[str, Any]]:
105-
if updated_at.last_value:
106-
current_start_date = pendulum.parse(updated_at.last_value)
107-
else:
108-
current_start_date = pendulum.parse(start_date)
109-
110-
if updated_at.end_value:
111-
current_end_date = pendulum.parse(updated_at.end_value)
112-
else:
113-
current_end_date = pendulum.now(tz="UTC")
120+
current_start_date, current_end_date = _get_date_range(updated_at, start_date)
114121

115122
for item in _paginate(api_key, ISSUES_QUERY, "issues"):
116123
if pendulum.parse(item["updatedAt"]) >= current_start_date:
@@ -127,15 +134,7 @@ def projects(
127134
range_end="closed",
128135
),
129136
) -> Iterator[Dict[str, Any]]:
130-
if updated_at.last_value:
131-
current_start_date = pendulum.parse(updated_at.last_value)
132-
else:
133-
current_start_date = pendulum.parse(start_date)
134-
135-
if updated_at.end_value:
136-
current_end_date = pendulum.parse(updated_at.end_value)
137-
else:
138-
current_end_date = pendulum.now(tz="UTC")
137+
current_start_date, current_end_date = _get_date_range(updated_at, start_date)
139138

140139
for item in _paginate(api_key, PROJECTS_QUERY, "projects"):
141140
if pendulum.parse(item["updatedAt"]) >= current_start_date:
@@ -153,17 +152,9 @@ def teams(
153152
),
154153
) -> Iterator[Dict[str, Any]]:
155154
print(start_date)
156-
if updated_at.last_value:
157-
current_start_date = pendulum.parse(updated_at.last_value)
158-
else:
159-
current_start_date = pendulum.parse(start_date)
155+
current_start_date, current_end_date = _get_date_range(updated_at, start_date)
160156
print(current_start_date)
161157

162-
if updated_at.end_value:
163-
current_end_date = pendulum.parse(updated_at.end_value)
164-
else:
165-
current_end_date = pendulum.now(tz="UTC")
166-
167158
for item in _paginate(api_key, TEAMS_QUERY, "teams"):
168159
if pendulum.parse(item["updatedAt"]) >= current_start_date:
169160
if pendulum.parse(item["updatedAt"]) <= current_end_date:
@@ -179,15 +170,7 @@ def users(
179170
range_end="closed",
180171
),
181172
) -> Iterator[Dict[str, Any]]:
182-
if updated_at.last_value:
183-
current_start_date = pendulum.parse(updated_at.last_value)
184-
else:
185-
current_start_date = pendulum.parse(start_date)
186-
187-
if updated_at.end_value:
188-
current_end_date = pendulum.parse(updated_at.end_value)
189-
else:
190-
current_end_date = pendulum.now(tz="UTC")
173+
current_start_date, current_end_date = _get_date_range(updated_at, start_date)
191174

192175
for item in _paginate(api_key, USERS_QUERY, "users"):
193176
if pendulum.parse(item["updatedAt"]) >= current_start_date:

0 commit comments

Comments
 (0)