Skip to content

Commit

Permalink
Merge pull request #102 from BbeumbungE/feat/refactor
Browse files Browse the repository at this point in the history
refactor:클래스 기반 프로젝션 적용 및 테스트
  • Loading branch information
Fishphobiagg authored Jan 8, 2024
2 parents 7921834 + ef58370 commit 9ee7c4a
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public ResponseEntity<Response> updateSketchAndCanvas(
log.info(profileId + "번 프로필의 " + canvasId + "번 그림에 대한 변환 요청");
String sketch = s3ImageUploadService.uploadFile(sketchFile, s3PathBuildService.buildPath(profileId, "sketch"));
Response response = canvasConvertService.updateSketchAndCanvas(profileId, canvasId, sketch);
return ResponseEntity.status(HttpStatus.OK).body(response);
return ResponseEntity.status(HttpStatus.NO_CONTENT).body(response);
}

@PostMapping("/demo/subject/{subjectId}/tempId/{tempId}")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
package com.siliconvalley.domain.canvas.dao;

import com.siliconvalley.domain.canvas.domain.Canvas;
import com.siliconvalley.domain.canvas.dto.CanvasDto;
import com.siliconvalley.domain.canvas.dto.CanvasListSummary;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;
import org.springframework.data.jpa.repository.Query;

public interface CanvasRepository extends JpaRepository<Canvas, Long> {

@Query("SELECT new com.siliconvalley.domain.canvas.dto.CanvasDto(c.id, c.canvas) FROM Canvas c WHERE c.profileId = ?1")
List<CanvasDto> findCanvasByProfileId(Long profileId);
List<CanvasListSummary> findByProfileId(Long profileId);
Optional<Canvas> findCanvasByIdAndProfileId(Long canvasId, Long profileId);
}
20 changes: 20 additions & 0 deletions src/main/java/com/siliconvalley/domain/canvas/dto/CanvasDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.siliconvalley.domain.canvas.dto;

import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class CanvasDto {

private Long canvasId;
private String canvasUrl;

@Builder
public CanvasDto(Long canvasId, String canvasUrl){
this.canvasId = canvasId;
this.canvasUrl = canvasUrl;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ public static class Status {
private String message;
}


/**
* 응답 코드와 내용으로 응답 객체를 생성한다.
*
Expand Down
18 changes: 18 additions & 0 deletions src/test/java/com/siliconvalley/canvas/ProjectionTest.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.siliconvalley.canvas;

import com.siliconvalley.domain.canvas.dao.CanvasRepository;
import com.siliconvalley.domain.canvas.dto.CanvasDto;
import com.siliconvalley.domain.canvas.dto.CanvasListSummary;
import java.util.List;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
Expand Down Expand Up @@ -33,4 +35,20 @@ public class ProjectionTest {

}

@Test
@DisplayName("클래스 기반 프로젝션 테스트")
void 클래스_기반_프로젝션_확인(){
//given
String testUrl = "test";
Long testCanvasId = 2L;
Long profileId = 1L;

//when
List<CanvasDto> canvasDtoList = canvasRepository.findCanvasByProfileId(profileId);

//then
CanvasDto canvasDto = canvasDtoList.get(0);
assertThat(canvasDto.getCanvasId()).isEqualTo(testCanvasId);
assertThat(canvasDto.getCanvasUrl()).isEqualTo(testUrl);
}
}

0 comments on commit 9ee7c4a

Please sign in to comment.