Skip to content

Commit 94dd14e

Browse files
committed
chore(trace): Support tasks trace
1 parent 2eef914 commit 94dd14e

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

src/tasks/dto/task.dto.ts

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,57 @@ function getTaskStatus(task: Task): string {
1717
return 'pending';
1818
}
1919

20-
export class TaskMetaDto {
20+
class TaskDtoBase {
2121
id: string;
2222
namespace_id: string;
2323
user_id: string;
2424
priority: number;
2525
function: string;
26-
attrs: Record<string, any> | null;
2726
status: string;
2827
created_at: string;
2928
updated_at: string;
3029
started_at: string | null;
3130
ended_at: string | null;
3231
canceled_at: string | null;
3332

34-
protected static setValue(obj: TaskMetaDto, task: Task) {
33+
protected static setValue(obj: TaskDtoBase, task: Task) {
3534
obj.id = task.id;
3635
obj.namespace_id = task.namespaceId;
3736
obj.user_id = task.userId;
3837
obj.priority = task.priority;
3938
obj.function = task.function;
39+
obj.status = getTaskStatus(task);
40+
obj.created_at = task.createdAt.toISOString();
41+
obj.updated_at = task.updatedAt.toISOString();
42+
obj.started_at = task.startedAt?.toISOString() || null;
43+
obj.ended_at = task.endedAt?.toISOString() || null;
44+
obj.canceled_at = task.canceledAt?.toISOString() || null;
45+
}
46+
}
47+
48+
export class InternalTaskDto extends TaskDtoBase {
49+
payload: Record<string, any> | null;
50+
input: Record<string, any>;
51+
output: Record<string, any> | null;
52+
exception: Record<string, any> | null;
53+
54+
static fromEntity(task: Task): InternalTaskDto {
55+
const dto = new InternalTaskDto();
56+
this.setValue(dto, task);
57+
58+
dto.payload = task.payload;
59+
dto.input = task.input;
60+
dto.output = task.output;
61+
dto.exception = task.exception;
62+
return dto;
63+
}
64+
}
65+
66+
export class TaskMetaDto extends TaskDtoBase {
67+
attrs: Record<string, any> | null;
68+
69+
protected static setValue(obj: TaskMetaDto, task: Task) {
70+
super.setValue(obj, task);
4071

4172
if (task.payload) {
4273
obj.attrs = {};
@@ -46,13 +77,6 @@ export class TaskMetaDto {
4677
}
4778
}
4879
}
49-
50-
obj.status = getTaskStatus(task);
51-
obj.created_at = task.createdAt.toISOString();
52-
obj.updated_at = task.updatedAt.toISOString();
53-
obj.started_at = task.startedAt?.toISOString() || null;
54-
obj.ended_at = task.endedAt?.toISOString() || null;
55-
obj.canceled_at = task.canceledAt?.toISOString() || null;
5680
}
5781

5882
static fromEntity(task: Task): TaskMetaDto {

src/wizard/wizard.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { ResourceType } from 'omniboxd/resources/resources.entity';
1919
import { AttachmentsService } from 'omniboxd/attachments/attachments.service';
2020
import { WizardTaskService } from 'omniboxd/tasks/wizard-task.service';
2121
import { Image, ProcessedImage } from 'omniboxd/wizard/types/wizard.types';
22-
import { TaskDto } from 'omniboxd/tasks/dto/task.dto';
22+
import { InternalTaskDto } from 'omniboxd/tasks/dto/task.dto';
2323

2424
@Injectable()
2525
export class WizardService {
@@ -227,7 +227,7 @@ export class WizardService {
227227
task.output.images = processedImages;
228228
}
229229

230-
async fetchTask(): Promise<TaskDto | null> {
230+
async fetchTask(): Promise<InternalTaskDto | null> {
231231
const rawQuery = `
232232
WITH running_tasks_sub_query AS (SELECT namespace_id,
233233
COUNT(id) AS running_count
@@ -271,7 +271,7 @@ export class WizardService {
271271
namespaceId: record.namespace_id,
272272
});
273273
const newTask = await this.wizardTaskService.taskRepository.save(task);
274-
return TaskDto.fromEntity(newTask);
274+
return InternalTaskDto.fromEntity(newTask);
275275
}
276276

277277
return null;

0 commit comments

Comments
 (0)