Skip to content

Commit

Permalink
test: 이미지 삭제 테스트 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
Arachneee committed Oct 8, 2024
1 parent 95ae8dd commit 83b4221
Show file tree
Hide file tree
Showing 30 changed files with 130 additions and 77 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import server.haengdong.application.response.EventAppResponse;
import server.haengdong.application.response.EventDetailAppResponse;
import server.haengdong.application.response.EventImageAppResponse;
import server.haengdong.application.response.ImageNameAppResponse;
import server.haengdong.application.response.MemberBillReportAppResponse;
import server.haengdong.domain.bill.Bill;
import server.haengdong.domain.bill.BillRepository;
Expand Down Expand Up @@ -103,11 +102,11 @@ public void updateEvent(String token, EventUpdateAppRequest request) {
}

@Transactional
public void saveImages(String token, List<ImageNameAppResponse> imageNames) {
public void saveImages(String token, List<String> imageNames) {
Event event = getEvent(token);

List<EventImage> images = imageNames.stream()
.map(imageNameAppResponse -> imageNameAppResponse.toEventImage(event))
.map(imageName -> new EventImage(event, imageName))
.toList();

eventImageRepository.saveAll(images);
Expand All @@ -118,10 +117,14 @@ public List<EventImageAppResponse> findImages(String token) {

return eventImageRepository.findAllByEvent(event)
.stream()
.map(image -> new EventImageAppResponse(baseUrl + image.getName()))
.map(image -> new EventImageAppResponse(image.getId(), createUrl(image)))
.toList();
}

private String createUrl(EventImage image) {
return baseUrl + image.getName();
}

@Transactional
public String deleteImage(String token, Long imageId) {
EventImage eventImage = eventImageRepository.findById(imageId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@Slf4j
@RequiredArgsConstructor
@Service
public class ImageUploadService {
public class ImageService {

@Value("${image.bucket}")
private String bucketName;
Expand All @@ -31,16 +31,15 @@ public class ImageUploadService {

private final S3Client s3Client;

public List<ImageNameAppResponse> uploadImages(List<MultipartFile> images) {
public List<String> uploadImages(List<MultipartFile> images) {
return images.stream()
.map(this::uploadImage)
.toList();
}

private ImageNameAppResponse uploadImage(MultipartFile image) {
private String uploadImage(MultipartFile image) {
try (InputStream inputStream = image.getInputStream()) {
String fileName = uploadImageToStorage(inputStream, image);
return new ImageNameAppResponse(fileName);
return uploadImageToStorage(inputStream, image);
} catch (IOException e) {
throw new HaengdongException(HaengdongErrorCode.IMAGE_UPLOAD_FAIL);
}
Expand All @@ -61,4 +60,13 @@ private String uploadImageToStorage(InputStream inputStream, MultipartFile image
s3Client.putObject(putObjectRequest, fromInputStream(inputStream, contentLength));
return imageName;
}

public void deleteImage(String imageName) {
DeleteObjectRequest deleteObjectRequest = DeleteObjectRequest.builder()
.bucket(bucketName)
.key(directoryPath + imageName)
.build();

s3Client.deleteObject(deleteObjectRequest);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public record BillAppResponse(
Long price,
boolean isFixed
) {

public static BillAppResponse of(Bill bill) {
return new BillAppResponse(bill.getId(), bill.getTitle(), bill.getPrice(), bill.isFixed());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package server.haengdong.application.response;

public record EventImageAppResponse(
Long id,
String url
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public record MemberAppResponse(
Long id,
String name
) {

public static MemberAppResponse of(Member member) {
return new MemberAppResponse(member.getId(), member.getName());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public record MemberDepositAppResponse(
String name,
boolean isDeposited
) {

public static MemberDepositAppResponse of(Member member) {
return new MemberDepositAppResponse(member.getId(), member.getName(), member.isDeposited());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public record MemberSaveAppResponse(
Long id,
String name
) {

public static MemberSaveAppResponse of(Member member) {
return new MemberSaveAppResponse(member.getId(), member.getName());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
public record MembersSaveAppResponse(
List<MemberSaveAppResponse> members
) {

public static MembersSaveAppResponse of(List<Member> members) {
return new MembersSaveAppResponse(
members.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public record StepAppResponse(
List<BillAppResponse> bills,
List<MemberAppResponse> members
) {

public static StepAppResponse of(Step step) {
List<BillAppResponse> billAppResponses = step.getBills().stream()
.map(BillAppResponse::of)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ public enum HaengdongErrorCode {

DIFFERENT_STEP_MEMBERS("참여자 목록이 일치하지 않습니다."),

IMAGE_NOT_FOUND("존재하지 않는 이미지 입니다."),

/* Authentication */

PASSWORD_INVALID("비밀번호가 일치하지 않습니다."),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
Expand All @@ -13,7 +14,7 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import server.haengdong.application.EventService;
import server.haengdong.application.ImageUploadService;
import server.haengdong.application.ImageService;
import server.haengdong.application.response.ImageNameAppResponse;
import server.haengdong.presentation.request.EventUpdateRequest;

Expand All @@ -23,12 +24,13 @@
public class AdminEventController {

private final EventService eventService;
private final ImageUploadService imageUploadService;
private final ImageService imageUploadService;

@PostMapping("/api/admin/events/{eventId}/auth")
public ResponseEntity<Void> authenticate() {
return ResponseEntity.ok().build();
}

@PatchMapping("/api/admin/events/{eventId}")
public ResponseEntity<Void> updateEvent(
@PathVariable("eventId") String token,
Expand All @@ -40,12 +42,14 @@ public ResponseEntity<Void> updateEvent(
}

@PostMapping("/api/admin/events/{eventId}/images")
public void uploadImages(
public ResponseEntity<Void> uploadImages(
@PathVariable("eventId") String token,
@RequestPart("images") List<MultipartFile> images
) {
List<ImageNameAppResponse> imageNames = imageUploadService.uploadImages(images);
List<String> imageNames = imageUploadService.uploadImages(images);
eventService.saveImages(token, imageNames);

return ResponseEntity.ok().build();
}

@DeleteMapping("/api/admin/events/{eventId}/images/{imageId}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public record BillDetailUpdateRequest(

boolean isFixed
) {

public BillDetailUpdateAppRequest toAppRequest() {
return new BillDetailUpdateAppRequest(this.id, this.price, this.isFixed);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@
import server.haengdong.application.request.BillDetailsUpdateAppRequest;

public record BillDetailsUpdateRequest(
@Valid @NotEmpty List<BillDetailUpdateRequest> billDetails

@Valid
@NotEmpty
List<BillDetailUpdateRequest> billDetails
) {

public BillDetailsUpdateAppRequest toAppRequest() {
return new BillDetailsUpdateAppRequest(billDetails.stream()
.map(BillDetailUpdateRequest::toAppRequest)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public record BillUpdateRequest(
@NotNull(message = "지출 금액은 공백일 수 없습니다.")
Long price
) {

public BillUpdateAppRequest toAppResponse() {
return new BillUpdateAppRequest(title, price);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public record EventLoginRequest(
@NotBlank(message = "비밀번호는 공백일 수 없습니다.")
String password
) {

public EventLoginAppRequest toAppRequest(String token) {
return new EventLoginAppRequest(token, password);
}
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
import server.haengdong.application.request.MemberSaveAppRequest;
import server.haengdong.application.request.MembersSaveAppRequest;

public record MembersSaveRequest(List<MemberSaveRequest> members) {
public record MembersSaveRequest(
List<MemberSaveRequest> members
) {

public MembersSaveAppRequest toAppRequest() {
return new MembersSaveAppRequest(members.stream()
.map(member -> new MemberSaveAppRequest(member.name()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public record BillResponse(
Long price,
boolean isFixed
) {

public static BillResponse of(BillAppResponse response) {
return new BillResponse(response.id(), response.title(), response.price(), response.isFixed());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package server.haengdong.presentation.response;

import server.haengdong.application.response.EventImageAppResponse;

public record EventImageResponse(
Long id,
String url
) {

public static EventImageResponse of(EventImageAppResponse response) {
return new EventImageResponse(response.id(), response.url());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
import java.util.List;
import server.haengdong.application.response.EventImageAppResponse;

public record EventImagesResponse(List<String> urls) {
public static EventImagesResponse of(List<EventImageAppResponse> images) {
List<String> urls = images.stream()
.map(EventImageAppResponse::url)
public record EventImagesResponse(List<EventImageResponse> images) {

public static EventImagesResponse of(List<EventImageAppResponse> responses) {
List<EventImageResponse> images = responses.stream()
.map(EventImageResponse::of)
.toList();

return new EventImagesResponse(urls);
return new EventImagesResponse(images);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public record MemberSaveResponse(
Long id,
String name
) {

public static MemberSaveResponse of(MemberSaveAppResponse response) {
return new MemberSaveResponse(response.id(), response.name());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
public record MembersSaveResponse(
List<MemberSaveResponse> members
) {

public static MembersSaveResponse of(MembersSaveAppResponse response) {
return new MembersSaveResponse(
response.members().stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public record StepResponse(
List<BillResponse> bills,
List<MemberResponse> members
) {

public static StepResponse of(StepAppResponse response) {
List<BillResponse> bills = response.bills().stream()
.map(BillResponse::of)
Expand All @@ -16,7 +17,6 @@ public static StepResponse of(StepAppResponse response) {
.map(MemberResponse::of)
.toList();
return new StepResponse(bills, members);

}
}

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
public record StepsResponse(
List<StepResponse> steps
) {

public static StepsResponse of(List<StepAppResponse> steps) {
return new StepsResponse(steps.stream()
.map(StepResponse::of)
Expand Down
Loading

0 comments on commit 83b4221

Please sign in to comment.