TIL

24.03.20

아리단길아조씨 2024. 3. 20. 23:52
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);
  }

이거 해도 잘 모르겠음 사실… 이것저것 참고하면서 따라 쳐보고 맞게 수정도 해보고 하다가 어쩌다 얻어걸려버림

- 팀원 분 가드 관련 문제 트러블슈팅 경청(이해는 못함..)

팀원 분들에 비해서 정말 간단한 작업인데... 나한테는 너무 어렵다.... 알다가도 모르겠고 이해를 못하고 있다 아직까지도...
계속 반복해야 하는걸까? 못하니까 열심히라도 해본다..

'TIL' 카테고리의 다른 글

24.03.22  (0) 2024.03.25
24.03.21  (0) 2024.03.22
24.03.19  (0) 2024.03.20
24.03.18  (0) 2024.03.19
24.03.15  (0) 2024.03.18