43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { ExperienceEntity } from './experience.entity';
|
|
import { ExperienceDto } from './experience.dto';
|
|
import { InjectRepository } from "@nestjs/typeorm";
|
|
import { DeleteResult, Repository } from "typeorm";
|
|
|
|
@Injectable()
|
|
export class ExperienceService {
|
|
constructor(
|
|
@InjectRepository(ExperienceEntity) private readonly experienceRepository: Repository<ExperienceEntity>
|
|
) {}
|
|
|
|
async find(id: string): Promise<ExperienceEntity> {
|
|
return await this.experienceRepository.findOne({
|
|
where: { id: id },
|
|
relations: ['profile', 'skills', 'status']
|
|
})
|
|
}
|
|
|
|
async findAll(): Promise<ExperienceEntity[]> {
|
|
return await this.experienceRepository.find({
|
|
relations: ['profile', 'skills', 'status']
|
|
});
|
|
}
|
|
|
|
async create(experience: ExperienceDto): Promise<ExperienceDto> {
|
|
return await this.experienceRepository.save(experience);
|
|
}
|
|
|
|
async update(
|
|
id: string,
|
|
experienceDto: ExperienceDto
|
|
): Promise<ExperienceDto> {
|
|
const experienceEntity: ExperienceEntity = await this.experienceRepository.findOneBy({ id })
|
|
const experienceEntityUpdated = Object.assign(experienceEntity, experienceDto)
|
|
|
|
return await this.experienceRepository.save(experienceEntityUpdated)
|
|
}
|
|
|
|
async delete(id: string): Promise<DeleteResult> {
|
|
return await this.experienceRepository.delete({ id })
|
|
}
|
|
} |