Skip to content

Commit 26376b8

Browse files
Merge pull request #14 from Rudy-Tmc/fix-create-and-update-plan-functions
Fixed create & update plans
2 parents 9426a1c + 22fd94a commit 26376b8

File tree

1 file changed

+44
-26
lines changed

1 file changed

+44
-26
lines changed

tempoapiclient/client_v4.py

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ def post(self, path, data=None, params=None, headers=None, not_json_response=Non
6161
path_absolute = super().url_joiner(self._base_url, path)
6262
return super().post(path_absolute, data=data, params=params, headers=headers, trailing=trailing)
6363

64+
def put(self, path, data=None, params=None, headers=None, not_json_response=None, trailing=None):
65+
path_absolute = super().url_joiner(self._base_url, path)
66+
return super().put(path_absolute, data=data, params=params, headers=headers, trailing=trailing)
67+
6468
def delete(self, path, data=None, params=None, headers=None, not_json_response=None, trailing=None):
6569
path_absolute = super().url_joiner(self._base_url, path)
6670
return super().delete(path_absolute, headers=headers, trailing=trailing)
@@ -183,16 +187,16 @@ def get_plans(self, dateFrom=None, dateTo=None, id=None, accountId=None, account
183187
return self.post(url, data=data)
184188
return
185189

186-
def get_plan(self,id):
190+
def get_plan(self, id):
187191
return self.get_plans(id=id)
188192

189-
def get_plan_for_user(self,accountId, plannedTimeBreakdown=None, dateFrom=None, dateTo=None, updatedFrom=None):
193+
def get_plan_for_user(self, accountId, plannedTimeBreakdown=None, dateFrom=None, dateTo=None, updatedFrom=None):
190194
return self.get_plans(accountId=accountId, plannedTimeBreakdown=plannedTimeBreakdown, dateFrom=dateFrom, dateTo=dateTo, updatedFrom=updatedFrom)
191195

192-
def get_plan_for_resource(self,genericResourceId, plannedTimeBreakdown=None, dateFrom=None, dateTo=None, updatedFrom=None):
196+
def get_plan_for_resource(self, genericResourceId, plannedTimeBreakdown=None, dateFrom=None, dateTo=None, updatedFrom=None):
193197
return self.get_plans(genericResourceId=genericResourceId, plannedTimeBreakdown=plannedTimeBreakdown, dateFrom=dateFrom, dateTo=dateTo, updatedFrom=updatedFrom)
194198

195-
def search_plans(self,dateFrom, dateTo, accountIds=None, assigneeTypes=None, genericResourceIds=None, planIds=None, planItemIds=None, planItemTypes=None, plannedTimeBreakdown=None, updatedFrom=None):
199+
def search_plans(self, dateFrom, dateTo, accountIds=None, assigneeTypes=None, genericResourceIds=None, planIds=None, planItemIds=None, planItemTypes=None, plannedTimeBreakdown=None, updatedFrom=None):
196200
return self.get_plans(dateFrom=dateFrom, dateTo=dateTo, accountIds=accountIds, assigneeTypes=assigneeTypes, genericResourceIds=genericResourceIds, planIds=planIds, planItemIds=planItemIds, planItemTypes=planItemTypes, plannedTimeBreakdown=plannedTimeBreakdown, updatedFrom=updatedFrom)
197201

198202
def create_plan(self, assigneeId, assigneeType, startDate, endDate, planItemId, planItemType, plannedSecondsPerDay, description=None, includeNonWorkingDays=None, planApprovalReviewerId=None, planApprovalStatus=None, recurrenceEndDate=None, rule=None):
@@ -211,30 +215,37 @@ def create_plan(self, assigneeId, assigneeType, startDate, endDate, planItemId,
211215
:param recurrenceEndDate:
212216
:param rule:
213217
"""
214-
params = {
218+
data = {
215219
"assigneeId": assigneeId,
216-
"assigneeType": assigneeType,
220+
"assigneeType": assigneeType, # Enum: "USER" "GENERIC"
217221
"startDate": self._resolve_date(startDate).isoformat(),
218222
"endDate": self._resolve_date(endDate).isoformat(),
219223
"planItemId": planItemId,
220-
"planItemType": planItemType,
224+
"planItemType": planItemType, # Enum: "ISSUE" "PROJECT"
221225
"plannedSecondsPerDay": plannedSecondsPerDay
222226
}
223227
if description:
224-
params['description'] = description
228+
data['description'] = description
225229
if includeNonWorkingDays:
226-
params['includeNonWorkingDays'] = includeNonWorkingDays
230+
data['includeNonWorkingDays'] = includeNonWorkingDays
227231
if planApprovalReviewerId:
228-
params['planApprovalReviewerId'] = planApprovalReviewerId
229-
if planApprovalStatus:
230-
params['accounplanApprovalStatustIds'] = planApprovalStatus
232+
if not planApprovalStatus:
233+
data['planApproval'] = {
234+
"reviewerId": planApprovalReviewerId,
235+
"status": "REQUESTED"
236+
}
237+
else:
238+
data['planApproval'] = {
239+
"reviewerId": planApprovalReviewerId,
240+
"status": planApprovalStatus # Enum: "APPROVED" "REJECTED" "REQUESTED"
241+
}
231242
if recurrenceEndDate:
232-
params['recurrenceEndDate'] = recurrenceEndDate
243+
data['recurrenceEndDate'] = recurrenceEndDate
233244
if rule:
234-
params['rule'] = rule
245+
data['rule'] = rule # Enum: "NEVER" "WEEKLY" "BI_WEEKLY" "MONTHLY"
235246

236247
url = "/plans"
237-
return self.post(url, params=params)
248+
return self.post(url, data=data)
238249

239250
def update_plan(self, id, assigneeId, assigneeType, startDate, endDate, planItemId, planItemType, plannedSecondsPerDay, description=None, includeNonWorkingDays=None, planApprovalReviewerId=None, planApprovalStatus=None, recurrenceEndDate=None, rule=None):
240251
"""
@@ -253,30 +264,37 @@ def update_plan(self, id, assigneeId, assigneeType, startDate, endDate, planItem
253264
:param recurrenceEndDate:
254265
:param rule:
255266
"""
256-
params = {
267+
data = {
257268
"assigneeId": assigneeId,
258-
"assigneeType": assigneeType,
269+
"assigneeType": assigneeType, # Enum: "USER" "GENERIC"
259270
"startDate": self._resolve_date(startDate).isoformat(),
260271
"endDate": self._resolve_date(endDate).isoformat(),
261272
"planItemId": planItemId,
262-
"planItemType": planItemType,
273+
"planItemType": planItemType, # Enum: "ISSUE" "PROJECT"
263274
"plannedSecondsPerDay": plannedSecondsPerDay
264275
}
265276
if description:
266-
params['description'] = description
277+
data['description'] = description
267278
if includeNonWorkingDays:
268-
params['includeNonWorkingDays'] = includeNonWorkingDays
279+
data['includeNonWorkingDays'] = includeNonWorkingDays
269280
if planApprovalReviewerId:
270-
params['planApprovalReviewerId'] = planApprovalReviewerId
271-
if planApprovalStatus:
272-
params['accounplanApprovalStatustIds'] = planApprovalStatus
281+
if not planApprovalStatus:
282+
data['planApproval'] = {
283+
"reviewerId": planApprovalReviewerId,
284+
"status": "REQUESTED"
285+
}
286+
else:
287+
data['planApproval'] = {
288+
"reviewerId": planApprovalReviewerId,
289+
"status": planApprovalStatus # Enum: "APPROVED" "REJECTED" "REQUESTED"
290+
}
273291
if recurrenceEndDate:
274-
params['recurrenceEndDate'] = recurrenceEndDate
292+
data['recurrenceEndDate'] = recurrenceEndDate
275293
if rule:
276-
params['rule'] = rule
294+
data['rule'] = rule # Enum: "NEVER" "WEEKLY" "BI_WEEKLY" "MONTHLY"
277295

278296
url = f"/plans/{id}"
279-
return self.put(url, params=params)
297+
return self.put(url, data=data)
280298

281299
def delete_plan(self, id):
282300
url = f"/plans/{id}"

0 commit comments

Comments
 (0)