Skip to content

Commit

Permalink
Merge pull request #81 from Travalue/develop
Browse files Browse the repository at this point in the history
zz
  • Loading branch information
dev-Crayon authored Jul 19, 2023
2 parents eb2bf51 + 38821ed commit debdd90
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.deploy.Travalue.exception.SuccessCode;
import com.deploy.Travalue.external.client.aws.S3Service;
import com.deploy.Travalue.travel.controller.dto.request.TravellerRequestDto;
import com.deploy.Travalue.travel.controller.dto.response.LikeCountResponseDto;
import com.deploy.Travalue.travel.domain.TravelContentInfoVO;
import com.deploy.Travalue.travel.service.TravelService;
import com.deploy.Travalue.travel.service.dto.response.HotTravellersResponseDto;
Expand Down Expand Up @@ -135,16 +136,14 @@ public ApiResponse<List<HotTravellersResponseDto>> getHotTravellers() {
@Auth
@ApiOperation("게시물 좋아요 API")
@PostMapping("/{postId}/like")
public ApiResponse travelLike(@UserId Long userId, @PathVariable Long postId) {
travelService.travelLike(userId, postId);
return ApiResponse.success(SuccessCode.LIKE_TRAVEL_SUCCESS);
public ApiResponse<LikeCountResponseDto> travelLike(@UserId Long userId, @PathVariable Long postId) {
return ApiResponse.success(SuccessCode.LIKE_TRAVEL_SUCCESS, travelService.travelLike(userId, postId));
}

@Auth
@ApiOperation("게시물 좋아요 취소 API")
@DeleteMapping("{postId}/unlike")
public ApiResponse travelUnlike(@UserId Long userId, @PathVariable Long postId) {
travelService.travelUnlike(userId, postId);
return ApiResponse.success(SuccessCode.UNLIKE_TRAVEL_SUCCESS);
public ApiResponse<LikeCountResponseDto> travelUnlike(@UserId Long userId, @PathVariable Long postId) {
return ApiResponse.success(SuccessCode.UNLIKE_TRAVEL_SUCCESS, travelService.travelUnlike(userId, postId));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.deploy.Travalue.travel.controller.dto.response;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class LikeCountResponseDto {

private Long likeCount;

public static LikeCountResponseDto of(Long likeCount) {
return new LikeCountResponseDto(likeCount);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ public interface LikeTravelRepository extends JpaRepository<LikeTravel, Long>, L
int countLikeTravelByTravelId(Long travelId);

boolean existsByTravelIdAndUserId(Long travelId, Long userId);

Long countByTravelId(Long travelId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.deploy.Travalue.exception.model.UnauthorizedException;
import com.deploy.Travalue.external.client.aws.S3Service;
import com.deploy.Travalue.travel.controller.dto.request.TravellerRequestDto;
import com.deploy.Travalue.travel.controller.dto.response.LikeCountResponseDto;
import com.deploy.Travalue.travel.domain.*;
import com.deploy.Travalue.travel.infrastructure.*;
import com.deploy.Travalue.travel.service.dto.response.*;
Expand Down Expand Up @@ -337,7 +338,7 @@ public List<HotTravellersResponseDto> getHotTravellers() {
}

@Transactional
public void travelLike(Long userId, Long postId) {
public LikeCountResponseDto travelLike(Long userId, Long postId) {
final User user = userRepository.findById(userId)
.orElseThrow(() -> new NotFoundException("존재하지 않는 유저입니다."));

Expand All @@ -349,10 +350,13 @@ public void travelLike(Long userId, Long postId) {
}

likeTravelRepository.save(LikeTravel.newInstance(user, travel));
Long likeCount = likeTravelRepository.countByTravelId(travel.getId());

return LikeCountResponseDto.of(likeCount);
}

@Transactional
public void travelUnlike(Long userId, Long postId) {
public LikeCountResponseDto travelUnlike(Long userId, Long postId) {
final User user = userRepository.findById(userId)
.orElseThrow(() -> new NotFoundException("존재하지 않는 유저입니다."));

Expand All @@ -363,5 +367,8 @@ public void travelUnlike(Long userId, Long postId) {
.orElseThrow(() -> new NotFoundException("좋아요를 누른 적이 없는 게시글입니다."));

likeTravelRepository.deleteById(likeTravel.getId());
Long likeCount = likeTravelRepository.countByTravelId(travel.getId());

return LikeCountResponseDto.of(likeCount);
}
}

0 comments on commit debdd90

Please sign in to comment.