Skip to content
Open
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
2 changes: 1 addition & 1 deletion .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,4 @@ jobs:
sudo docker rm hackathonm || true

sudo docker rmi ${{ secrets.DOCKERHUB_USERNAME }}/hackathonm:latest || true
sudo docker run --name hackathonm -d -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/hackathonm:latest
sudo docker run --name hackathonm -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/hackathonm:latest
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/member")
public class LoginController {
@RequestMapping("/api/v1/member")
public class MemberController {

private final MemberService memberService;

Expand Down
35 changes: 23 additions & 12 deletions src/main/java/hackerthon/demo/controller/SuggestionController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@

import hackerthon.demo.common.dto.Response;
import hackerthon.demo.controller.request.SuggestionCreateRequest;
import hackerthon.demo.controller.response.AcceptSuggetionResponseDto;
import hackerthon.demo.controller.response.GameRoomResponseDto;
import hackerthon.demo.controller.response.SuggestionListResponseDto;
import hackerthon.demo.controller.response.SuggestionResponseDto;
import hackerthon.demo.repository.MemberRepository;
import hackerthon.demo.service.MemberService;
import hackerthon.demo.service.SuggestionService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
Expand All @@ -23,6 +26,7 @@
@Tag(name = "제안 controller", description = "Suggestion API")
public class SuggestionController {

private final MemberRepository memberRepository;
private final SuggestionService suggestionService;

@Operation(
Expand All @@ -41,26 +45,33 @@ public Response<SuggestionResponseDto> suggest(@RequestBody SuggestionCreateRequ
summary = "받은 제안 조회",
responses = @ApiResponse(responseCode = "200", description = "자신이 만든 방에 대해서 받은 제안 요청을 봅니다")
)
@GetMapping("/test2")
public Response<String> getPendingSuggestions(){
return Response.data("success");
@GetMapping("/get")
public Response<List<SuggestionListResponseDto>> getPendingSuggestions(HttpServletRequest request, @RequestParam("gameRoomId") Long gameRoomId){
String serialId = request.getHeader("Authorization");

List<SuggestionListResponseDto> suggestionListResponseDtos = suggestionService.getSuggestions(gameRoomId);

return Response.data(suggestionListResponseDtos);
}


@PostMapping("/accept")
@Operation(
summary = "제안 수락하기",
summary = "제안 수락하기 ",
responses = @ApiResponse(responseCode = "200", description = "제안을 수락합니다.")
)
public Response< AcceptSuggetionResponseDto> acceptSuggestion(HttpServletRequest request, @RequestParam("suggestionId") Long suggestionId) {

AcceptSuggetionResponseDto result = suggestionService.acceptSuggestion(request, suggestionId);
return Response.data(result);
@GetMapping("/accept")
public Response<String> acceptSuggestion(){

return Response.data("success");
}

@GetMapping("/test")
public Response<String> getPendingSuggestion(){
@Operation(
summary = "제안 거절하기 ",
responses = @ApiResponse(responseCode = "200", description = "제안을 거절합니다.")
)
@GetMapping("/rejecct")
public Response<String> rejectSuggestion(){
// suggestionService.rejectSuggestion();
return Response.data("success");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import lombok.Builder;
import lombok.Getter;

import java.util.ArrayList;

@Getter
public class GameRoomCreateRequest {

Expand Down Expand Up @@ -44,6 +46,7 @@ public static GameRoom toEntity(GameRoomCreateRequest request, Member host) {
.gameType(request.getGameType())
.roomStatus(RoomStatus.RECRUIT)
.host(host)
.gifticons(new ArrayList<>())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AcceptSuggetionResponseDto {
public class AcceptSuggestionResponseDto {

private Long hostId;
private Long suggesterId;
private Long gameRoomId;

public static AcceptSuggetionResponseDto resultDto(Long hostId, Long suggesterId, Long gameRoomId) {
return AcceptSuggetionResponseDto.builder()
public static AcceptSuggestionResponseDto resultDto(Long hostId, Long suggesterId, Long gameRoomId) {
return AcceptSuggestionResponseDto.builder()
.hostId(hostId)
.suggesterId(suggesterId)
.gameRoomId(gameRoomId)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package hackerthon.demo.controller.response;

import hackerthon.demo.domain.Suggestion;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;

@Getter
@AllArgsConstructor
@Builder
public class SuggestionListResponseDto {

private Long suggestionId;
private Long gifticonId;
private String gifticonImageUrl;
private String brand;
private String name;
private Long suggesterId;

public static SuggestionListResponseDto fromEntity(Suggestion suggestion) {
return SuggestionListResponseDto.builder()
.suggesterId(suggestion.getId())
.gifticonId(suggestion.getGifticon().getId())
.gifticonImageUrl(suggestion.getGifticon().getImageUrl())
.brand(suggestion.getGifticon().getBrand())
.name(suggestion.getGifticon().getName())
.suggesterId(suggestion.getSuggester().getId())
.build();
}
}
29 changes: 0 additions & 29 deletions src/main/java/hackerthon/demo/domain/PlayerGameRoom.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@

import hackerthon.demo.domain.Suggestion;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

public interface SuggestionRepository extends JpaRepository<Suggestion, Long> {

@Query("select s from Suggestion s where s.gameRoom.id = :gameRoomId")
List<Suggestion> findByGameRoomId(Long gameRoomId);
}
26 changes: 11 additions & 15 deletions src/main/java/hackerthon/demo/service/SuggestionService.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package hackerthon.demo.service;

import hackerthon.demo.controller.request.SuggestionCreateRequest;
import hackerthon.demo.controller.response.AcceptSuggetionResponseDto;
import hackerthon.demo.controller.response.SuggestionListResponseDto;
import hackerthon.demo.controller.response.SuggestionResponseDto;
import hackerthon.demo.domain.GameRoom;
import hackerthon.demo.domain.Gifticon;
Expand All @@ -13,10 +13,11 @@
import hackerthon.demo.repository.SuggestionRepository;
import jakarta.persistence.EntityNotFoundException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@RequiredArgsConstructor
public class SuggestionService {
Expand All @@ -39,19 +40,14 @@ public SuggestionResponseDto createSuggestion(SuggestionCreateRequest request, H

}

@Transactional
public AcceptSuggetionResponseDto acceptSuggestion(HttpServletRequest request, Long suggestionId){
String serialId = request.getHeader("Authorization");
Member member = memberRepository.findBySerialId(serialId).orElseThrow(() -> new EntityNotFoundException("해당 사용자 존재하지 않음"));

Suggestion suggestion = suggestionRepository.findById(suggestionId).orElseThrow(() -> new EntityNotFoundException("해당 제안 존재하지 않음"));
GameRoom gameRoom = gameRoomRepository.findById(suggestion.getGameRoom().getId()).orElseThrow(() -> new EntityNotFoundException("해당 게임방 존재하지 않음"));
public List<SuggestionListResponseDto> getSuggestions(Long gameRoomId) {
List<Suggestion> suggestions = suggestionRepository.findByGameRoomId(gameRoomId);
List<SuggestionListResponseDto> suggestionListResponseDtos =suggestions.stream()
.map(suggestion -> {
SuggestionListResponseDto suggestionListResponseDto = SuggestionListResponseDto.fromEntity(suggestion);
return suggestionListResponseDto;
}).toList();

gameRoom.getGifticons().add(suggestion.getGifticon());
gameRoomRepository.save(gameRoom);

AcceptSuggetionResponseDto acceptSuggetionResponseDto = AcceptSuggetionResponseDto.resultDto(member.getId(), suggestion.getSuggester().getId(), gameRoom.getId());
return acceptSuggetionResponseDto;
return suggestionListResponseDtos;
}

}
35 changes: 0 additions & 35 deletions src/main/resources/application.yml

This file was deleted.