Skip to content

Commit

Permalink
Merge pull request #201 from Team-Smeme/sohyeon_#198
Browse files Browse the repository at this point in the history
[REFACTOR] 1차 기능 리팩토링
  • Loading branch information
thguss authored Feb 13, 2024
2 parents dfb52bf + 1cfec62 commit aaa7dd1
Show file tree
Hide file tree
Showing 61 changed files with 805 additions and 501 deletions.
6 changes: 5 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,8 @@ allprojects {
tasks.named('test') {
useJUnitPlatform()
}
}
}

jar { enabled = true }

bootJar { enabled = false }
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@


import com.smeem.api.auth.jwt.UserAuthentication;
import com.smeem.api.diary.service.DiaryService;
import com.smeem.api.diary.service.DiaryTransactionalService;
import com.smeem.api.member.service.MemberBadgeService;
import com.smeem.api.member.service.TrainingTimeService;
import com.smeem.common.exception.MemberException;
Expand Down Expand Up @@ -48,7 +48,7 @@ public class AuthService {
private final AppleSignInService appleSignInService;
private final KakaoSignInService kakaoSignInService;
private final MemberBadgeService memberBadgeService;
private final DiaryService diaryService;
private final DiaryTransactionalService diaryService;
private final TrainingTimeService trainingTimeService;

@Transactional
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,31 @@ private void putBadgeMap(Map<BadgeType, List<Badge>> badgeMap, Badge badge) {

@Transactional
public void saveMemberBadge(Member member, Badge badge) {
memberBadgeRepository.save(new MemberBadge(member, badge));
val memberBadge = MemberBadge.builder()
.member(member)
.badge(badge)
.build();
memberBadgeRepository.save(memberBadge);
}

public Badge getBadgeByCountOfDiary(int diaryCount) {
return switch (diaryCount) {
case 50 -> get(5L);
case 30 -> get(4L);
case 10 -> get(3L);
case 1 -> get(2L);
default -> null;
};
}

public Badge getBadgeByComboCountOfDiary(int diaryComboCount) {
return switch (diaryComboCount) {
case 30 -> get(9L);
case 15 -> get(8L);
case 7 -> get(7L);
case 3 -> get(6L);
default -> null;
};
}

public Badge get(Long id) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package com.smeem.api.diary.controller;


import java.security.Principal;

import com.smeem.api.common.ApiResponseUtil;
import com.smeem.api.common.BaseResponse;
import com.smeem.api.diary.controller.dto.request.DiaryRequestDTO;
import com.smeem.api.diary.controller.dto.response.CreatedDiaryResponseDTO;
import com.smeem.api.diary.controller.dto.response.DiariesResponseDTO;
import com.smeem.api.diary.controller.dto.response.DiaryResponseDTO;
import com.smeem.api.diary.service.DiaryService;
import com.smeem.api.diary.dto.request.*;
import com.smeem.api.diary.service.DiaryNonTransactionalService;
import com.smeem.api.diary.service.DiaryTransactionalService;
import com.smeem.common.util.Util;
import lombok.val;
import org.springframework.http.ResponseEntity;
Expand All @@ -32,40 +29,51 @@
@RequiredArgsConstructor
@RequestMapping("/api/v2/diaries")
public class DiaryController {
private final DiaryService diaryService;

private final DiaryTransactionalService diaryTransactionalService;
private final DiaryNonTransactionalService diaryNonTransactionalService;

@PostMapping
public ResponseEntity<BaseResponse<?>> save(Principal principal, @RequestBody DiaryRequestDTO request) {
CreatedDiaryResponseDTO response = diaryService.save(Util.getMemberId(principal), request);
public ResponseEntity<BaseResponse<?>> createDiary(Principal principal, @RequestBody DiaryCreateRequest request) {
val memberId = Util.getMemberId(principal);
val serviceRequest = DiaryCreateServiceRequest.of(memberId, request);

val response = diaryTransactionalService.createDiary(serviceRequest);
val uri = Util.getURI("/{diaryId}", response.diaryId());

return ApiResponseUtil.success(SUCCESS_CREATE_DIARY, uri, response);
}

@GetMapping("/{diaryId}")
public ResponseEntity<BaseResponse<?>> getDetail(@PathVariable Long diaryId) {
DiaryResponseDTO response = diaryService.getDetail(diaryId);
public ResponseEntity<BaseResponse<?>> getDiaryDetail(@PathVariable long diaryId) {
val serviceRequest = DiaryGetServiceRequest.of(diaryId);
val response = diaryNonTransactionalService.getDiaryDetail(serviceRequest);
return ApiResponseUtil.success(SUCCESS_GET_DIARY, response);
}

@PatchMapping("/{diaryId}")
public ResponseEntity<BaseResponse<?>> update(@PathVariable Long diaryId, @RequestBody DiaryRequestDTO request) {
diaryService.update(diaryId, request);
public ResponseEntity<BaseResponse<?>> modifyDiary(@PathVariable long diaryId, @RequestBody DiaryModifyRequest request) {
val serviceRequest = DiaryModifyServiceRequest.of(diaryId, request);
diaryTransactionalService.modifyDiary(serviceRequest);
return ApiResponseUtil.success(SUCCESS_UPDATE_DAIRY);
}

@DeleteMapping("/{diaryId}")
public ResponseEntity<BaseResponse<?>> delete(@PathVariable Long diaryId) {
diaryService.delete(diaryId);
public ResponseEntity<BaseResponse<?>> deleteDiary(@PathVariable long diaryId) {
val serviceRequest = DiaryDeleteServiceRequest.of(diaryId);
diaryTransactionalService.deleteDiary(serviceRequest);
return ApiResponseUtil.success(SUCCESS_DELETE_DIARY);
}

@GetMapping
public ResponseEntity<BaseResponse<?>> getDiaries(
Principal principal,
@RequestParam(name = "start") String startDate,
@RequestParam(name = "end") String endDate
@RequestParam String start,
@RequestParam String end
) {
DiariesResponseDTO response = diaryService.getDiaries(Util.getMemberId(principal), startDate, endDate);
val memberId = Util.getMemberId(principal);
val serviceRequest = DiaryListGetServiceRequest.of(memberId, start, end);
val response = diaryNonTransactionalService.getDiaries(serviceRequest);
return ApiResponseUtil.success(SUCCESS_GET_DIARIES, response);
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.smeem.api.diary.controller.dto.request;
package com.smeem.api.diary.dto.request;

import lombok.NonNull;

public record DiaryRequestDTO(
public record DiaryCreateRequest(
@NonNull
String content,
Long topicId
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.smeem.api.diary.dto.request;

import lombok.Builder;

import static lombok.AccessLevel.PRIVATE;

@Builder(access = PRIVATE)
public record DiaryCreateServiceRequest(
long memberId,
String content,
Long topicId
) {

public static DiaryCreateServiceRequest of(long memberId, DiaryCreateRequest request) {
return DiaryCreateServiceRequest.builder()
.memberId(memberId)
.content(request.content())
.topicId(request.topicId())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.smeem.api.diary.dto.request;

import lombok.Builder;

import static lombok.AccessLevel.PRIVATE;

@Builder(access = PRIVATE)
public record DiaryDeleteServiceRequest(
long diaryId
) {

public static DiaryDeleteServiceRequest of(long diaryId) {
return DiaryDeleteServiceRequest.builder()
.diaryId(diaryId)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.smeem.api.diary.dto.request;

import lombok.Builder;

import static lombok.AccessLevel.PRIVATE;

@Builder(access = PRIVATE)
public record DiaryGetServiceRequest(
long diaryId
) {

public static DiaryGetServiceRequest of(long diaryId) {
return DiaryGetServiceRequest.builder()
.diaryId(diaryId)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.smeem.api.diary.dto.request;

import lombok.Builder;

import java.time.LocalDate;

import static java.time.format.DateTimeFormatter.ISO_DATE;
import static lombok.AccessLevel.PRIVATE;

@Builder(access = PRIVATE)
public record DiaryListGetServiceRequest(
long memberId,
LocalDate startDate,
LocalDate endDate
) {

public static DiaryListGetServiceRequest of(long memberId, String startDate, String endDate) {
return DiaryListGetServiceRequest.builder()
.memberId(memberId)
.startDate(LocalDate.parse(startDate, ISO_DATE))
.endDate(LocalDate.parse(endDate, ISO_DATE))
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.smeem.api.diary.dto.request;

import lombok.NonNull;

public record DiaryModifyRequest(
@NonNull
String content,
Long topicId
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.smeem.api.diary.dto.request;

import lombok.Builder;

import static lombok.AccessLevel.PRIVATE;

@Builder(access = PRIVATE)
public record DiaryModifyServiceRequest(
long diaryId,
String content
) {

public static DiaryModifyServiceRequest of(long diaryId, DiaryModifyRequest request) {
return DiaryModifyServiceRequest.builder()
.diaryId(diaryId)
.content(request.content())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.smeem.api.diary.dto.response;

import com.smeem.api.badge.controller.dto.response.AcquiredBadgeResponseDTO;
import com.smeem.domain.badge.model.Badge;
import com.smeem.domain.diary.model.Diary;
import lombok.Builder;

import java.util.List;

import static lombok.AccessLevel.PRIVATE;

@Builder(access = PRIVATE)
public record DiaryCreateServiceResponse(
long diaryId,
List<AcquiredBadgeResponseDTO> badges
) {
public static DiaryCreateServiceResponse of(Diary diary, List<Badge> badges) {
return DiaryCreateServiceResponse.builder()
.diaryId(diary.getId())
.badges(badges.stream().map(AcquiredBadgeResponseDTO::of).toList())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
package com.smeem.api.diary.controller.dto.response;

package com.smeem.api.diary.dto.response;

import static java.util.Objects.*;

Expand All @@ -10,19 +9,19 @@
import lombok.Builder;

@Builder(access = AccessLevel.PRIVATE)
public record DiaryResponseDTO(
Long diaryId,
public record DiaryGetServiceResponse(
long diaryId,
String topic,
String content,
String createdAt,
String username
) {
public static DiaryResponseDTO of(Diary diary) {
return DiaryResponseDTO.builder()
public static DiaryGetServiceResponse of(Diary diary) {
return DiaryGetServiceResponse.builder()
.diaryId(diary.getId())
.topic(nonNull(diary.getTopic()) ? diary.getTopic().getContent() : "")
.content(diary.getContent())
.createdAt(Util.dateToString(diary.getCreatedAt()))
.createdAt(Util.transferToLocalDateTime(diary.getCreatedAt()))
.username(diary.getMember().getUsername())
.build();
}
Expand Down
Loading

0 comments on commit aaa7dd1

Please sign in to comment.