Skip to content

Commit a2851e8

Browse files
authored
Merge pull request #8 from AlgorithmChef/feature/update-database
데이터 베이스 구조 변경 및 레시피 평점 매기는 로직 완성
2 parents 246382b + 006f2b3 commit a2851e8

12 files changed

Lines changed: 163 additions & 129 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.webservice.algorithmchef.controller;
2+
3+
import org.springframework.http.HttpStatus;
4+
import org.springframework.http.ResponseEntity;
5+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
6+
import org.springframework.security.core.userdetails.UserDetails;
7+
import org.springframework.web.bind.annotation.PostMapping;
8+
import org.springframework.web.bind.annotation.RequestBody;
9+
import org.springframework.web.bind.annotation.RestController;
10+
11+
import com.webservice.algorithmchef.dto.recipereview.RecipeReviewRequest;
12+
import com.webservice.algorithmchef.dto.recipereview.RecipeReviewResponse;
13+
import com.webservice.algorithmchef.service.RecipeReviewService;
14+
15+
import lombok.RequiredArgsConstructor;
16+
17+
@RestController
18+
@RequiredArgsConstructor
19+
public class RecipeReviewController {
20+
21+
private final RecipeReviewService rService;
22+
23+
@PostMapping("/recipe/review")
24+
public ResponseEntity<?> makeReview(@RequestBody RecipeReviewRequest request,
25+
@AuthenticationPrincipal UserDetails userDetails){
26+
try {
27+
String userId = userDetails.getUsername();
28+
RecipeReviewResponse response = rService.makeReview(request, userId);
29+
return ResponseEntity.status(HttpStatus.CREATED).body(response);
30+
}catch (IllegalArgumentException e) {
31+
return ResponseEntity.badRequest().body(e.getMessage());
32+
}
33+
}
34+
35+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.webservice.algorithmchef.dto.recipereview;
2+
3+
import lombok.Getter;
4+
import lombok.NoArgsConstructor;
5+
6+
@Getter
7+
@NoArgsConstructor
8+
public class RecipeReviewRequest {
9+
10+
private String name;
11+
private float rating;
12+
private String content;
13+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.webservice.algorithmchef.dto.recipereview;
2+
3+
import com.webservice.algorithmchef.model.RecipeReview;
4+
5+
import lombok.Getter;
6+
import lombok.NoArgsConstructor;
7+
8+
@Getter
9+
@NoArgsConstructor
10+
public class RecipeReviewResponse {
11+
12+
private String name;
13+
private String userId;
14+
private float rating;
15+
16+
public RecipeReviewResponse(RecipeReview review) {
17+
this.name = review.getRecipe().getName();
18+
this.userId = review.getUser().getUserId();
19+
this.rating = review.getRating();
20+
}
21+
}

src/main/java/com/webservice/algorithmchef/model/Ingredient.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,4 @@ public class Ingredient {
4646
@OneToMany(mappedBy = "ingredient",orphanRemoval = true,cascade = CascadeType.ALL)
4747
private List<FridgeIngredient> ingredients;
4848

49-
@OneToMany(mappedBy = "ingredient",orphanRemoval = true,cascade = CascadeType.ALL)
50-
private List<RecipeIngredient> recipeIngredients;
51-
5249
}

src/main/java/com/webservice/algorithmchef/model/Recipe.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class Recipe {
3030
@Column(name="recipe_id")
3131
private Long id;
3232

33-
@Column(nullable = false, unique = true)
33+
@Column(nullable = false)
3434
private String name;
3535

3636
@Lob
@@ -45,14 +45,24 @@ public class Recipe {
4545
@Column(nullable = false)
4646
private String type;
4747

48+
@Column(nullable = false)
49+
@Lob
50+
private String neededIngredients;
51+
4852
@Column(nullable = false)
4953
private double kcal;
5054

51-
@OneToMany(mappedBy = "recipe", orphanRemoval = true)
52-
private List<RecipeTag> recipeTags;
55+
@Column
56+
private String tag;
5357

54-
@OneToMany(mappedBy = "recipe", orphanRemoval = true)
55-
private List<RecipeIngredient> recipeIngredients;
58+
@Column
59+
private String portions;
60+
61+
@Column
62+
private String time;
63+
64+
@Column
65+
private String tip;
5666

5767
@OneToMany(mappedBy = "recipe", orphanRemoval = true)
5868
private List<RecipeReview> recipeReviews;

src/main/java/com/webservice/algorithmchef/model/RecipeIngredient.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/main/java/com/webservice/algorithmchef/model/RecipeReview.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import jakarta.persistence.GenerationType;
1212
import jakarta.persistence.Id;
1313
import jakarta.persistence.JoinColumn;
14+
import jakarta.persistence.Lob;
1415
import jakarta.persistence.ManyToOne;
1516
import lombok.AllArgsConstructor;
1617
import lombok.Builder;
@@ -44,6 +45,10 @@ public class RecipeReview {
4445
@Column(nullable = false)
4546
private float rating;
4647

48+
@Column
49+
@Lob
50+
private String content;
51+
4752
@CreationTimestamp
4853
private LocalDateTime createdAt;
4954

src/main/java/com/webservice/algorithmchef/model/RecipeTag.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/java/com/webservice/algorithmchef/model/Tag.java

Lines changed: 0 additions & 38 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.webservice.algorithmchef.repository;
2+
3+
import java.util.Optional;
4+
5+
import org.springframework.data.jpa.repository.JpaRepository;
6+
7+
import com.webservice.algorithmchef.model.Recipe;
8+
9+
public interface RecipeRepository extends JpaRepository<Recipe, Long>{
10+
11+
public Optional<Recipe> findByName(String name);
12+
}

0 commit comments

Comments
 (0)