Skip to content

Commit

Permalink
Merge pull request #28 from GApple-T/boardgame
Browse files Browse the repository at this point in the history
🔀::보드게임 DTO 및 컨트롤러 개발
  • Loading branch information
enbraining authored Dec 18, 2023
2 parents 075daba + 7e6b1d5 commit 580222b
Show file tree
Hide file tree
Showing 14 changed files with 200 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.gapple.weeingback.domain.auth.controller;

import com.gapple.weeingback.domain.auth.dto.*;
import com.gapple.weeingback.domain.auth.service.AuthService;
import com.gapple.weeingback.domain.auth.service.impl.AuthServiceImpl;
import com.gapple.weeingback.global.email.service.impl.EmailServiceImpl;
import jakarta.validation.Valid;
Expand All @@ -15,7 +16,7 @@
@RequestMapping("/api/auth")
@RequiredArgsConstructor
public class AuthController {
private final AuthServiceImpl authService;
private final AuthService authService;

@PostMapping("/join")
public ResponseEntity<AuthJoinResponse> join(@Valid @RequestBody AuthJoinRequest request){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public ResponseEntity<AuthLoginResponse> login(AuthLoginRequest request){
}

@Override
public ResponseEntity sendAuth(EmailCertifyRequest request) {
public ResponseEntity<String> sendAuth(EmailCertifyRequest request) {
return ResponseEntity.ok(emailService.sendMail(request.getEmail()));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.gapple.weeingback.domain.boardgame.controller;

import com.gapple.weeingback.domain.boardgame.entity.Boardgame;
import com.gapple.weeingback.domain.boardgame.entity.dto.request.BoardgameCreateRequest;
import com.gapple.weeingback.domain.boardgame.entity.dto.response.BoardgameCreateResponse;
import com.gapple.weeingback.domain.boardgame.entity.dto.response.BoardgameShowResponse;
import com.gapple.weeingback.domain.boardgame.repository.BoardgameRepository;
import com.gapple.weeingback.domain.boardgame.service.BoardgameService;
import com.gapple.weeingback.domain.boardgame.service.implmentation.BoardgameServiceImpl;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

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

@Controller
@RequiredArgsConstructor
@RequestMapping("/api/boardgame")
public class BoardgameController {
private final BoardgameService boardgameService;

@PostMapping("/create")
public ResponseEntity<BoardgameCreateResponse> createBoardgame(@Valid @RequestBody BoardgameCreateRequest boardgameCreateRequest){
return boardgameService.createBoardgame(boardgameCreateRequest.getMaxOf());
}

@GetMapping("/show-all")
public ResponseEntity<BoardgameShowResponse> showAllBoardgame(){
return boardgameService.showAllBoardgame();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import com.gapple.weeingback.domain.member.entity.Member;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.*;
import org.hibernate.annotations.GenericGenerator;

import java.lang.reflect.Array;
Expand All @@ -15,6 +12,7 @@

@Table
@Entity
@Builder
@Getter @Setter
@NoArgsConstructor
@AllArgsConstructor
Expand All @@ -24,10 +22,24 @@ public class Boardgame {
@GenericGenerator(name="uuid2", strategy = "uuid2")
private UUID id;

@Column
@Column(nullable = false)
private UUID creator;

@Column(nullable = false)
private Long maxOf;

@Column(nullable = false)
private Long joined;

@Column
@OneToMany(fetch = FetchType.LAZY)
@OneToMany(fetch = FetchType.EAGER)
private List<Member> members;

public ToBoardgameDto toDto(Boardgame boardgame){
return new ToBoardgameDto(
boardgame.getMaxOf(),
boardgame.getJoined(),
boardgame.getCreator().toString(),
boardgame.getMembers());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.gapple.weeingback.domain.boardgame.entity;

import com.gapple.weeingback.domain.member.entity.Member;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@Getter
@NoArgsConstructor
@AllArgsConstructor
public class ToBoardgameDto {
private Long maxOf;
private Long joined;
private String creator;
private List<Member> players;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.gapple.weeingback.domain.boardgame.entity.dto.request;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
@AllArgsConstructor
public class BoardgameCreateRequest {
private Long maxOf;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.gapple.weeingback.domain.boardgame.entity.dto.response;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class BoardgameCreateResponse {
private String success;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.gapple.weeingback.domain.boardgame.entity.dto.response;

import com.gapple.weeingback.domain.boardgame.entity.ToBoardgameDto;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.List;

@Getter
@AllArgsConstructor
public class BoardgameShowResponse {
private String success;
private List<ToBoardgameDto> boardgames;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.gapple.weeingback.domain.boardgame.repository;

import com.gapple.weeingback.domain.boardgame.entity.Boardgame;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BoardgameRepository extends JpaRepository<Boardgame, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.gapple.weeingback.domain.boardgame.service;

import com.gapple.weeingback.domain.boardgame.entity.dto.response.BoardgameCreateResponse;
import com.gapple.weeingback.domain.boardgame.entity.dto.response.BoardgameShowResponse;
import org.springframework.http.ResponseEntity;

import java.util.function.LongFunction;

public interface BoardgameService {
ResponseEntity<BoardgameCreateResponse> createBoardgame(Long maxOf);

ResponseEntity<BoardgameShowResponse> showAllBoardgame();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.gapple.weeingback.domain.boardgame.service.implmentation;

import com.gapple.weeingback.domain.boardgame.entity.Boardgame;
import com.gapple.weeingback.domain.boardgame.entity.ToBoardgameDto;
import com.gapple.weeingback.domain.boardgame.entity.dto.response.BoardgameCreateResponse;
import com.gapple.weeingback.domain.boardgame.entity.dto.response.BoardgameShowResponse;
import com.gapple.weeingback.domain.boardgame.repository.BoardgameRepository;
import com.gapple.weeingback.domain.boardgame.service.BoardgameService;
import com.gapple.weeingback.domain.member.entity.Member;
import com.gapple.weeingback.domain.member.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

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

@Service
@Slf4j
@RequiredArgsConstructor
public class BoardgameServiceImpl implements BoardgameService {
private final BoardgameRepository boardgameRepository;
private final MemberRepository memberRepository;

@Override
@Transactional
public ResponseEntity<BoardgameCreateResponse> createBoardgame(Long maxOf) {
String id = SecurityContextHolder.getContext().getAuthentication().getName();
Member member = memberRepository.findMemberById(UUID.fromString(id));

log.info(member.getEmail());

Boardgame boardgame = Boardgame.builder()
.creator(member.getId())
.maxOf(maxOf)
.joined(0L)
.build();

boardgameRepository.save(boardgame);

return ResponseEntity.ok().body(new BoardgameCreateResponse("ok"));
}

@Override
public ResponseEntity<BoardgameShowResponse> showAllBoardgame() {
List<Boardgame> boardgames = boardgameRepository.findAll();
List<ToBoardgameDto> boardgameDtos = new ArrayList<>();
boardgames.forEach(boardgame -> {
boardgameDtos.add(boardgame.toDto(boardgame));
});

return ResponseEntity.ok().body(new BoardgameShowResponse("ok", boardgameDtos));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.gapple.weeingback.domain.consulting.entity.dto.response.ConsultingCancleResponse;
import com.gapple.weeingback.domain.consulting.entity.dto.response.ConsultingShowResponse;
import com.gapple.weeingback.domain.consulting.entity.dto.response.ConsultingSubmitResponse;
import com.gapple.weeingback.domain.consulting.service.implementation.ConsultingServiceImpl;
import com.gapple.weeingback.domain.consulting.service.ConsultingService;
import jakarta.validation.Valid;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand All @@ -15,20 +15,20 @@
@RequestMapping("/api/consulting")
@RequiredArgsConstructor
public class ConsultingController {
private final ConsultingServiceImpl service;
private final ConsultingService consultingService;

@PostMapping("/submit")
public ResponseEntity<ConsultingSubmitResponse> submitConsulting(@Valid @RequestBody ConsultingSubmitRequest request){
return service.submitConsulting(request);
return consultingService.submitConsulting(request);
}

@GetMapping("/list")
public ResponseEntity<ConsultingShowResponse> showConsulting(){
return service.showConsulting();
return consultingService.showConsulting();
}

@GetMapping("/cancle")
public ResponseEntity<ConsultingCancleResponse> cancleConsulting(@Valid @RequestBody ConsultingCancleRequest request){
return service.cancleConsulting(request);
return consultingService.cancleConsulting(request);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class Member implements GrantedAuthority {

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "boardgame_id")
private Boardgame boardgames;
private Boardgame boardgame;

public void addConsulting(Consulting consulting){
this.consulting.add(consulting);
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spring:
open-in-view: false
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
ddl-auto: update
ddl-auto: create-drop
properties:
hibernate:format_sql: true
show-sql: true
Expand Down

0 comments on commit 580222b

Please sign in to comment.