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
2 changes: 1 addition & 1 deletion src/main/java/com/petlog/docs/PetGroupControllerDocs.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public interface PetGroupControllerDocs {

@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "초대코드 조회에 성공하였습니다.")
@Operation(summary = "초대코드 조회 API")
ResponseEntity<ApiResponse<GetJoinCodeResponseDto>> getJoinCode(@PathVariable final Long groupId);
ResponseEntity<ApiResponse<GetJoinCodeResponseDto>> getJoinCode(@Authenticated final Long memberId, @PathVariable final Long groupId);

@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "참고사항 조회에 성공하였습니다.")
@Operation(summary = "참고사항 조회 API")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.petlog.petgroup.controller.dto.response.GetNoteResponseDto;
import com.petlog.petgroup.service.PetGroupService;
import com.petlog.petgroup.service.dto.CreatePetGroupDto;
import com.petlog.petgroup.service.dto.GetJoinCodeDto;
import com.petlog.petgroup.service.dto.GetMyPetGroupDto;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
Expand Down Expand Up @@ -89,9 +90,11 @@ public ResponseEntity<ApiResponse<Void>> leavePetGroup(

@GetMapping("/{groupId}/invite")
public ResponseEntity<ApiResponse<GetJoinCodeResponseDto>> getJoinCode(
@Authenticated final Long memberId,
@PathVariable final Long groupId
) {
final GetJoinCodeResponseDto response = new GetJoinCodeResponseDto("123ABC");
final GetJoinCodeDto dto = petGroupService.getPetGroupJoinCode(memberId, groupId);
final GetJoinCodeResponseDto response = new GetJoinCodeResponseDto(dto.joinCode());

return ResponseEntity.ok(
ApiResponse.successWithData(GET_JOIN_CODE, response)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,4 @@ public record GetJoinCodeResponseDto(
String joinCode

) {

public GetJoinCodeResponseDto(final String joinCode) {
this.joinCode = joinCode;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.petlog.petgroup.repository;

import com.petlog.member.entity.Member;
import com.petlog.petgroup.entity.PetGroup;
import com.petlog.petgroup.entity.PetGroupMember;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
Expand All @@ -23,4 +25,6 @@ public interface PetGroupMemberRepository extends JpaRepository<PetGroupMember,
AND pgm.petGroup.id = :groupId
""")
void deleteByMemberIdAndGroupId(final Long memberId, final Long groupId);

boolean existsByMemberAndPetGroup(final Member member, final PetGroup group);
}
20 changes: 20 additions & 0 deletions src/main/java/com/petlog/petgroup/service/PetGroupService.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import com.petlog.petgroup.repository.PetGroupMemberRepository;
import com.petlog.petgroup.repository.PetGroupRepository;
import com.petlog.petgroup.service.dto.CreatePetGroupDto;
import com.petlog.petgroup.service.dto.GetJoinCodeDto;
import com.petlog.petgroup.service.dto.GetMyPetGroupDto;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -117,4 +118,23 @@ private void validatePetGroupIsExist(final Long petGroupId) {
petGroupRepository.findById(petGroupId)
.orElseThrow(() -> new IllegalArgumentException("존재하지 않는 그룹입니다."));
}

public GetJoinCodeDto getPetGroupJoinCode(final Long memberId, final Long groupId) {
final Member member = getMember(memberId);
final PetGroup petGroup = getPetGroup(groupId);
validateMemberInPetGroup(member, petGroup);

return new GetJoinCodeDto(petGroup.getJoinCode());
}

private PetGroup getPetGroup(final Long groupId) {
return petGroupRepository.findById(groupId)
.orElseThrow(() -> new IllegalArgumentException("존재하지 않는 그룹입니다."));
}

private void validateMemberInPetGroup(final Member member, final PetGroup petGroup) {
if(!petGroupMemberRepository.existsByMemberAndPetGroup(member, petGroup)) {
throw new IllegalArgumentException("그룹에 존재하지 않는 회원입니다.");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.petlog.petgroup.service.dto;

public record GetJoinCodeDto(

String joinCode

) {
}
Loading