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.CreateAqUserDAOBean;
import HalfFifty.HalfFifty_BE.FAQ.bean.small.SaveAqUserDAOBean;
import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.UUID;

@Component
public class AqUserSaveBean {
CreateAqUserDAOBean createAqUserDAOBean;
SaveAqUserDAOBean saveAqUserDAOBean;

@Autowired
public AqUserSaveBean(CreateAqUserDAOBean createAqUserDAOBean, SaveAqUserDAOBean saveAqUserDAOBean) {
this.createAqUserDAOBean = createAqUserDAOBean;
this.saveAqUserDAOBean = saveAqUserDAOBean;
}

// AQ 등록
public UUID exec(RequestAqUserSaveDTO requestAqUserSaveDTO) {
// AQ 객체 생성
AqDAO aqDAO = createAqUserDAOBean.exec(requestAqUserSaveDTO);
if(aqDAO == null) return null;

// 생성한 객체 저장
saveAqUserDAOBean.exec(aqDAO);

// 키값 반환
return aqDAO.getAqId();
}
}
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.AqDAO;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

@Component
public class CreateAqUserDAOBean {

// AQ 유저 객체 생성
public AqDAO exec(RequestAqUserSaveDTO requestAqUserSaveDTO) {
return AqDAO.builder()
.userId(requestAqUserSaveDTO.getUserId())
.question(requestAqUserSaveDTO.getQuestion())
.questionCreatedAt(LocalDateTime.now())
.isAnswer(Boolean.FALSE)
.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.AqDAO;
import HalfFifty.HalfFifty_BE.FAQ.repository.AqRepositoryJPA;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class SaveAqUserDAOBean {
AqRepositoryJPA aqRepositoryJPA;

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

// AQ 객체 저장
public void exec(AqDAO aqDAO) {
aqRepositoryJPA.save(aqDAO);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package HalfFifty.HalfFifty_BE.FAQ.controller;

import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO;
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.Map;
import java.util.UUID;

@RestController
@CrossOrigin("*")
@RequestMapping("/AQ")
public class AqController {
AqService aqService;

@Autowired
public AqController(AqService aqService) {
this.aqService = aqService;
}

@PostMapping
public ResponseEntity<Map<String, Object>> saveUserAq(@RequestBody RequestAqUserSaveDTO requestAqUserSaveDTO) {
// AQ 유저 등록 service
UUID AqId = aqService.saveUserAq(requestAqUserSaveDTO);

// AQ 유저 등록 성공 여부
Boolean success = AqId != null;

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

// status, body 값 설정해서 응답 리턴
return ResponseEntity.status(HttpStatus.OK).body(requestMap);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
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 AqDAO {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
UUID aqId;
UUID userId;
String question;
String answer;
Boolean isAnswer;
LocalDateTime questionCreatedAt;
LocalDateTime answerCreatedAt;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package HalfFifty.HalfFifty_BE.FAQ.domain.DTO;

import lombok.Data;

import java.util.UUID;

@Data
public class RequestAqUserSaveDTO {
UUID userId;
String question;
}
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.AqDAO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.UUID;

@Repository
public interface AqRepositoryJPA extends JpaRepository<AqDAO, 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.AqUserSaveBean;
import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.UUID;

@Service
public class AqService {
AqUserSaveBean aqUserSaveBean;

@Autowired
public AqService(AqUserSaveBean aqUserSaveBean) {
this.aqUserSaveBean = aqUserSaveBean;
}

// AQ 유저 등록
public UUID saveUserAq(RequestAqUserSaveDTO requestAqUserSaveDTO) {
return aqUserSaveBean.exec(requestAqUserSaveDTO);
}
}
Loading