Skip to content

Commit

Permalink
Merge pull request #16 from 7th-UMC-Hackathon-TeamV/feat/deletemynews
Browse files Browse the repository at this point in the history
feat : 내가 작성한 뉴스글 삭제
  • Loading branch information
dokyung-kang authored Jan 11, 2025
2 parents bf4446e + dcd4adb commit c43ce63
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package banban.springboot.repository;

import banban.springboot.domain.entity.Member;
import banban.springboot.domain.entity.News;
import banban.springboot.domain.entity.TeamGroup;
import banban.springboot.domain.enums.NewsCategories;
Expand All @@ -14,4 +15,5 @@ public interface NewsRepository extends JpaRepository<News,Long> {
List<News> findByIsBreakingNewsTrue(); // 속보 뉴스 조회
List<News> findByNewsCategories(NewsCategories newsCategories); // 긍정/부정 뉴스 조회
Optional<News> findByTeamGroupAndId(TeamGroup teamGroup, Long newsId);
Optional<News> findByTeamGroupAndMemberAndId(TeamGroup teamGroup, Member member, Long newsId);
}
17 changes: 17 additions & 0 deletions src/main/java/banban/springboot/service/NewsService.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,21 @@ public NewsResponseDTO.NewsReadResponseDTO readNews(String groupKey, Long newsId

return NewsResponseDTO.NewsReadResponseDTO.from(news);
}

@Transactional
public Void removeNews(String groupKey, Long memberId, Long newsId) {

TeamGroup teamGroup = groupRepository.findByGroupKey(groupKey)
.orElseThrow(() -> new GeneralException(ErrorStatus.TEAMGROUP_NOT_FOUND));

Member member = memberRepository.findById(memberId)
.orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));

News news = newsRepository.findByTeamGroupAndMemberAndId(teamGroup, member, newsId)
.orElseThrow(() -> new GeneralException(ErrorStatus.NEWS_NOT_EXIST_FOUND));

newsRepository.deleteById(news.getId());

return null;
}
}
16 changes: 16 additions & 0 deletions src/main/java/banban/springboot/web/controller/NewsController.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,20 @@ public ApiResponse<NewsResponseDTO.NewsReadResponseDTO> createNews(@PathVariable
NewsResponseDTO.NewsReadResponseDTO news = newsService.readNews(groupKey, newsId);
return ApiResponse.onSuccess(news);
}

// 내가 작성한 뉴스 삭제
@DeleteMapping("/{groupKey}/users/news/{memberId}/{newsId}")
@Operation(summary = "내가 작성한 뉴스 삭제하기 API",description = "내가 작성한 뉴스 삭제하는 API입니다.")
@ApiResponses({
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200",description = "OK, 성공"),
})
@Parameters({
@Parameter(name = "groupKey", description = "그룹키, path variable 입니다!"),
@Parameter(name = "memberId", description = "사용자의 ID, path variable 입니다!"),
@Parameter(name = "newsId", description = "뉴스글의 ID, path variable 입니다!"),
})
public ApiResponse<Void> deleteNews(@PathVariable("groupKey") String groupKey, @PathVariable("memberId") Long memberId, @PathVariable("newsId") Long newsId) {
newsService.removeNews(groupKey, memberId, newsId);
return ApiResponse.onSuccess(null);
}
}
2 changes: 1 addition & 1 deletion src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ spring:
format_sql: true
use_sql_comments: true
hbm2ddl:
auto: create
auto: update
default_batch_fetch_size: 1000

cloud:
Expand Down

0 comments on commit c43ce63

Please sign in to comment.