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

[#86] 활동 삭제 및 수정 기능 수정 #87

Merged
merged 4 commits into from
May 23, 2024
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 @@ -5,6 +5,8 @@
import com.hobak.happinessql.domain.activity.dto.*;
import com.hobak.happinessql.domain.user.application.UserFindService;
import com.hobak.happinessql.domain.user.domain.User;
import com.hobak.happinessql.global.exception.GeneralException;
import com.hobak.happinessql.global.response.Code;
import com.hobak.happinessql.global.response.DataResponseDto;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
Expand Down Expand Up @@ -46,17 +48,30 @@ public DataResponseDto<ActivityResponseDto> createActivity(@RequestBody Activity

@Operation(summary = "활동 삭제", description = "기타 카테고리에 있는 활동을 삭제합니다.")
@DeleteMapping("/{activityId}")
public DataResponseDto<ActivityResponseDto> deleteActivity(@PathVariable Long activityId){
activityDeleteService.deleteActivity(activityId);
ActivityResponseDto responseDto = ActivityConverter.toActivityResponseDto(activityId);
return DataResponseDto.of(responseDto, "활동을 성공적으로 삭제했습니다.");
public DataResponseDto<ActivityResponseDto> deleteActivity(@PathVariable Long activityId, @AuthenticationPrincipal UserDetails userDetails){
User user = userFindService.findByUserDetails(userDetails);
Long deleteActivityId = activityDeleteService.deleteActivity(activityId, user);
if(deleteActivityId != null) {
ActivityResponseDto responseDto = ActivityConverter.toActivityResponseDto(deleteActivityId);
return DataResponseDto.of(responseDto, "활동을 성공적으로 삭제했습니다.");
}
else {
throw new GeneralException(Code.INTERNAL_ERROR,"본인이 추가하지 않은 활동은 삭제가 불가합니다.");
}

}

@Operation(summary = "활동 수정", description = "기타 카테고리에 있는 활동을 수정합니다.")
@PutMapping("/{activityId}")
public DataResponseDto<ActivityUpdateResponseDto> updateActicity(@PathVariable Long activityId, @RequestBody ActivityUpdateRequestDto requestDto){
ActivityUpdateResponseDto responseDto = activityUpdateService.updateActivity(activityId,requestDto);
return DataResponseDto.of(responseDto,"활동을 성공적으로 수정했습니다.");
public DataResponseDto<ActivityUpdateResponseDto> updateActivity(@PathVariable Long activityId, @RequestBody ActivityUpdateRequestDto requestDto, @AuthenticationPrincipal UserDetails userDetails){
User user = userFindService.findByUserDetails(userDetails);
ActivityUpdateResponseDto responseDto = activityUpdateService.updateActivity(activityId,requestDto, user);
if(responseDto != null){
return DataResponseDto.of(responseDto,"활동을 성공적으로 수정했습니다.");
}
else {
throw new GeneralException(Code.INTERNAL_ERROR,"본인이 추가하지 않은 활동은 수정이 불가합니다.");
}
}

@Operation(summary = "활동 검색", description = "유저가 갖고 있는 활동을 검색합니다. (활동의 description에 있는 내용은 아직 검색되지 않습니다.)")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.hobak.happinessql.domain.activity.domain.Activity;
import com.hobak.happinessql.domain.activity.exception.ActivityNotFoundException;
import com.hobak.happinessql.domain.activity.repository.ActivityRepository;
import com.hobak.happinessql.domain.user.domain.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -13,9 +14,13 @@
@RequiredArgsConstructor
public class ActivityDeleteService {
private final ActivityRepository activityRepository;
public void deleteActivity(Long activityId){
public Long deleteActivity(Long activityId, User user){
Activity activity = activityRepository.findById(activityId)
.orElseThrow(()->new ActivityNotFoundException("Activity with id " + activityId));
activityRepository.delete(activity);
if(activity.getCategory().getUserId().equals(user.getUserId())) {
activityRepository.delete(activity);
return activity.getActivityId();
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.hobak.happinessql.domain.activity.dto.ActivityUpdateResponseDto;
import com.hobak.happinessql.domain.activity.exception.ActivityNotFoundException;
import com.hobak.happinessql.domain.activity.repository.ActivityRepository;
import com.hobak.happinessql.domain.user.domain.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -16,11 +17,14 @@
public class ActivityUpdateService {
private final ActivityRepository activityRepository;

public ActivityUpdateResponseDto updateActivity(Long activityId, ActivityUpdateRequestDto requestDto){
public ActivityUpdateResponseDto updateActivity(Long activityId, ActivityUpdateRequestDto requestDto, User user){
Activity activity = activityRepository.findById(activityId)
.orElseThrow(()-> new ActivityNotFoundException("Activity with id " + activityId));
activity.updateName(requestDto.getName());
return ActivityConverter.toActivityUpdateResponseDto(activity);
if(activity.getCategory().getUserId().equals(user.getUserId())) {
activity.updateName(requestDto.getName());
return ActivityConverter.toActivityUpdateResponseDto(activity);
}
return null;
}

}
Loading