add: throwDeletedMovie() exception
This commit is contained in:
@@ -33,7 +33,8 @@ public enum ErrorCode {
|
|||||||
DUPLICATE_EMAIL(CONFLICT, "이메일이 이미 존재합니다."),
|
DUPLICATE_EMAIL(CONFLICT, "이메일이 이미 존재합니다."),
|
||||||
DUPLICATE_PAYMENT(CONFLICT, "해당 좌석은 현재 판매된 좌석입니다."),
|
DUPLICATE_PAYMENT(CONFLICT, "해당 좌석은 현재 판매된 좌석입니다."),
|
||||||
DUPLICATE_MOVIE(CONFLICT, "해당 영화 정보가 이미 존재합니다."),
|
DUPLICATE_MOVIE(CONFLICT, "해당 영화 정보가 이미 존재합니다."),
|
||||||
DELETED_EMAIL(CONFLICT, "이미 삭제된 이메일 입니다.");
|
DELETED_EMAIL(CONFLICT, "이미 삭제된 이메일 입니다."),
|
||||||
|
DELETED_MOVIE(CONFLICT, "이미 삭제된 영화 입니다.");
|
||||||
|
|
||||||
private final HttpStatus httpStatus;
|
private final HttpStatus httpStatus;
|
||||||
private final String detail;
|
private final String detail;
|
||||||
@@ -97,5 +98,9 @@ public enum ErrorCode {
|
|||||||
public static TicketingException throwDeletedEmail() {
|
public static TicketingException throwDeletedEmail() {
|
||||||
throw new TicketingException(DELETED_EMAIL);
|
throw new TicketingException(DELETED_EMAIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static TicketingException throwDeletedMovie() {
|
||||||
|
throw new TicketingException(DELETED_MOVIE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.ticketing.server.movie.domain;
|
package com.ticketing.server.movie.domain;
|
||||||
|
|
||||||
import com.ticketing.server.global.dto.repository.AbstractEntity;
|
import com.ticketing.server.global.dto.repository.AbstractEntity;
|
||||||
|
import com.ticketing.server.global.exception.ErrorCode;
|
||||||
import com.ticketing.server.movie.service.dto.MovieDTO;
|
import com.ticketing.server.movie.service.dto.MovieDTO;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@@ -27,6 +29,16 @@ public class Movie extends AbstractEntity {
|
|||||||
this.runningTime = runningTime;
|
this.runningTime = runningTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Movie delete() {
|
||||||
|
if (deletedAt != null) {
|
||||||
|
throw ErrorCode.throwDeletedMovie();
|
||||||
|
}
|
||||||
|
|
||||||
|
deletedAt = LocalDateTime.now();
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public MovieDTO toMovieDTO() {
|
public MovieDTO toMovieDTO() {
|
||||||
return new MovieDTO(this.id, this.title);
|
return new MovieDTO(this.id, this.title);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.ticketing.server.movie.service;
|
|||||||
import com.ticketing.server.global.exception.ErrorCode;
|
import com.ticketing.server.global.exception.ErrorCode;
|
||||||
import com.ticketing.server.movie.domain.Movie;
|
import com.ticketing.server.movie.domain.Movie;
|
||||||
import com.ticketing.server.movie.domain.repository.MovieRepository;
|
import com.ticketing.server.movie.domain.repository.MovieRepository;
|
||||||
|
import com.ticketing.server.movie.service.dto.DeletedMovieDTO;
|
||||||
import com.ticketing.server.movie.service.dto.MovieDTO;
|
import com.ticketing.server.movie.service.dto.MovieDTO;
|
||||||
import com.ticketing.server.movie.service.dto.RegisteredMovieDTO;
|
import com.ticketing.server.movie.service.dto.RegisteredMovieDTO;
|
||||||
import com.ticketing.server.movie.service.interfaces.MovieService;
|
import com.ticketing.server.movie.service.interfaces.MovieService;
|
||||||
@@ -43,5 +44,9 @@ public class MovieServiceImpl implements MovieService {
|
|||||||
.map(movie -> movie.toMovieDTO())
|
.map(movie -> movie.toMovieDTO())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DeletedMovieDTO deleteMovie(Long id) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.ticketing.server.movie.service.dto;
|
||||||
|
|
||||||
|
import com.ticketing.server.movie.application.response.MovieInfoResponse;
|
||||||
|
import com.ticketing.server.movie.domain.Movie;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class DeletedMovieDTO {
|
||||||
|
|
||||||
|
private final Long id;
|
||||||
|
|
||||||
|
private final String title;
|
||||||
|
|
||||||
|
public DeletedMovieDTO(Movie movie) {
|
||||||
|
this(
|
||||||
|
movie.getId(),
|
||||||
|
movie.getTitle()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MovieInfoResponse toResponse() {
|
||||||
|
return new MovieInfoResponse(id, title);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user