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
Expand Up @@ -6,14 +6,14 @@
import com.groom.yummy.group.dto.request.JoinGroupRequestDto;
import com.groom.yummy.group.dto.response.GroupDetailResponseDto;
import com.groom.yummy.group.dto.response.GroupResponseDto;
import com.groom.yummy.oauth2.auth.LoginUser;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;

import java.util.List;
Expand All @@ -30,15 +30,23 @@ public class GroupController {
@Operation(summary = "소모임 생성", description = "소모임을 생성합니다.")
@PostMapping
public ResponseEntity<ResponseDto<GroupResponseDto>> createGroup(
@Valid @RequestBody CreateGroupRequestDto requestDto
@Valid @RequestBody CreateGroupRequestDto requestDto,
@AuthenticationPrincipal LoginUser loginUser
) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String userEmail = authentication.getName();
Long userId = loginUser.getUserId();
Long groupId = groupService.createGroup(
requestDto.getStoreId(),
userId,
requestDto.getTitle(),
requestDto.getContent(),
requestDto.getMaxParticipants(),
requestDto.getMinParticipants(),
requestDto.getMeetingDate()
);

Long groupId = groupService.createGroup(requestDto.toGroupDomain(), userEmail);
GroupResponseDto response = groupService.findGroupById(groupId)
.map(GroupResponseDto::fromGroupDomain)
.orElseThrow(() -> new IllegalArgumentException("소모임 생성 실패"));
.orElseThrow();

return ResponseEntity.status(HttpStatus.CREATED)
.body(new ResponseDto<>(response, "소모임 생성 성공"));
Expand Down Expand Up @@ -76,13 +84,11 @@ public ResponseEntity<ResponseDto<GroupDetailResponseDto>> getGroupById(
@PostMapping("/{groupId}/join")
public ResponseEntity<ResponseDto<Void>> joinGroup(
@PathVariable Long groupId,
@Valid @RequestBody JoinGroupRequestDto request
@Valid @RequestBody JoinGroupRequestDto requestDto,
@AuthenticationPrincipal LoginUser loginUser
) {

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String userEmail = authentication.getName();

groupService.joinGroup(groupId, request.getUserId(), userEmail);
Long userId = loginUser.getUserId();
groupService.joinGroup(groupId, userId, requestDto.getStoreId());
return ResponseEntity.ok(new ResponseDto<>(null, "소모임 참여 성공"));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,24 +48,6 @@ public ResponseEntity<ResponseDto<Void>> syncStores(@RequestParam String regionC
.body(new ResponseDto<>(null, "가게 데이터 동기화 중 오류 발생"));
}
}
@Operation(summary = "가게 정보 조회", description = "가게 id로 가게를 조회합니다.")
@GetMapping("/{storeId}")
public ResponseEntity<ResponseDto<StoreResponseDto>> getStore(@PathVariable("storeId") Long storeId) {
StoreResponseDto storeResponseDTO = storeApiClient.getStoreByApi(storeId);
return ResponseEntity.ok(ResponseDto.of(storeResponseDTO,"storeId로 가게 조회 성공"));
}

@Operation(summary = "가게 조회", description = "가게들을 정렬 기준에 맞게 조회합니다.")
@GetMapping
public ResponseEntity<ApiResponse<StoreListResponse>> getStoresByFilters(
@RequestParam(name = "category", required = false) Category category,
@RequestParam(name = "regionId", required = false) Long regionId,
@RequestParam(name = "name", required = false) String name,
@RequestParam(name = "page", defaultValue = "1") int page,
@RequestParam(name = "size", defaultValue = "10") int size) {
ApiResponse<StoreListResponse> storeListResponseApiResponse = storeApiClient.getStoresByFilters(category, regionId,name,page,size);
return ResponseEntity.ok(storeListResponseApiResponse);
}
}


Loading
Loading