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 @@ -43,5 +43,5 @@ public interface PetGroupControllerDocs {

@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "참고사항 수정에 성공하였습니다.")
@Operation(summary = "참고사항 수정 API")
ResponseEntity<ApiResponse<Void>> updateNote(@PathVariable final Long groupId, @RequestBody final UpdateNoteRequestDto request);
ResponseEntity<ApiResponse<Void>> updateNote(@Authenticated final Long memberId, @PathVariable final Long groupId, @RequestBody final UpdateNoteRequestDto request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public ResponseEntity<ApiResponse<GetJoinCodeResponseDto>> getJoinCode(
@Authenticated final Long memberId,
@PathVariable final Long groupId
) {
final GetJoinCodeDto dto = petGroupService.getPetGroupJoinCode(memberId, groupId);
final GetJoinCodeDto dto = petGroupService.getJoinCode(memberId, groupId);
final GetJoinCodeResponseDto response = new GetJoinCodeResponseDto(dto.joinCode());

return ResponseEntity.ok(
Expand All @@ -117,9 +117,12 @@ public ResponseEntity<ApiResponse<GetNoteResponseDto>> getNote(

@PatchMapping("/{groupId}/note")
public ResponseEntity<ApiResponse<Void>> updateNote(
@Authenticated final Long memberId,
@PathVariable final Long groupId,
@RequestBody final UpdateNoteRequestDto request
) {
petGroupService.updateNote(memberId, groupId, request.note());

return ResponseEntity.ok(
ApiResponse.success(UPDATE_NOTE)
);
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/petlog/petgroup/entity/PetGroup.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,8 @@ public PetGroup(
this.joinCode = joinCode;
this.note = note;
}

public void updateNote(final String note) {
this.note = note;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.springframework.data.jpa.repository.Query;

import java.util.List;
import java.util.Optional;

public interface PetGroupMemberRepository extends JpaRepository<PetGroupMember, Long> {

Expand All @@ -27,4 +28,6 @@ public interface PetGroupMemberRepository extends JpaRepository<PetGroupMember,
void deleteByMemberIdAndGroupId(final Long memberId, final Long groupId);

boolean existsByMemberAndPetGroup(final Member member, final PetGroup group);

Optional<PetGroupMember> findByMemberAndPetGroup(final Member member, final PetGroup group);
}
24 changes: 23 additions & 1 deletion src/main/java/com/petlog/petgroup/service/PetGroupService.java
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ private void validateMemberInPetGroup(final Member member, final PetGroup petGro
}

@Transactional(readOnly = true)
public GetJoinCodeDto getPetGroupJoinCode(final Long memberId, final Long groupId) {
public GetJoinCodeDto getJoinCode(final Long memberId, final Long groupId) {
final Member member = getMember(memberId);
final PetGroup petGroup = getPetGroup(groupId);
validateMemberInPetGroup(member, petGroup);
Expand All @@ -147,4 +147,26 @@ public GetNoteDto getNote(final Long memberId, final Long groupId) {

return new GetNoteDto(petGroup.getNote());
}

@Transactional
public void updateNote(final Long memberId, final Long groupId, final String note) {
final Member member = getMember(memberId);
final PetGroup petGroup = getPetGroup(groupId);
final PetGroupMember petGroupMember = getPetGroupMember(member, petGroup);

validateMemberIsGroupOwner(petGroupMember);

petGroup.updateNote(note);
}

private PetGroupMember getPetGroupMember(final Member member, final PetGroup petGroup) {
return petGroupMemberRepository.findByMemberAndPetGroup(member, petGroup)
.orElseThrow(() -> new IllegalArgumentException("그룹에 존재하지 않는 회원입니다."));
}

private void validateMemberIsGroupOwner(final PetGroupMember petGroupMember) {
if(!petGroupMember.isGroupOwner()) {
throw new IllegalArgumentException("참고사항 수정은 그룹장만 할 수 있습니다.");
}
}
}
Loading