import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Pipeline } from './pipeline.entity'; import { Repository } from 'typeorm'; import { BaseDbService } from '../commons/services/base-db.service'; import { CreatePipelineInput } from './dtos/create-pipeline.input'; import { UpdatePipelineInput } from './dtos/update-pipeline.input'; import { ListPipelineArgs } from './dtos/list-pipelines.args'; @Injectable() export class PipelinesService extends BaseDbService { readonly uniqueFields: Array = ['branch', 'projectId']; constructor( @InjectRepository(Pipeline) readonly repository: Repository, ) { super(repository); } async list(dto: ListPipelineArgs) { return this.repository.find(dto); } async create(dto: CreatePipelineInput) { await this.isDuplicateEntity(dto); return await this.repository.save(this.repository.create(dto)); } async update(id: string, dto: UpdatePipelineInput) { await this.isDuplicateEntityForUpdate(id, dto); const old = await this.findOne(id); return await this.repository.save(this.repository.merge(old, dto)); } async remove(id: string) { return (await this.repository.softDelete({ id })).affected; } }