File tree Expand file tree Collapse file tree
apps/commerce-api/src/main/java/com/loopers Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ public List<Product> findAll() {
4141
4242 @ Override
4343 public List <Product > searchProductsByCondition (ProductV1Dto .SearchProductRequest request ) {
44- System . out . println ( "sortBy = " + request . sortCondition (). sortBy ());
44+
4545 boolean isAsc = request .sortCondition ().order ().equals ("asc" );
4646
4747 JPAQuery <Product > query = queryFactory
@@ -50,6 +50,10 @@ public List<Product> searchProductsByCondition(ProductV1Dto.SearchProductRequest
5050 .on (product .id .eq (like .productId ))
5151 .groupBy (product .id );
5252
53+ switch (request .filterCondition ().filterBy ()) {
54+ case "brandId" -> query .where (product .brandId .eq (request .filterCondition ().filterValue ()));
55+ }
56+
5357
5458 switch (request .sortCondition ().sortBy ()) {
5559 case "price" -> query .orderBy (isAsc ? product .price .asc () : product .price .desc ());
Original file line number Diff line number Diff line change @@ -32,7 +32,16 @@ public Product toEntity() {
3232 }
3333 }
3434
35- public record SearchProductRequest (SortCondition sortCondition ) {
35+ public record SearchProductRequest (FilterCondition filterCondition , SortCondition sortCondition ) {
36+ public record FilterCondition (String filterBy , Long filterValue ) {
37+ public void conditionValidate () {
38+ if (!filterBy .equals ("brandId" )) {
39+ throw new CoreException (ErrorType .BAD_REQUEST , "유효하지 않은 필터 조건입니다." );
40+ }
41+ }
42+
43+ }
44+
3645 public record SortCondition (String sortBy , String order ) {
3746 public void conditionValidate () {
3847 if (!sortBy .equals ("price" ) && !sortBy .equals ("likeCount" ) && !sortBy .equals ("createdAt" )) {
You can’t perform that action at this time.
0 commit comments