Skip to content

Commit

Permalink
[Fix] 운동 평가 작성 MultipartFile 받기
Browse files Browse the repository at this point in the history
  • Loading branch information
hyojin425 committed Aug 13, 2024
1 parent d7cc4e0 commit 2457efe
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@

public class RateDiaryConverter {

public static RateDiary toEntity(RateDiaryDto.RateDiaryWriteRequestDTO dto, ExerciseCard exerciseCard, Member member) {
public static RateDiary toEntity(String imageUrl, RateDiaryDto.RateDiaryWriteRequestDTO dto, ExerciseCard exerciseCard, Member member) {
String bodyPart = exerciseCard.getBodyPart().toString();

return RateDiary.builder()
.exerciseCard(exerciseCard)
.bodyPart(bodyPart)
.conditionRate(dto.getConditionRate())
.painRate(dto.getPainRate())
.painImage(dto.getPainImage())
.painImage(imageUrl)
.painMemo(dto.getPainMemo())
.member(member)
.date(LocalDate.now())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

import com.example.stepperbackend.domain.RateDiary;
import com.example.stepperbackend.web.dto.RateDiaryDto;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;


public interface RateDiaryService {

public RateDiaryDto.RateDiaryWriteResponseDTO writeDiary(RateDiaryDto.RateDiaryWriteRequestDTO request, String memberEmail);
public RateDiaryDto.RateDiaryWriteResponseDTO writeDiary(MultipartFile image, RateDiaryDto.RateDiaryWriteRequestDTO request, String memberEmail);

public List<RateDiary> checkRateDiary (String memberEmail);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
import com.example.stepperbackend.domain.*;
import com.example.stepperbackend.domain.mapping.Badge;
import com.example.stepperbackend.repository.*;
import com.example.stepperbackend.service.S3Service;
import com.example.stepperbackend.service.badgeService.BadgeService;
import com.example.stepperbackend.web.dto.RateDiaryDto;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Optional;
Expand All @@ -26,8 +28,9 @@ public class RateDiaryServiceImpl implements RateDiaryService {
private final ExerciseCardRepository exerciseCardRepository;

private final BadgeService badgeService;
private final S3Service s3Service;

public RateDiaryDto.RateDiaryWriteResponseDTO writeDiary(RateDiaryDto.RateDiaryWriteRequestDTO request, String memberEmail) {
public RateDiaryDto.RateDiaryWriteResponseDTO writeDiary(MultipartFile image, RateDiaryDto.RateDiaryWriteRequestDTO request, String memberEmail) {
Member member = memberRepository.findByEmail(memberEmail)
.orElseThrow(() -> new MemberHandler(ErrorStatus.MEMBER_NOT_FOUND));

Expand All @@ -38,7 +41,9 @@ public RateDiaryDto.RateDiaryWriteResponseDTO writeDiary(RateDiaryDto.RateDiaryW
throw new RateDiaryHandler(ErrorStatus.EXERCISE_CARD_DOES_NOT_BELONG_TO_USER);
}

RateDiary rateDiary = RateDiaryConverter.toEntity(request, exerciseCard, member);
String imageUrl = s3Service.saveFile(image);

RateDiary rateDiary = RateDiaryConverter.toEntity(imageUrl, request, exerciseCard, member);
rateDiaryRepository.save(rateDiary);

exerciseCard.setStatus(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

Expand All @@ -23,10 +24,11 @@ public class RateDiaryController {

@PostMapping("/write")
@Operation(summary = "평가일지 작성 API", description = "평가일지 작성")
public ApiResponse<RateDiaryDto.RateDiaryWriteResponseDTO> Write(@RequestBody @Valid RateDiaryDto.RateDiaryWriteRequestDTO request) {
public ApiResponse<RateDiaryDto.RateDiaryWriteResponseDTO> Write(@RequestPart(value = "image", required = false) MultipartFile image,
@RequestPart(value = "request") @Valid RateDiaryDto.RateDiaryWriteRequestDTO request) {
String memberId = SecurityContextHolder.getContext().getAuthentication().getName();

RateDiaryDto.RateDiaryWriteResponseDTO rateDiary = rateDiaryService.writeDiary(request, memberId);
RateDiaryDto.RateDiaryWriteResponseDTO rateDiary = rateDiaryService.writeDiary(image, request, memberId);
return ApiResponse.onSuccess(rateDiary);
}

Expand Down

0 comments on commit 2457efe

Please sign in to comment.