Skip to content

Commit

Permalink
Merge pull request #76 from Travalue/develop
Browse files Browse the repository at this point in the history
release
  • Loading branch information
dev-Crayon authored Jul 19, 2023
2 parents 8c8c285 + b2274e5 commit 950063b
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public enum SuccessCode {
CREATE_CATEGORY_SUCCESS(HttpStatus.CREATED, "카테고리가 생성됐습니다."),
UPDATE_CATEGORY_SUCCESS(HttpStatus.OK, "카테고리 업데이트에 성공했습니다."),
DELETE_CATEGORY_SUCCESS(HttpStatus.OK, "카테고리가 삭제됐습니다."),
GET_CATEGORT_LIST_SUCCESS(HttpStatus.OK, "카테고리 조회가 완료됐습니다."),

CREATE_TRAVELLER_SUCCESS(HttpStatus.CREATED, "트레블러 생성 성공"),
UPDATE_TRAVELLER_SUCCESS(HttpStatus.OK, "트레블러 업데이트 성공"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
import com.deploy.Travalue.external.client.aws.S3Service;
import com.deploy.Travalue.travel.controller.dto.request.CategoryRequestDto;
import com.deploy.Travalue.travel.service.CategoryService;
import com.deploy.Travalue.travel.service.dto.response.CategoryListResponseDto;
import lombok.RequiredArgsConstructor;

import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

@RequiredArgsConstructor
@RestController
Expand Down Expand Up @@ -49,4 +51,10 @@ public ApiResponse delete(@UserId Long userId, @PathVariable final Long category
return ApiResponse.success(SuccessCode.DELETE_CATEGORY_SUCCESS);
}

@Auth
@ResponseStatus(HttpStatus.OK)
@GetMapping(value = "")
public ApiResponse<List<CategoryListResponseDto>> getList(@UserId Long userId) {
return ApiResponse.success(SuccessCode.GET_CATEGORT_LIST_SUCCESS, categoryService.getList(userId));
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package com.deploy.Travalue.travel.infrastructure;

import com.deploy.Travalue.travel.domain.Category;
import com.deploy.Travalue.user.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface CategoryRepository extends JpaRepository<Category, Long> {

List<Category> findAllByUser(User user);
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@ public interface TravelRepository extends JpaRepository<Travel, Long>, TravelCus
List<Travel> findTravelByIsPublicTrueAndIsDeletedFalseAndSectionAndTitleContainingOrSubTitleContaining(String section, String keyword1, String keyword2);

List<Travel> findTop3ByIsPublicTrueAndIsDeletedFalseAndSectionOrderByCreatedAtDesc(String section);

Long countByCategoryId(Long categoryId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,31 @@
import com.deploy.Travalue.travel.controller.dto.request.CategoryRequestDto;
import com.deploy.Travalue.travel.domain.Category;
import com.deploy.Travalue.travel.infrastructure.CategoryRepository;
import com.deploy.Travalue.travel.infrastructure.TravelRepository;
import com.deploy.Travalue.travel.service.dto.response.CategoryListResponseDto;
import com.deploy.Travalue.user.domain.User;
import com.deploy.Travalue.user.infrastructure.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;

@RequiredArgsConstructor
@Service
public class CategoryService {

private final S3Service s3Service;
private final UserRepository userRepository;
private final CategoryRepository categoryRepository;
private final TravelRepository travelRepository;

@Transactional
public void create(final Long userId, final String imagePath, final CategoryRequestDto request) {
final User user = userRepository.findById(userId)
.orElseThrow(() -> new NotFoundException("존재하지 않는 유저입니다."));
final Category category = categoryRepository.save(Category.newInstance(
categoryRepository.save(Category.newInstance(
user,
request.getTitle(),
imagePath,
Expand Down Expand Up @@ -67,4 +73,21 @@ public void delete(final Long userId, final Long categoryId) {

categoryRepository.delete(category);
}

@Transactional
public List<CategoryListResponseDto> getList(final Long userId) {

final User user = userRepository.findById(userId)
.orElseThrow(() -> new NotFoundException("존재하지 않는 유저입니다."));

List<Category> categories = categoryRepository.findAllByUser(user);

List<CategoryListResponseDto> response = new ArrayList<>();
for (Category category : categories) {
Long count = travelRepository.countByCategoryId(category.getId());
response.add(CategoryListResponseDto.of(category.getTitle(), count));
}

return response;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.deploy.Travalue.travel.service.dto.response;

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

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

private String title;
private Long travellerCount;

public static CategoryListResponseDto of(String title, Long travellerCount) {
return new CategoryListResponseDto(title, travellerCount);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class UserController {
@Auth
@ApiOperation("마이페이지 조회")
@GetMapping("/{pageOwnerUserId}")
public ApiResponse<?> getMyPage(@UserId Long userId, Long pageOwnerUserId) {
public ApiResponse<MyPageResponseDto> getMyPage(@UserId Long userId, Long pageOwnerUserId) {
log.info("userId :" + userId + " pageOwnerUserId : " + pageOwnerUserId);
MyPageResponseDto myPageResponseDto = userService.getMyPage(userId, pageOwnerUserId);
return ApiResponse.success(SuccessCode.GET_MY_PAGE_SUCCESS, myPageResponseDto);
Expand All @@ -44,7 +44,7 @@ public ApiResponse<NicknameResponseDto> updateProfile(@Valid @RequestBody final
@Transactional
@PutMapping("/nickname")
@ApiOperation("닉네임 등록 / 수정")
public ApiResponse<?> updateNickname(
public ApiResponse updateNickname(
@Valid @RequestBody final NicknameRequestDto nicknameRequestDto, @UserId Long userId) {
log.info("userId :" + userId);
String nickname = nicknameRequestDto.getNickname();
Expand All @@ -62,12 +62,12 @@ public ApiResponse<NicknameResponseDto> updateNickname(@Valid @RequestParam Stri
@Auth
@PostMapping("/block")
@ApiOperation("유저 차단 / 차단 해제")
public ApiResponse<?> userBlock(@UserId Long userId,
public ApiResponse userBlock(@UserId Long userId,
@RequestBody UserBlockRequestDto userBlockRequestDto) {
log.info("유저 차단 userId : " + userId + " userBolckRequestDto : " + userBlockRequestDto.toString());

userService.blockUser(userId, userBlockRequestDto);

return ApiResponse.success(SuccessCode.USER_BLOCK_SUCCESS, null);
return ApiResponse.success(SuccessCode.USER_BLOCK_SUCCESS);
}
}

0 comments on commit 950063b

Please sign in to comment.