Skip to content

Commit

Permalink
Refactor/182 praycontroller (#184)
Browse files Browse the repository at this point in the history
  • Loading branch information
soonga00 authored Oct 17, 2024
2 parents b3440a5 + ffb6f2e commit d27fc94
Show file tree
Hide file tree
Showing 14 changed files with 243 additions and 148 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.uspray.uspray.domain.category.dto.CategoryRequestDto;
import com.uspray.uspray.domain.category.dto.CategoryResponseDto;
import com.uspray.uspray.domain.category.service.CategoryService;
import com.uspray.uspray.domain.pray.service.PrayFacade;
import com.uspray.uspray.global.common.dto.ApiResponseDto;
import com.uspray.uspray.global.exception.SuccessStatus;
import java.util.List;
Expand All @@ -23,8 +24,8 @@
@RequestMapping("/category")
@RequiredArgsConstructor
public class CategoryController implements CategoryApi {

private final CategoryService categoryService;
private final PrayFacade prayFacade;


@GetMapping("/{categoryId}")
Expand Down Expand Up @@ -58,7 +59,7 @@ public ApiResponseDto<CategoryResponseDto> deleteCategory(
@PathVariable("categoryId") Long categoryId
) {
return ApiResponseDto.success(SuccessStatus.DELETE_CATEGORY_SUCCESS,
categoryService.deleteCategory(user.getUsername(), categoryId));
prayFacade.deleteCategory(user.getUsername(), categoryId));
}

@PutMapping("/{categoryId}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public interface CategoryRepository extends JpaRepository<Category, Long>,
List<Category> getCategoriesByMemberAndCategoryTypeOrderByOrder(Member member,
CategoryType categoryType);

List<Category> findAllByMemberAndCategoryTypeOrderByOrderAsc(Member member, CategoryType categoryType);

default Category getCategoryByIdAndMember(Long categoryId, Member member) {
Category category = findById(categoryId)
.filter(c -> c.getMember().equals(member))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,15 @@ public class CategoryService {
private final MemberRepository memberRepository;
private final CategoryRepository categoryRepository;
private final PrayRepository prayRepository;
private final PrayFacade prayFacade;
// private final PrayFacade prayFacade;

public Category getCategoryByIdAndMember(Long categoryId, Member member) {
return categoryRepository.getCategoryByIdAndMember(categoryId, member);
}

public List<Category> getCategoryListByMemberAndCategoryType(Member member, CategoryType categoryType) {
return categoryRepository.findAllByMemberAndCategoryTypeOrderByOrderAsc(member, categoryType);
}

private static int getNewOrder(int index, List<Category> categories, Category category) {
Category targetPosition = categories.get(index - 1);
Expand Down Expand Up @@ -76,10 +84,7 @@ public CategoryResponseDto createCategory(String username,
return CategoryResponseDto.of(category);
}

public CategoryResponseDto deleteCategory(String username, Long categoryId) {
Category category = categoryRepository.getCategoryByIdAndMember(categoryId,
memberRepository.getMemberByUserId(username));
prayRepository.findByCategoryId(category.getId()).forEach(prayFacade::convertPrayToHistory);
public CategoryResponseDto deleteCategory(Category category) {
categoryRepository.delete(category);
return CategoryResponseDto.of(category);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.uspray.uspray.domain.group.service;

import com.uspray.uspray.domain.group.model.ScrapAndHeart;
import com.uspray.uspray.domain.group.repository.ScrapAndHeartRepository;
import com.uspray.uspray.domain.member.model.Member;
import com.uspray.uspray.domain.pray.model.Pray;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class ScrapAndHeartService {
private final ScrapAndHeartRepository scrapAndHeartRepository;

public void deleteScrapAndHeart(Member member, Pray pray) {
ScrapAndHeart scrapAndHeart = scrapAndHeartRepository.findByMemberAndSharedPray(member, pray);
if (scrapAndHeart != null) {
scrapAndHeart.deletePrayId();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,9 @@ public HistoryDetailResponseDto getHistoryDetail(String username, Long historyId
}
return HistoryDetailResponseDto.of(history);
}

@Transactional
public void saveHistory(History history) {
historyRepository.save(history);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,12 @@ public void changePw(String userId, CheckPwDTO changePwDto) {
public void updateFcmToken(String username, FcmTokenDto fcmTokenDto) {
memberRepository.getMemberByUserId(username).updateFcmToken(fcmTokenDto.getFcmToken());
}

public Member findMemberByUserId(String userId) {
return memberRepository.getMemberByUserId(userId);
}

public Member findMemberById(Long id) {
return memberRepository.getMemberById(id);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public ApiResponseDto<PrayResponseDto> createPray(
@AuthenticationPrincipal User user
) {
return ApiResponseDto.success(SuccessStatus.CREATE_PRAY_SUCCESS,
prayFacade.createPray(prayRequestDto, user.getUsername()));
prayFacade.createPray(prayRequestDto, user.getUsername(), null));
}

@DeleteMapping("/{prayId}")
Expand Down Expand Up @@ -91,7 +91,6 @@ public ApiResponseDto<List<PrayListResponseDto>> completePray(
@PathVariable("prayId") Long prayId,
@AuthenticationPrincipal User user
) {
prayFacade.createHistory(user.getUsername(), prayId);
return ApiResponseDto.success(SuccessStatus.GET_PRAY_LIST_SUCCESS,
prayFacade.completePray(prayId, user.getUsername()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,25 +31,14 @@ public class PrayRequestDto {
@Schema(description = "기도제목 카테고리", example = "1")
private Long categoryId;

public Pray toEntity(Member member, Category category) {
public Pray toEntity(Member member, Category category, LocalDate startDateOrNull) {
return Pray.builder()
.content(content)
.deadline(deadline)
.member(member)
.category(category)
.prayType(PrayType.PERSONAL)
.startDate(LocalDate.now())
.build();
}

public Pray toEntity(Member member, Category category, LocalDate startDate) {
return Pray.builder()
.content(content)
.deadline(deadline)
.member(member)
.category(category)
.prayType(PrayType.PERSONAL)
.startDate(startDate)
.startDate(startDateOrNull)
.build();
}
}
28 changes: 9 additions & 19 deletions src/main/java/com/uspray/uspray/domain/pray/model/Pray.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.uspray.uspray.domain.pray.model;

import com.uspray.uspray.domain.pray.dto.pray.request.PrayUpdateRequestDto;
import com.uspray.uspray.global.enums.PrayType;
import com.uspray.uspray.global.common.model.AuditingTimeEntity;
import com.uspray.uspray.domain.category.model.Category;
import com.uspray.uspray.domain.member.model.Member;
import com.uspray.uspray.domain.group.model.GroupPray;
import com.uspray.uspray.global.exception.ErrorStatus;
import com.uspray.uspray.global.exception.model.NotFoundException;
import com.uspray.uspray.domain.member.model.Member;
import com.uspray.uspray.domain.pray.dto.pray.request.PrayUpdateRequestDto;
import com.uspray.uspray.global.common.model.AuditingTimeEntity;
import com.uspray.uspray.global.enums.PrayType;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Base64;
Expand Down Expand Up @@ -72,7 +70,8 @@ public class Pray extends AuditingTimeEntity {

@Builder
public Pray(Member member, String content, LocalDate deadline, Long originPrayId,
Long originMemberId, Category category, PrayType prayType, GroupPray groupPray, LocalDate startDate) {
Long originMemberId, Category category, PrayType prayType, GroupPray groupPray,
LocalDate startDate) {
this.member = member;
this.content = new String(Base64.getEncoder().encode(content.getBytes()));
this.count = 0;
Expand All @@ -93,23 +92,14 @@ public void setGroupPray(GroupPray groupPray) {
}
}

public void update(PrayUpdateRequestDto prayUpdateRequestDto,
boolean isShared, Category category) {
handleUpdateContentSharedPray(isShared, prayUpdateRequestDto.getContent());
public Pray update(PrayUpdateRequestDto prayUpdateRequestDto, Category category) {
if (prayUpdateRequestDto.getContent() != null) {
this.content = new String(
Base64.getEncoder().encode(prayUpdateRequestDto.getContent().getBytes()));
}
this.deadline = prayUpdateRequestDto.getDeadline();
if (category != null) {
this.category = category;
}
}

private void handleUpdateContentSharedPray(boolean isShared, String content) {
if (isShared && content != null) {
throw new NotFoundException(ErrorStatus.ALREADY_SHARED_EXCEPTION);
}
this.category = category;
return this;
}

public void countUp() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.uspray.uspray.domain.pray.repository;

import com.uspray.uspray.domain.category.model.Category;
import com.uspray.uspray.domain.member.model.Member;
import com.uspray.uspray.domain.pray.model.Pray;
import com.uspray.uspray.global.exception.ErrorStatus;
Expand Down Expand Up @@ -41,7 +42,9 @@ default Pray getPrayByIdAndMemberId(Long prayId, String username) throws NotFoun

Pray getPrayByOriginPrayId(Long prayId);

List<Pray> findByCategoryId(Long categoryId);
List<Pray> findAllByCategory(Category category);

List<Pray> findAllByMemberAndCategoryOrderByCreatedAtAsc(Member member, Category category);

boolean existsByMemberAndOriginPrayId(Member member, Long originPrayId);

Expand Down
Loading

0 comments on commit d27fc94

Please sign in to comment.