Skip to content

Commit

Permalink
DiaryService 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
paragon0107 committed Oct 21, 2024
1 parent c5a9769 commit 45e53c6
Showing 1 changed file with 24 additions and 40 deletions.
64 changes: 24 additions & 40 deletions src/main/java/org/example/diary/service/DiaryService.java
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
package org.example.diary.service;

import org.example.diary.api.DiaryCreateRequest;
import org.example.diary.api.DiarySpecificResponse;
import org.example.diary.api.DiaryUpdateRequest;
import org.example.diary.repository.Category;
import org.example.diary.repository.DiaryEntity;
import org.example.diary.repository.DiaryRepository;
import org.example.diary.api.dto.request.DiaryCreateRequest;
import org.example.diary.api.dto.response.DiarySpecificResponse;
import org.example.diary.api.dto.request.DiaryUpdateRequest;
import org.example.diary.repository.adapter.DiaryDeleter;
import org.example.diary.repository.adapter.DiaryFinder;
import org.example.diary.repository.adapter.DiarySaver;
import org.example.diary.repository.entity.Category;
import org.example.diary.repository.entity.DiaryEntity;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

@Component
public class DiaryService {

private final DiaryRepository diaryRepository;
private final DiaryFinder diaryFinder;
private final DiarySaver diarySaver;
private final DiaryDeleter diaryDeleter;

public DiaryService(DiaryRepository diaryRepository) {
this.diaryRepository = diaryRepository;
public DiaryService(DiaryFinder diaryFinder,DiarySaver diarySaver,DiaryDeleter diaryDeleter) {
this.diaryFinder = diaryFinder;
this.diarySaver = diarySaver;
this.diaryDeleter = diaryDeleter;
}

public void createDiary(final DiaryCreateRequest diaryCreateRequest) {
Optional<DiaryEntity> diaryEntity = diaryRepository.findByTitle(diaryCreateRequest.title());
if (diaryEntity.isPresent()) {
throw new RuntimeException("중복되는 제목입니다.");
}
diaryRepository.save(
diarySaver.createDiary(
DiaryEntity.of(
diaryCreateRequest.title(),
diaryCreateRequest.body(),
Expand All @@ -37,7 +37,7 @@ public void createDiary(final DiaryCreateRequest diaryCreateRequest) {
}

public DiarySpecificResponse getDiarySpecific(final long id) {
DiaryEntity diaryEntity = getDiaryEntity(id);
DiaryEntity diaryEntity = diaryFinder.getDiaryEntity(id);
return new DiarySpecificResponse(
diaryEntity.getId(),
diaryEntity.getTitle(),
Expand All @@ -47,35 +47,19 @@ public DiarySpecificResponse getDiarySpecific(final long id) {
);
}

public List<Diary> getListById() {
final List<DiaryEntity> diaryEntityList = diaryRepository.findAllOrderByBodyLengthDesc();
final List<Diary> diaryList = new ArrayList<>();
for (DiaryEntity diaryEntity : diaryEntityList) {
diaryList.add(new Diary(diaryEntity.getId(), diaryEntity.getTitle()));
}
return diaryList;
public List<Diary> getList() {
return diaryFinder.findDiaryList();
}

public List<DiaryEntity> getListByCategory(final Category category){
return diaryRepository.findAllByCategory(category);
public List<DiaryEntity> getListByCategory(final Category category) {
return diaryFinder.findAllByCategory(category);
}

public void updateDiary(final long id, final DiaryUpdateRequest request) {
DiaryEntity diaryEntity = getDiaryEntity(id);
diaryEntity.setBody(request.body());
diaryRepository.save(diaryEntity);
diarySaver.updateDiary(id, request.body());
}

public void deleteDiary(final long id) {
DiaryEntity diaryEntity = getDiaryEntity(id);
diaryRepository.delete(diaryEntity);
diaryDeleter.deleteDiary(id);
}

private DiaryEntity getDiaryEntity(final long id) {
Optional<DiaryEntity> diaryEntity = diaryRepository.findById(id);
if (diaryEntity.isEmpty()) {
throw new RuntimeException("존재하지 않은 아이디");
}
return diaryEntity.get();
}
}
}

0 comments on commit 45e53c6

Please sign in to comment.