-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: 기본 예외 작성 (#131) * feat: BaseEntity 작성 (#131) * feat: Celeb 도메인 작성 (#130) * feat: Restaurant 도메인 작성 (#130) * feat: RestaurantImage 도메인 작성 (#130) * feat: Video 도메인 작성 (#130) * style: polishing (#130) --------- Co-authored-by: shin-mallang <[email protected]> Co-authored-by: TaeyeonRoyce <[email protected]> Co-authored-by: odo27 <[email protected]>
- Loading branch information
1 parent
753dbb1
commit dc62719
Showing
15 changed files
with
335 additions
and
0 deletions.
There are no files selected for viewing
38 changes: 38 additions & 0 deletions
38
backend/src/main/java/com/celuveat/celeb/domain/Celeb.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package com.celuveat.celeb.domain; | ||
|
||
import static lombok.AccessLevel.PROTECTED; | ||
|
||
import com.celuveat.common.domain.BaseEntity; | ||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Entity | ||
@Builder | ||
@AllArgsConstructor | ||
@NoArgsConstructor(access = PROTECTED) | ||
public class Celeb extends BaseEntity { | ||
|
||
@Column(nullable = false) | ||
private String name; | ||
|
||
@Column(nullable = false, unique = true) | ||
private String youtubeChannelName; | ||
|
||
@Column(nullable = false) | ||
private String profileImageUrl; | ||
|
||
public String name() { | ||
return name; | ||
} | ||
|
||
public String youtubeChannelName() { | ||
return youtubeChannelName; | ||
} | ||
|
||
public String profileImageUrl() { | ||
return profileImageUrl; | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
backend/src/main/java/com/celuveat/celeb/domain/CelebRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package com.celuveat.celeb.domain; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
public interface CelebRepository extends JpaRepository<Celeb, Long> { | ||
} |
9 changes: 9 additions & 0 deletions
9
backend/src/main/java/com/celuveat/common/config/JpaConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.celuveat.common.config; | ||
|
||
import org.springframework.context.annotation.Configuration; | ||
import org.springframework.data.jpa.repository.config.EnableJpaAuditing; | ||
|
||
@Configuration | ||
@EnableJpaAuditing | ||
public class JpaConfig { | ||
} |
30 changes: 30 additions & 0 deletions
30
backend/src/main/java/com/celuveat/common/domain/BaseEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package com.celuveat.common.domain; | ||
|
||
import jakarta.persistence.EntityListeners; | ||
import jakarta.persistence.GeneratedValue; | ||
import jakarta.persistence.GenerationType; | ||
import jakarta.persistence.Id; | ||
import jakarta.persistence.MappedSuperclass; | ||
import java.time.LocalDateTime; | ||
import org.springframework.data.annotation.CreatedDate; | ||
import org.springframework.data.jpa.domain.support.AuditingEntityListener; | ||
|
||
@MappedSuperclass | ||
@EntityListeners(AuditingEntityListener.class) | ||
public class BaseEntity { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.IDENTITY) | ||
private Long id; | ||
|
||
@CreatedDate | ||
private LocalDateTime createdDate; | ||
|
||
public Long id() { | ||
return id; | ||
} | ||
|
||
public LocalDateTime createdDate() { | ||
return createdDate; | ||
} | ||
} |
9 changes: 9 additions & 0 deletions
9
backend/src/main/java/com/celuveat/common/exception/BaseException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.celuveat.common.exception; | ||
|
||
public abstract class BaseException extends RuntimeException { | ||
|
||
public BaseException() { | ||
} | ||
|
||
public abstract BaseExceptionType exceptionType(); | ||
} |
10 changes: 10 additions & 0 deletions
10
backend/src/main/java/com/celuveat/common/exception/BaseExceptionType.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package com.celuveat.common.exception; | ||
|
||
import org.springframework.http.HttpStatus; | ||
|
||
public interface BaseExceptionType { | ||
|
||
HttpStatus httpStatus(); | ||
|
||
String errorMessage(); | ||
} |
29 changes: 29 additions & 0 deletions
29
backend/src/main/java/com/celuveat/common/exception/ExceptionControllerAdvice.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package com.celuveat.common.exception; | ||
|
||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.ExceptionHandler; | ||
import org.springframework.web.bind.annotation.RestControllerAdvice; | ||
|
||
@RestControllerAdvice | ||
public class ExceptionControllerAdvice { | ||
|
||
private final Logger log = LoggerFactory.getLogger(getClass()); | ||
|
||
@ExceptionHandler(BaseException.class) | ||
ResponseEntity<ExceptionResponse> handleException(BaseException e) { | ||
BaseExceptionType type = e.exceptionType(); | ||
log.warn("[WARN] 잘못된 요청이 들어왔습니다. 내용 -> {}", type.errorMessage()); | ||
return new ResponseEntity<>( | ||
new ExceptionResponse(type.errorMessage()), | ||
type.httpStatus()); | ||
} | ||
|
||
@ExceptionHandler(Exception.class) | ||
ResponseEntity<ExceptionResponse> handleException(Exception e) { | ||
log.error("[ERROR] 예상하지 못한 예외가 발생했습니다.", e); | ||
return ResponseEntity.internalServerError() | ||
.body(new ExceptionResponse("알 수 없는 오류가 발생했습니다.")); | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
backend/src/main/java/com/celuveat/common/exception/ExceptionResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package com.celuveat.common.exception; | ||
|
||
public record ExceptionResponse( | ||
String message | ||
) { | ||
} |
65 changes: 65 additions & 0 deletions
65
backend/src/main/java/com/celuveat/restaurant/domain/Restaurant.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
package com.celuveat.restaurant.domain; | ||
|
||
import static lombok.AccessLevel.PROTECTED; | ||
|
||
import com.celuveat.common.domain.BaseEntity; | ||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Entity | ||
@Builder | ||
@AllArgsConstructor | ||
@NoArgsConstructor(access = PROTECTED) | ||
public class Restaurant extends BaseEntity { | ||
|
||
@Column(nullable = false) | ||
private String name; | ||
|
||
@Column(nullable = false) | ||
private String roadAddress; | ||
|
||
@Column(nullable = false) | ||
private String category; | ||
|
||
@Column(nullable = false) | ||
private String latitude; | ||
|
||
@Column(nullable = false) | ||
private String longitude; | ||
|
||
private String phoneNumber; | ||
|
||
@Column(nullable = false) | ||
private String naverMapUrl; | ||
|
||
public String name() { | ||
return name; | ||
} | ||
|
||
public String roadAddress() { | ||
return roadAddress; | ||
} | ||
|
||
public String category() { | ||
return category; | ||
} | ||
|
||
public String latitude() { | ||
return latitude; | ||
} | ||
|
||
public String longitude() { | ||
return longitude; | ||
} | ||
|
||
public String phoneNumber() { | ||
return phoneNumber; | ||
} | ||
|
||
public String naverMapUrl() { | ||
return naverMapUrl; | ||
} | ||
} |
54 changes: 54 additions & 0 deletions
54
backend/src/main/java/com/celuveat/restaurant/domain/RestaurantImage.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
package com.celuveat.restaurant.domain; | ||
|
||
import static jakarta.persistence.EnumType.*; | ||
import static jakarta.persistence.FetchType.*; | ||
import static lombok.AccessLevel.PROTECTED; | ||
|
||
import com.celuveat.common.domain.BaseEntity; | ||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import jakarta.persistence.EnumType; | ||
import jakarta.persistence.Enumerated; | ||
import jakarta.persistence.FetchType; | ||
import jakarta.persistence.JoinColumn; | ||
import jakarta.persistence.ManyToOne; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Entity | ||
@Builder | ||
@AllArgsConstructor | ||
@NoArgsConstructor(access = PROTECTED) | ||
public class RestaurantImage extends BaseEntity { | ||
|
||
@Column(nullable = false) | ||
private String name; | ||
|
||
@Column(nullable = false) | ||
private String author; | ||
|
||
@Column(nullable = false) | ||
@Enumerated(STRING) | ||
private SocialMedia socialMedia; | ||
|
||
@ManyToOne(fetch = LAZY) | ||
@JoinColumn(name = "restaurant_id") | ||
private Restaurant restaurant; | ||
|
||
public String name() { | ||
return name; | ||
} | ||
|
||
public String author() { | ||
return author; | ||
} | ||
|
||
public SocialMedia socialMedia() { | ||
return socialMedia; | ||
} | ||
|
||
public Restaurant restaurant() { | ||
return restaurant; | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
backend/src/main/java/com/celuveat/restaurant/domain/RestaurantImageRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package com.celuveat.restaurant.domain; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
public interface RestaurantImageRepository extends JpaRepository<RestaurantImage, Long> { | ||
} |
6 changes: 6 additions & 0 deletions
6
backend/src/main/java/com/celuveat/restaurant/domain/RestaurantRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package com.celuveat.restaurant.domain; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
public interface RestaurantRepository extends JpaRepository<Restaurant, Long> { | ||
} |
8 changes: 8 additions & 0 deletions
8
backend/src/main/java/com/celuveat/restaurant/domain/SocialMedia.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.celuveat.restaurant.domain; | ||
|
||
public enum SocialMedia { | ||
|
||
YOUTUBE, | ||
INSTAGRAM, | ||
; | ||
} |
53 changes: 53 additions & 0 deletions
53
backend/src/main/java/com/celuveat/video/domain/Video.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
package com.celuveat.video.domain; | ||
|
||
import static jakarta.persistence.FetchType.LAZY; | ||
import static lombok.AccessLevel.PROTECTED; | ||
|
||
import com.celuveat.celeb.domain.Celeb; | ||
import com.celuveat.common.domain.BaseEntity; | ||
import com.celuveat.restaurant.domain.Restaurant; | ||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import jakarta.persistence.JoinColumn; | ||
import jakarta.persistence.ManyToOne; | ||
import java.time.LocalDate; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Entity | ||
@Builder | ||
@AllArgsConstructor | ||
@NoArgsConstructor(access = PROTECTED) | ||
public class Video extends BaseEntity { | ||
|
||
@Column(nullable = false) | ||
private String youtubeUrl; | ||
|
||
@Column(nullable = false) | ||
private LocalDate uploadDate; | ||
|
||
@ManyToOne(fetch = LAZY) | ||
@JoinColumn(name = "celeb_id") | ||
private Celeb celeb; | ||
|
||
@ManyToOne(fetch = LAZY) | ||
@JoinColumn(name = "restaurant_id") | ||
private Restaurant restaurant; | ||
|
||
public String youtubeUrl() { | ||
return youtubeUrl; | ||
} | ||
|
||
public LocalDate uploadDate() { | ||
return uploadDate; | ||
} | ||
|
||
public Celeb celeb() { | ||
return celeb; | ||
} | ||
|
||
public Restaurant restaurant() { | ||
return restaurant; | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
backend/src/main/java/com/celuveat/video/domain/VideoRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package com.celuveat.video.domain; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
public interface VideoRepository extends JpaRepository<Video, Long> { | ||
} |