48 lines
1.5 KiB
TypeScript
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();
|
|
}
|
|
}
|