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