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

48 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(): ReadonlyArray<SkillDto> {
return this.skillsService.getMany();
}
@Get("experiences")
@ApiTags("Experience")
@ApiOkResponse({
description: "Returns a list of previous work experiences",
schema: {
items: {
$ref: getSchemaPath(ExperienceDto),
},
},
})
getExperiences(): ReadonlyArray<ExperienceDto> {
return this.experiencesService.getMany();
}
}