Coding History

2024 07. 03 ArticleManager 공부

BlackBirdIT 2024. 7. 3. 20:50

ArticleManager Delete 작성자만 지울 수 있도록 하는 걸 구현중이다.

private void doDelete() {

        System.out.println("==게시글 삭제==");

        int id = Integer.parseInt(cmd.split(" ")[2]);

        Article foundArticle = getArticleById(id);

        if (foundArticle == null) {
            System.out.println("해당 게시글은 없습니다");
            return;
        }
        if(!isLogined()){
            System.out.println("삭제 권한이 없습니다.");
        }else if(currentUser.getName().equals(foundArticle.getAuthor())){
            articles.remove(foundArticle);
            System.out.println(id + "번 게시글이 삭제되었습니다");
        }else {
            System.out.println("삭제 권한이 없습니다.");
        }
    }

이렇게 구현했는데 잘 된다. 근데 다른 문제를 발견했다. 테스트용 데이터로 한번 더 해보려고 구현해 둔 로그아웃을 해서 다시 로그인 하려고 했는데

명령어) member logout
로그인 하지 않음.
명령어) member login
이미 로그인 되어있음.
명령어) 

이렇게 뜬다. 그래서 다시 살펴 보려고 한다.

private void doLogout() {
    if (isLogined()) {
        System.out.println("로그아웃.");
        currentUser = null;
     else {
        System.out.println("로그인 하지 않음.");
        }
    }

아 그냥 내가 실수로 앞에 !를 붙혀서 코드가 이상해진거였다. !만 빼니까 해결.

이제는 수정을 권한 있는 사람만 할 수 있게 하면 된다. 뭐 delete랑 비슷하게 하면 되지 않을까?

private void doModify() {
        System.out.println("==게시글 수정==");

        int id = Integer.parseInt(cmd.split(" ")[2]);

        Article foundArticle = getArticleById(id);

        if (foundArticle == null) {
            System.out.println("해당 게시글은 없습니다");
            return;
        }

        if(!isLogined()){
            System.out.println("수정 권한이 없습니다.");
        }else if(currentUser.getName().equals(foundArticle.getAuthor())){
            System.out.println("기존 제목 : " + foundArticle.getTitle());
            System.out.println("기존 내용 : " + foundArticle.getBody());
            System.out.print("새 제목 : ");
            String newTitle = sc.nextLine();
            System.out.print("새 내용 : ");
            String newBody = sc.nextLine();

            foundArticle.setTitle(newTitle);
            foundArticle.setBody(newBody);
            foundArticle.setUpdateDate(Util.getNow());

            System.out.println(id + "번 게시글이 수정되었습니다.");
        }else {
            System.out.println("수정 권한이 없습니다.");
        }
    }

오케이 금방 끝냈다.

오늘은 여기까지!