Files
noahspan-portfolio/api/src/experience/experience.service.ts
noahspannbauer e5219761c2
Some checks failed
Main / changes (push) Successful in 37s
Main / deploy (push) Has been cancelled
Main / build-and-test (push) Has been cancelled
adding skills to experiences, profiles, and projects
2026-07-20 19:28:37 -05:00

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 })
}
}