728x90
4조 트롤로 프로젝트 3일차
나의 오늘 작업
- 트롤로 프로젝트 List 생성 service 부분 수정
async createList(createListDto: CreateListDto): Promise<List> {
const { title } = createListDto;
const newList = await this.ListRepository.create({
title,
});
await this.ListRepository.save(createListDto);
return newList;
}
단순하게 await this.ListRepository.save(createListDto)를 반환해줬을 때 인섬니아로 확인했을 때 listId까지 함께 나와서 불편했음. 게시물들을 참고하여 코드를 수정하고 인섬니아로 확인을 해보니 깔끔하게 title만 나오는 것을 확인할 수 있었음.
- UpdateListDto 파일 생성
import { IsNotEmpty, IsNumber, IsString } from 'class-validator';
export class updatedListDto {
@IsString()
@IsNotEmpty({ message: '변경할 제목을 입력해주세요.' })
title: string;
@IsNumber()
listId?: number;
}
- 트롤로 프로젝트 List 삭제 부분 구현
// 컬럼 삭제하기
async deleteList(listId: number) {
const list = await this.ListRepository.findOne({
where: { listId },
});
if (!list) {
throw new NotFoundException(`해당하는 컬럼이 존재하지 않습니다.`);
}
const deleteList = await this.ListRepository.delete(listId);
if (deleteList) {
return {
status: HttpStatus.BAD_REQUEST,
message: '컬럼이 정상적으로 삭제되지 않았습니다.',
}
}
return deleteList;
}
// 컨트롤러
// 컬럼 삭제 하기
@Delete('/list/:boardId/list/:listId')
deleteList(@Param('listId') listId: number) {
return this.listService.deleteList(listId);
}
인섬니아로 확인을 해보니 내가 원하는 것과 반대로 작동을 했음... 그래서 그냥 코드를 바꿔버림
if (deleteList) {
return {
status: HttpStatus.OK,
message: `${listId}번 컬럼이 정상적으로 삭제되었습니다.`,
result: deleteList,
};
}
- List title 이름 변경하기
async changeListTitle(updateListDto: UpdatedListDto, listId: number) {
// 찾고 싶은 게시물을 listId를 통해서 찾아준다.
const list = await this.ListRepository.findOne({
where: { listId },
});
if (!list) {
throw new NotFoundException(`해당하는 컬럼이 존재하지 않습니다.`);
}
// 레포지토리에 업데이트를 해줘야함
await this.ListRepository.update({ listId }, updateListDto);
// list의 타이틀을 변경된 것을 DB에 넣어야함
const changedListTitle = await this.ListRepository.findOne({
where: {
listId,
},
});
if (changedListTitle) {
return {
status: HttpStatus.OK,
message: `${listId}번 컬럼 제목이 정상적으로 변경되었습니다.`,
result: changedListTitle,
};
}
// return changedListTitle;
}
// 컨트롤러
@Patch('/list/:boardId/list/:listId')
changeListTile(
@Body() title: UpdatedListDto,
@Param('listId') listId: number,
) {
return this.listService.changeListTitle(title, listId);
}
이거 해도 잘 모르겠음 사실… 이것저것 참고하면서 따라 쳐보고 맞게 수정도 해보고 하다가 어쩌다 얻어걸려버림
- 팀원 분 가드 관련 문제 트러블슈팅 경청(이해는 못함..)
팀원 분들에 비해서 정말 간단한 작업인데... 나한테는 너무 어렵다.... 알다가도 모르겠고 이해를 못하고 있다 아직까지도...
계속 반복해야 하는걸까? 못하니까 열심히라도 해본다..