From 221f2def4350e4c3602e05c32a9e6524392c28bd Mon Sep 17 00:00:00 2001 From: le2sky Date: Mon, 20 Jan 2025 22:28:39 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=84=ED=82=A4=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maeilwiki/member/MemberRepository.java | 6 +++++ .../src/main/java/maeilwiki/wiki/WikiApi.java | 21 ++++++++++++++++ .../java/maeilwiki/wiki/WikiRepository.java | 6 +++++ .../main/java/maeilwiki/wiki/WikiRequest.java | 14 +++++++++++ .../main/java/maeilwiki/wiki/WikiService.java | 24 +++++++++++++++++++ 5 files changed, 71 insertions(+) create mode 100644 maeil-wiki/src/main/java/maeilwiki/member/MemberRepository.java create mode 100644 maeil-wiki/src/main/java/maeilwiki/wiki/WikiApi.java create mode 100644 maeil-wiki/src/main/java/maeilwiki/wiki/WikiRepository.java create mode 100644 maeil-wiki/src/main/java/maeilwiki/wiki/WikiRequest.java create mode 100644 maeil-wiki/src/main/java/maeilwiki/wiki/WikiService.java diff --git a/maeil-wiki/src/main/java/maeilwiki/member/MemberRepository.java b/maeil-wiki/src/main/java/maeilwiki/member/MemberRepository.java new file mode 100644 index 0000000..56f5549 --- /dev/null +++ b/maeil-wiki/src/main/java/maeilwiki/member/MemberRepository.java @@ -0,0 +1,6 @@ +package maeilwiki.member; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { +} diff --git a/maeil-wiki/src/main/java/maeilwiki/wiki/WikiApi.java b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiApi.java new file mode 100644 index 0000000..f4c5560 --- /dev/null +++ b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiApi.java @@ -0,0 +1,21 @@ +package maeilwiki.wiki; + +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +class WikiApi { + + private final WikiService wikiService; + + @PostMapping("/wiki") + public ResponseEntity createWiki(@RequestBody WikiRequest request) { + wikiService.create(request); + + return ResponseEntity.noContent().build(); + } +} diff --git a/maeil-wiki/src/main/java/maeilwiki/wiki/WikiRepository.java b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiRepository.java new file mode 100644 index 0000000..531ddad --- /dev/null +++ b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiRepository.java @@ -0,0 +1,6 @@ +package maeilwiki.wiki; + +import org.springframework.data.jpa.repository.JpaRepository; + +interface WikiRepository extends JpaRepository { +} diff --git a/maeil-wiki/src/main/java/maeilwiki/wiki/WikiRequest.java b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiRequest.java new file mode 100644 index 0000000..a026e9e --- /dev/null +++ b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiRequest.java @@ -0,0 +1,14 @@ +package maeilwiki.wiki; + +import maeilwiki.member.Member; + +record WikiRequest(String question, String questionDetail, String category, boolean isAnonymous) { + + public Wiki toWiki(Member member) { + if (questionDetail == null || questionDetail.isBlank()) { + return new Wiki(question, category, isAnonymous, member); + } + + return new Wiki(question, questionDetail, category, isAnonymous, member); + } +} diff --git a/maeil-wiki/src/main/java/maeilwiki/wiki/WikiService.java b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiService.java new file mode 100644 index 0000000..db9ea1b --- /dev/null +++ b/maeil-wiki/src/main/java/maeilwiki/wiki/WikiService.java @@ -0,0 +1,24 @@ +package maeilwiki.wiki; + +import lombok.RequiredArgsConstructor; +import maeilwiki.member.Member; +import maeilwiki.member.MemberRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +class WikiService { + + private final WikiRepository wikiRepository; + private final MemberRepository memberRepository; + + @Transactional + public void create(WikiRequest request) { + Member temporalMember = new Member("temp", "1234", "GITHUB"); + memberRepository.save(temporalMember); + Wiki wiki = request.toWiki(temporalMember); // TODO : 로그인 구현 + + wikiRepository.save(wiki); + } +}