@zeniai/client-epic-state 5.0.3-betaND1 → 5.0.3-betaND3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,7 @@ export interface TaskPayload {
22
22
  update_time: string | null;
23
23
  company_id?: string;
24
24
  group_assignees?: string[];
25
+ parent_task_id?: string | null;
25
26
  sync_token?: string | null;
26
27
  task_group_ids?: string[] | null;
27
28
  }
@@ -5,43 +5,50 @@ const formatMinutesToFromHHMM_1 = require("../../commonStateTypes/fiscalYearHelp
5
5
  const recurringViewHelper_1 = require("../../view/common/recurringViewHelper");
6
6
  const zeniDayJS_1 = require("../../zeniDayJS");
7
7
  const taskState_1 = require("./taskState");
8
- const mapTaskPayloadToTask = (payload) => ({
9
- id: payload.task_id,
10
- assignees: payload.assignees,
11
- createdBy: payload.created_by,
12
- description: payload.description,
13
- fileIds: payload.file_ids,
14
- isArchived: payload.is_archived,
15
- isDeleted: payload.is_deleted,
16
- name: payload.name,
17
- syncToken: payload.sync_token ?? '',
18
- priority: {
19
- code: (0, taskState_1.toPriorityCodeType)(payload.priority.code),
20
- name: payload.priority.name,
21
- },
22
- status: {
23
- code: (0, taskState_1.toTaskStatusCodeType)(payload.status.code),
24
- name: payload.status.name,
25
- },
26
- tagIds: payload.tags.map((tag) => tag.tag_id),
27
- type: { code: (0, taskState_1.toTaskCodeType)(payload.type.code), name: payload.type.name },
28
- recurringEndDate: payload.recurring_end_date != null
29
- ? (0, zeniDayJS_1.date)(payload.recurring_end_date)
30
- : undefined,
31
- recurringFrequency: payload.recurring_frequency != null
32
- ? (0, recurringViewHelper_1.toRecurringFrequencyStrict)(payload.recurring_frequency.code)
33
- : undefined,
34
- recurringStartDate: payload.recurring_start_date != null
35
- ? (0, zeniDayJS_1.date)(payload.recurring_start_date)
36
- : undefined,
37
- createTime: (0, zeniDayJS_1.date)(payload.create_time),
38
- dueDate: payload.due_date != null ? (0, zeniDayJS_1.date)(payload.due_date) : undefined,
39
- updateTime: payload.update_time != null ? (0, zeniDayJS_1.date)(payload.update_time) : undefined,
40
- companyId: payload.company_id,
41
- taskGroupIds: payload.task_group_ids != null ? payload.task_group_ids : [],
42
- timeSpent: payload.time_spent != null
43
- ? (0, formatMinutesToFromHHMM_1.convertMinutesToHHMM)(payload.time_spent)
44
- : (0, formatMinutesToFromHHMM_1.convertMinutesToHHMM)(0),
45
- groupAssignees: payload.group_assignees ?? [],
46
- });
8
+ const mapTaskPayloadToTask = (payload) => {
9
+ const task = {
10
+ id: payload.task_id,
11
+ assignees: payload.assignees,
12
+ createdBy: payload.created_by,
13
+ description: payload.description,
14
+ fileIds: payload.file_ids,
15
+ isArchived: payload.is_archived,
16
+ isDeleted: payload.is_deleted,
17
+ name: payload.name,
18
+ syncToken: payload.sync_token ?? '',
19
+ priority: {
20
+ code: (0, taskState_1.toPriorityCodeType)(payload.priority.code),
21
+ name: payload.priority.name,
22
+ },
23
+ status: {
24
+ code: (0, taskState_1.toTaskStatusCodeType)(payload.status.code),
25
+ name: payload.status.name,
26
+ },
27
+ tagIds: payload.tags.map((tag) => tag.tag_id),
28
+ type: { code: (0, taskState_1.toTaskCodeType)(payload.type.code), name: payload.type.name },
29
+ recurringEndDate: payload.recurring_end_date != null
30
+ ? (0, zeniDayJS_1.date)(payload.recurring_end_date)
31
+ : undefined,
32
+ recurringFrequency: payload.recurring_frequency != null
33
+ ? (0, recurringViewHelper_1.toRecurringFrequencyStrict)(payload.recurring_frequency.code)
34
+ : undefined,
35
+ recurringStartDate: payload.recurring_start_date != null
36
+ ? (0, zeniDayJS_1.date)(payload.recurring_start_date)
37
+ : undefined,
38
+ createTime: (0, zeniDayJS_1.date)(payload.create_time),
39
+ dueDate: payload.due_date != null ? (0, zeniDayJS_1.date)(payload.due_date) : undefined,
40
+ updateTime: payload.update_time != null ? (0, zeniDayJS_1.date)(payload.update_time) : undefined,
41
+ companyId: payload.company_id,
42
+ taskGroupIds: payload.task_group_ids != null ? payload.task_group_ids : [],
43
+ timeSpent: payload.time_spent != null
44
+ ? (0, formatMinutesToFromHHMM_1.convertMinutesToHHMM)(payload.time_spent)
45
+ : (0, formatMinutesToFromHHMM_1.convertMinutesToHHMM)(0),
46
+ groupAssignees: payload.group_assignees ?? [],
47
+ };
48
+ const parentTaskId = payload.parent_task_id;
49
+ if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
50
+ task.parentTaskId = parentTaskId;
51
+ }
52
+ return task;
53
+ };
47
54
  exports.mapTaskPayloadToTask = mapTaskPayloadToTask;
@@ -21,6 +21,8 @@ export interface Task {
21
21
  type: TaskType;
22
22
  companyId?: ID;
23
23
  dueDate?: ZeniDate;
24
+ /** Present when this task is a subtask of another task. */
25
+ parentTaskId?: ID;
24
26
  recurringEndDate?: ZeniDate;
25
27
  recurringFrequency?: RecurringFrequencyType;
26
28
  recurringStartDate?: ZeniDate;
@@ -2,42 +2,49 @@ import { convertMinutesToHHMM } from '../../commonStateTypes/fiscalYearHelpers/f
2
2
  import { toRecurringFrequencyStrict } from '../../view/common/recurringViewHelper';
3
3
  import { date } from '../../zeniDayJS';
4
4
  import { toPriorityCodeType, toTaskCodeType, toTaskStatusCodeType, } from './taskState';
5
- export const mapTaskPayloadToTask = (payload) => ({
6
- id: payload.task_id,
7
- assignees: payload.assignees,
8
- createdBy: payload.created_by,
9
- description: payload.description,
10
- fileIds: payload.file_ids,
11
- isArchived: payload.is_archived,
12
- isDeleted: payload.is_deleted,
13
- name: payload.name,
14
- syncToken: payload.sync_token ?? '',
15
- priority: {
16
- code: toPriorityCodeType(payload.priority.code),
17
- name: payload.priority.name,
18
- },
19
- status: {
20
- code: toTaskStatusCodeType(payload.status.code),
21
- name: payload.status.name,
22
- },
23
- tagIds: payload.tags.map((tag) => tag.tag_id),
24
- type: { code: toTaskCodeType(payload.type.code), name: payload.type.name },
25
- recurringEndDate: payload.recurring_end_date != null
26
- ? date(payload.recurring_end_date)
27
- : undefined,
28
- recurringFrequency: payload.recurring_frequency != null
29
- ? toRecurringFrequencyStrict(payload.recurring_frequency.code)
30
- : undefined,
31
- recurringStartDate: payload.recurring_start_date != null
32
- ? date(payload.recurring_start_date)
33
- : undefined,
34
- createTime: date(payload.create_time),
35
- dueDate: payload.due_date != null ? date(payload.due_date) : undefined,
36
- updateTime: payload.update_time != null ? date(payload.update_time) : undefined,
37
- companyId: payload.company_id,
38
- taskGroupIds: payload.task_group_ids != null ? payload.task_group_ids : [],
39
- timeSpent: payload.time_spent != null
40
- ? convertMinutesToHHMM(payload.time_spent)
41
- : convertMinutesToHHMM(0),
42
- groupAssignees: payload.group_assignees ?? [],
43
- });
5
+ export const mapTaskPayloadToTask = (payload) => {
6
+ const task = {
7
+ id: payload.task_id,
8
+ assignees: payload.assignees,
9
+ createdBy: payload.created_by,
10
+ description: payload.description,
11
+ fileIds: payload.file_ids,
12
+ isArchived: payload.is_archived,
13
+ isDeleted: payload.is_deleted,
14
+ name: payload.name,
15
+ syncToken: payload.sync_token ?? '',
16
+ priority: {
17
+ code: toPriorityCodeType(payload.priority.code),
18
+ name: payload.priority.name,
19
+ },
20
+ status: {
21
+ code: toTaskStatusCodeType(payload.status.code),
22
+ name: payload.status.name,
23
+ },
24
+ tagIds: payload.tags.map((tag) => tag.tag_id),
25
+ type: { code: toTaskCodeType(payload.type.code), name: payload.type.name },
26
+ recurringEndDate: payload.recurring_end_date != null
27
+ ? date(payload.recurring_end_date)
28
+ : undefined,
29
+ recurringFrequency: payload.recurring_frequency != null
30
+ ? toRecurringFrequencyStrict(payload.recurring_frequency.code)
31
+ : undefined,
32
+ recurringStartDate: payload.recurring_start_date != null
33
+ ? date(payload.recurring_start_date)
34
+ : undefined,
35
+ createTime: date(payload.create_time),
36
+ dueDate: payload.due_date != null ? date(payload.due_date) : undefined,
37
+ updateTime: payload.update_time != null ? date(payload.update_time) : undefined,
38
+ companyId: payload.company_id,
39
+ taskGroupIds: payload.task_group_ids != null ? payload.task_group_ids : [],
40
+ timeSpent: payload.time_spent != null
41
+ ? convertMinutesToHHMM(payload.time_spent)
42
+ : convertMinutesToHHMM(0),
43
+ groupAssignees: payload.group_assignees ?? [],
44
+ };
45
+ const parentTaskId = payload.parent_task_id;
46
+ if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
47
+ task.parentTaskId = parentTaskId;
48
+ }
49
+ return task;
50
+ };
@@ -87,5 +87,9 @@ const toTaskPayload = (state, task) => {
87
87
  task_group_ids: task.taskGroupIds,
88
88
  time_spent: convertHHMMStrToMinutes(task.timeSpent),
89
89
  };
90
+ const parentTaskId = task.parentTaskId;
91
+ if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
92
+ taskPayload.parent_task_id = parentTaskId;
93
+ }
90
94
  return taskPayload;
91
95
  };
@@ -6,9 +6,13 @@ import { updateTaskFromListView, updateTasksListOnUpdateTaskFailure, updateTasks
6
6
  import { getTaskPayload } from './bulkUpdateTaskListEpic';
7
7
  export const updateTaskFromListViewEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(updateTaskFromListView.match), switchMap((action) => {
8
8
  const state = state$.value;
9
- const { task, updates } = action.payload;
9
+ const { task, updates, parentTaskId } = action.payload;
10
10
  const taskId = task.id;
11
- const taskData = getTaskPayload(state, taskId, updates);
11
+ const mergedUpdates = { ...updates };
12
+ if (typeof parentTaskId === 'string' && parentTaskId.length > 0) {
13
+ mergedUpdates.parentTaskId = parentTaskId;
14
+ }
15
+ const taskData = getTaskPayload(state, taskId, mergedUpdates);
12
16
  return zeniAPI
13
17
  .putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks/${taskId}`, { ...taskData })
14
18
  .pipe(mergeMap((response) => {