feat(pipeline-task): add pipelineTaskEvent api.
This commit is contained in:
@ -2,29 +2,35 @@ import { Resolver, Args, Mutation, Subscription, Query } from '@nestjs/graphql';
|
||||
import { PipelineTask } from './pipeline-task.entity';
|
||||
import { PipelineTasksService } from './pipeline-tasks.service';
|
||||
import { CreatePipelineTaskInput } from './dtos/create-pipeline-task.input';
|
||||
import { PipelineTaskLogMessage } from './models/pipeline-task-log-message.module';
|
||||
import { PipelineTaskLogArgs } from './dtos/pipeline-task-log.args';
|
||||
import { plainToClass } from 'class-transformer';
|
||||
import { PipelineTaskLogger } from './pipeline-task.logger';
|
||||
import { observableToAsyncIterable } from '@graphql-tools/utils';
|
||||
import { PipelineTaskEvent } from './models/pipeline-task-event';
|
||||
|
||||
@Resolver()
|
||||
export class PipelineTasksResolver {
|
||||
constructor(private readonly service: PipelineTasksService) {}
|
||||
constructor(
|
||||
private readonly service: PipelineTasksService,
|
||||
private readonly taskLogger: PipelineTaskLogger,
|
||||
) {}
|
||||
|
||||
@Mutation(() => PipelineTask)
|
||||
async createPipelineTask(@Args('task') taskDto: CreatePipelineTaskInput) {
|
||||
return await this.service.addTask(taskDto);
|
||||
}
|
||||
|
||||
@Subscription(() => PipelineTaskLogMessage, {
|
||||
@Subscription(() => PipelineTaskEvent, {
|
||||
resolve: (value) => {
|
||||
const data = plainToClass(PipelineTaskLogMessage, value);
|
||||
const data = plainToClass(PipelineTaskEvent, value);
|
||||
return data;
|
||||
},
|
||||
})
|
||||
async pipelineTaskLog(@Args() args: PipelineTaskLogArgs) {
|
||||
// const task = await this.service.findTaskById(args.taskId);
|
||||
// const asyncIterator = this.logsService.watchLogs(task);
|
||||
// return asyncIterator;
|
||||
async pipelineTaskEvent(@Args() args: PipelineTaskLogArgs) {
|
||||
const task = await this.service.findTaskById(args.taskId);
|
||||
return observableToAsyncIterable<PipelineTaskEvent>(
|
||||
this.taskLogger.getMessage$(task.id),
|
||||
);
|
||||
}
|
||||
|
||||
@Subscription(() => PipelineTask, {
|
||||
|
Reference in New Issue
Block a user