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,35 @@
package HalfFifty.HalfFifty_BE.FAQ.bean;

import HalfFifty.HalfFifty_BE.FAQ.bean.small.CreateFaqDAOBean;
import HalfFifty.HalfFifty_BE.FAQ.bean.small.SaveFaqDAOBean;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestFaqSaveDTO;
import HalfFifty.HalfFifty_BE.FAQ.domain.FaqDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.UUID;

@Component
public class FaqSaveBean {
CreateFaqDAOBean createFaqDAOBean;
SaveFaqDAOBean saveFaqDAOBean;

@Autowired
public FaqSaveBean(CreateFaqDAOBean createFaqDAOBean, SaveFaqDAOBean saveFaqDAOBean) {
this.createFaqDAOBean = createFaqDAOBean;
this.saveFaqDAOBean = saveFaqDAOBean;
}

// FAQ 저장
public UUID exec(RequestFaqSaveDTO requestFaqSaveDTO) {
// FAQ 객체 생성
FaqDAO faqDAO = createFaqDAOBean.exec(requestFaqSaveDTO);
if(faqDAO == null) return null;

// 생성한 객체 저장
saveFaqDAOBean.exec(faqDAO);

// 키값 반환
return faqDAO.getFAQId();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package HalfFifty.HalfFifty_BE.FAQ.bean.small;

import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestFaqSaveDTO;
import HalfFifty.HalfFifty_BE.FAQ.domain.FaqDAO;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

@Component
public class CreateFaqDAOBean {

// Faq 객체 생성
public FaqDAO exec(RequestFaqSaveDTO requestFaqSaveDTO) {
return FaqDAO.builder()
.question(requestFaqSaveDTO.getQuestion())
.answer(requestFaqSaveDTO.getAnswer())
.createdAt(LocalDateTime.now())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package HalfFifty.HalfFifty_BE.FAQ.bean.small;

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

@Component
public class SaveFaqDAOBean {
FaqRepositoryJPA faqRepositoryJPA;

@Autowired
public SaveFaqDAOBean(FaqRepositoryJPA faqRepositoryJPA) {
this.faqRepositoryJPA = faqRepositoryJPA;
}

// Faq 객체 저장
public void exec(FaqDAO faqDAO) {
faqRepositoryJPA.save(faqDAO);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package HalfFifty.HalfFifty_BE.FAQ.controller;

import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestFaqSaveDTO;
import HalfFifty.HalfFifty_BE.FAQ.service.FaqService;
import HalfFifty.HalfFifty_BE.keyword.domain.DTO.ResponseKeywordGetDTO;
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.Map;
import java.util.UUID;

@RestController
@CrossOrigin("*")
@RequestMapping("/FAQ")
public class FaqController {
FaqService faqService;

@Autowired
public FaqController(FaqService faqService) {
this.faqService = faqService;
}

@PostMapping
public ResponseEntity<Map<String, Object>> saveFaq(@RequestBody RequestFaqSaveDTO requestFaqSaveDTO) {
// Faq 저장 service
UUID FaqId = faqService.saveFaq(requestFaqSaveDTO);

// Faq 저장 여부
boolean success = FaqId != null;

// Map을 통해 메시지와 list 값 json 데이터로 변환
Map<String, Object> requestMap = new HashMap<>();
requestMap.put("success", success);
requestMap.put("message", success ? "FAQ 저장 성공" : "FAQ 저장 실패");
requestMap.put("FAQId", FaqId);

// status, body 설정해서 응답 리턴
return ResponseEntity.status(HttpStatus.OK).body(requestMap);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package HalfFifty.HalfFifty_BE.FAQ.domain.DTO;

import lombok.Data;

@Data
public class RequestFaqSaveDTO {
String question;
String answer;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package HalfFifty.HalfFifty_BE.FAQ.domain;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.*;

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

@Entity
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Builder
public class FaqDAO {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
UUID FAQId;
String question;
String answer;
LocalDateTime createdAt;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package HalfFifty.HalfFifty_BE.FAQ.repository;

import HalfFifty.HalfFifty_BE.FAQ.domain.FaqDAO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.UUID;

@Repository
public interface FaqRepositoryJPA extends JpaRepository<FaqDAO, UUID> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package HalfFifty.HalfFifty_BE.FAQ.service;

import HalfFifty.HalfFifty_BE.FAQ.bean.FaqSaveBean;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestFaqSaveDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.UUID;

@Service
public class FaqService {
FaqSaveBean faqSaveBean;

@Autowired
public FaqService(FaqSaveBean faqSaveBean) {
this.faqSaveBean = faqSaveBean;
}

// Faq 저장 (관리자용)
public UUID saveFaq(RequestFaqSaveDTO requestFaqSaveDTO) {
return faqSaveBean.exec(requestFaqSaveDTO);
}
}
Loading