# 2V Modules - code review task
## Требования к решению
Решение необходимо оформить в виде ссылки на Google Doc.
Предоставление решения в правильном виде — один из критериев оценки.
## Условие
Разработчика попросили реализовать создание и получение проектов и елементов этих проектов.
Разработчик с задачей справился, ниже предоставлен его код.
## Задание:
Проведите максимально подробный Code Review. Необходимо написать,
с чем вы не согласны и почему.
Исправьте обозначенные ошибки, предоставив свой вариант кода.
```js=
import { Body, Controller, Get, Param, Post } from '@nestjs/common';
export class AppController {
@Post('projects/create')
async createProject(@Body() data: any) {
const project = await db(/* sql */);
return {
data: { project },
};
}
@Post('items/create')
async createItem(@Body() data: any) {
const item = await db(/* sql */);
return {
data: { item },
};
}
@Get('projects/:id')
async gertProject(@Param('id') id: string) {
const project = await this.getProjectById(id);
return {
data: { project },
};
}
@Get('items/:id')
async getItem(@Param('id') id: string) {
const item = await this.getItemById(id);
return {
data: { item },
};
}
@Get('project/:projectId/items/:itemId')
async getProjectItem(@Param('projectId') projectId: string, @Param('id') itemId: string) {
const item = await this.getItemById(itemId);
const project = await this.getProjectById(projectId);
return {
data: {
item,
project,
},
};
}
private getProjectById(id: string) {
return db(/* sql */);
}
private getItemById(id: string) {
return db(/* sql */);
}
}
```