Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

πŸ”€::λ³΄λ“œκ²Œμž„ DTO 및 컨트둀러 개발 #28

Merged
merged 1 commit into from
Dec 18, 2023
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
@@ -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