Skip to content

Commit

Permalink
fix: 관리자 메거진 detail count+1 이슈 해결 #136
Browse files Browse the repository at this point in the history
  • Loading branch information
GaHee99 committed Feb 6, 2024
1 parent 8090f00 commit 0400ab1
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/main/java/com/gam/api/controller/AdminController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@
import com.gam.api.common.ApiResponse;
import com.gam.api.common.message.ResponseMessage;
import com.gam.api.dto.admin.magazine.request.MagazineRequestDTO;
import com.gam.api.entity.GamUserDetails;
import com.gam.api.service.admin.AdminService;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.val;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;

@RestController
Expand Down Expand Up @@ -38,6 +40,14 @@ public ResponseEntity<ApiResponse> createMagazine(@RequestBody MagazineRequestDT
return ResponseEntity.ok(ApiResponse.success(ResponseMessage.SUCCESS_CREATE_MAGAZINE.getMessage()));
}

@ApiOperation(value = "관리자 매거진 - 세부")
@GetMapping("/magazine/detail")
public ResponseEntity<ApiResponse> getMagazineDetail(@RequestParam Long magazineId, @AuthenticationPrincipal GamUserDetails userDetails) {
val response = adminService.getMagazineDetail(magazineId, userDetails.getId());
return ResponseEntity.ok(ApiResponse.success(ResponseMessage.SUCCESS_GET_MAGAZINE_DETAIL.getMessage(), response));
}


@ApiOperation(value = "매거진 - 수정")
@PatchMapping("/magazine/{magazineId}")
public ResponseEntity<ApiResponse> editMagazine(@PathVariable Long magazineId, @RequestBody MagazineRequestDTO request) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.gam.api.dto.admin.magazine.response;

import com.gam.api.entity.Magazine;
import com.gam.api.entity.Question;
import java.util.List;
import lombok.Builder;

@Builder
public record MagazineDetailResponseDTO(
Long magazineId,
List<String> magazinePhotos,
String magazineIntro,
List<MagazineDetailResponseVO> questions
) {
public static MagazineDetailResponseDTO of(
Magazine magazine
) {
return MagazineDetailResponseDTO.builder()
.magazineId(magazine.getId())
.magazinePhotos(List.of(magazine.getMagazine_photos()))
.magazineIntro(magazine.getIntroduction())
.questions(magazine.getQuestions().stream().map(MagazineDetailResponseVO::of).toList())
.build();
}
}

@Builder
record MagazineDetailResponseVO(
Long questionId,
int questionOrder,
String question,
String answer,
String answerImage,
String imageCaption
) {
public static MagazineDetailResponseVO of(Question question) {
return MagazineDetailResponseVO.builder()
.questionId(question.getId())
.questionOrder(question.getQuestionOrder())
.question(question.getQuestion())
.answer(question.getAnswer())
.answerImage(question.getAnswerImage())
.imageCaption(question.getImageCaption())
.build();
}
}
2 changes: 2 additions & 0 deletions src/main/java/com/gam/api/service/admin/AdminService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.gam.api.service.admin;

import com.gam.api.dto.admin.magazine.request.MagazineRequestDTO;
import com.gam.api.dto.admin.magazine.response.MagazineDetailResponseDTO;
import com.gam.api.dto.admin.magazine.response.MagazineListResponseDTO;

import java.util.List;
Expand All @@ -11,4 +12,5 @@ public interface AdminService {
void createMagazine(MagazineRequestDTO request);
void editMagazine(Long magazineId, MagazineRequestDTO request);
void deleteUserAccount(Long userId);
MagazineDetailResponseDTO getMagazineDetail(Long magazineID, Long userId);
}
10 changes: 10 additions & 0 deletions src/main/java/com/gam/api/service/admin/AdminServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
import com.gam.api.dto.admin.magazine.request.MagazineRequestDTO;
import com.gam.api.dto.admin.magazine.response.MagazineListResponseDTO;

import com.gam.api.dto.admin.magazine.response.MagazineDetailResponseDTO;
import com.gam.api.entity.Magazine;
import com.gam.api.entity.Question;;
import com.gam.api.entity.UserStatus;
import com.gam.api.entity.Work;
import com.gam.api.repository.MagazineRepository;
import com.gam.api.repository.QuestionRepository;
Expand Down Expand Up @@ -172,4 +174,12 @@ public void deleteUserAccount(Long userId) {

userRepository.deleteById(userId);
}

@Override
public MagazineDetailResponseDTO getMagazineDetail(Long magazineId, Long userId) {
val magazine = magazineRepository.findById(magazineId)
.orElseThrow(()-> new EntityNotFoundException());

return MagazineDetailResponseDTO.of(magazine);
}
}

0 comments on commit 0400ab1

Please sign in to comment.