Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package HalfFifty.HalfFifty_BE.FAQ.bean;

import HalfFifty.HalfFifty_BE.FAQ.bean.small.CreateAqsDTOBean;
import HalfFifty.HalfFifty_BE.FAQ.bean.small.GetAqsDAOBean;
import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

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

@Component
public class GetAqsBean {
GetAqsDAOBean getAqsDAOBean;
CreateAqsDTOBean createAqsDTOBean;

@Autowired
public GetAqsBean(GetAqsDAOBean getAqsDAOBean, CreateAqsDTOBean createAqsDTOBean) {
this.getAqsDAOBean = getAqsDAOBean;
this.createAqsDTOBean = createAqsDTOBean;
}

// AQ 전체조회
public List<ResponseAqGetDTO> exec(UUID userId) {
// userId를 통해 원하는 객체 리스트 찾기
List<AqDAO> aqDAOS = getAqsDAOBean.exec(userId);
if(aqDAOS == null) return new ArrayList<>();

// 객체 리스트 DTO로 변환 후 반환
return createAqsDTOBean.exec(aqDAOS);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package HalfFifty.HalfFifty_BE.FAQ.bean.small;

import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO;
import org.springframework.stereotype.Component;

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

@Component
public class CreateAqsDTOBean {

// 객체 리스트를 DTO로 변환
public List<ResponseAqGetDTO> exec(List<AqDAO> aqDAOS) {
// 객체 리스트를 담을 DTO 리스트 생성
List<ResponseAqGetDTO> responseAqGetDTOS = new ArrayList<>();

// for문을 통해 각 객체들 DTO로 변환
for(AqDAO aqDAO : aqDAOS) {
ResponseAqGetDTO responseAqGetDTO = ResponseAqGetDTO.builder()
.aqId(aqDAO.getAqId())
.question(aqDAO.getQuestion())
.answer(aqDAO.getAnswer())
.questionCreatedAt(aqDAO.getQuestionCreatedAt())
.answerCreatedAt(aqDAO.getAnswerCreatedAt())
.isAnswer(aqDAO.getIsAnswer())
.build();

responseAqGetDTOS.add(responseAqGetDTO);
}

// 변환된 DTO 리스트 반환
return responseAqGetDTOS;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package HalfFifty.HalfFifty_BE.FAQ.bean.small;

import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO;
import HalfFifty.HalfFifty_BE.FAQ.repository.AqRepositoryJPA;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.UUID;

@Component
public class GetAqsDAOBean {
AqRepositoryJPA aqRepositoryJPA;

@Autowired
public GetAqsDAOBean(AqRepositoryJPA aqRepositoryJPA) {
this.aqRepositoryJPA = aqRepositoryJPA;
}

// user 아이디를 통해 원하는 객체 리스트 반환
public List<AqDAO> exec(UUID userId) {
return aqRepositoryJPA.findAllByUserId(userId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO;
import HalfFifty.HalfFifty_BE.FAQ.service.AqService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

Expand All @@ -23,6 +25,25 @@ public AqController(AqService aqService) {
this.aqService = aqService;
}

@GetMapping("/user/{userId}")
public ResponseEntity<Map<String, Object>> getAqs(@PathVariable("userId") UUID userId) {
// AQ 전체 조회 service
List<ResponseAqGetDTO> responseAqGetDTOS = aqService.getAqs(userId);

// AQ 전체 조회 성공 여부
Boolean success = responseAqGetDTOS != null;

// Map을 통해 메시지와 list 값 json 데이터로 변환
Map<String, Object> requestMap = new HashMap<>();
requestMap.put("success", success);
requestMap.put("message", success ? "AQ 전체 조회 성공" : "AQ 전체 조회 실패");
requestMap.put("AQList", responseAqGetDTOS);

// status, body 값 설정해서 응답 리턴
return ResponseEntity.status(HttpStatus.OK).body(requestMap);

}

@PostMapping
public ResponseEntity<Map<String, Object>> saveUserAq(@RequestBody RequestAqUserSaveDTO requestAqUserSaveDTO) {
// AQ 유저 등록 service
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package HalfFifty.HalfFifty_BE.FAQ.domain.DTO;

import lombok.Builder;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.UUID;

@Data
@Builder
public class ResponseAqGetDTO {
UUID aqId;
String question;
String answer;
Boolean isAnswer;
LocalDateTime questionCreatedAt;
LocalDateTime answerCreatedAt;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.UUID;

@Repository
public interface AqRepositoryJPA extends JpaRepository<AqDAO, UUID> {

// user 아이디를 통해 원하는 객체 리스트 찾기
List<AqDAO> findAllByUserId(UUID userId);
}
Original file line number Diff line number Diff line change
@@ -1,23 +1,34 @@
package HalfFifty.HalfFifty_BE.FAQ.service;

import HalfFifty.HalfFifty_BE.FAQ.bean.AqUserSaveBean;
import HalfFifty.HalfFifty_BE.FAQ.bean.GetAqsBean;
import HalfFifty.HalfFifty_BE.FAQ.bean.UpdateAqAdminBean;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.UUID;

@Service
public class AqService {
AqUserSaveBean aqUserSaveBean;
UpdateAqAdminBean updateAqAdminBean;
GetAqsBean getAqsBean;


@Autowired
public AqService(AqUserSaveBean aqUserSaveBean, UpdateAqAdminBean updateAqAdminBean) {
public AqService(AqUserSaveBean aqUserSaveBean, UpdateAqAdminBean updateAqAdminBean, GetAqsBean getAqsBean) {
this.aqUserSaveBean = aqUserSaveBean;
this.updateAqAdminBean = updateAqAdminBean;
this.getAqsBean = getAqsBean;
}

// AQ 전체조회
public List<ResponseAqGetDTO> getAqs(UUID userId) {
return getAqsBean.exec(userId);
}

// AQ 유저 등록
Expand Down
Loading