CV/src/app.controller.ts
2023-10-21 14:18:14 +02:00

51 lines
1.5 KiB
TypeScript

import { Controller, Get } from "@nestjs/common";
import { AppService } from "@/app.service";
import { ApiExcludeEndpoint, ApiExtraModels, ApiOkResponse, ApiTags, getSchemaPath } from "@nestjs/swagger";
import { SkillsService } from "@/skills/skills.service";
import { ExperiencesService } from "@/experiences/experiences.service";
import { SkillDto } from "@/skills/skills.types";
import { ExperienceDto } from "@/experiences/experiences.types";
@Controller()
@ApiExtraModels(SkillDto, ExperienceDto)
export class AppController {
constructor(
private readonly appService: AppService,
private readonly skillsService: SkillsService,
private readonly experiencesService: ExperiencesService
) {}
@Get()
@ApiExcludeEndpoint()
sayHello(): string {
return this.appService.sayHello();
}
@Get("skills")
@ApiTags("Skills")
@ApiOkResponse({
description: "Returns a list of all skills",
schema: {
items: {
$ref: getSchemaPath(SkillDto),
},
},
})
getSkills(): readonly SkillDto[] {
return this.skillsService.getMany();
}
@Get("experiences")
@ApiTags("Experience")
@ApiOkResponse({
description: "Returns a list of previous work experiences",
schema: {
items: {
$ref: getSchemaPath(ExperienceDto),
},
},
})
getExperiences(): readonly ExperienceDto[] {
return this.experiencesService.getMany();
}
}