-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Feature] 카마스터의 상담신청 목록 조회 기능 구현 (#422)
* feat: 상담신청 내역 조회 관련 dto 구현 * feat: 상담신청 내역 조회 관련 jpa 메소드 구현 * feat: 상담신청 내역 조회 관련 port, adaptor 구현 * feat: 메일, 전화번호에 해당하는 카마스터가 존재하지 않는 경우 예외처리를 위한 클래스 추가 * feat: 카마스터 메일, 전화번호로 상담신청 내역 조회 기능 구현 * feat: consultController에 상담신청 내역 조회 API 추가 * test: 상담신청 내역 조회 TC 추가 * chore: 린트 관련 수정 * chore: url에 beta 추가
- Loading branch information
Showing
14 changed files
with
917 additions
and
130 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
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
29 changes: 29 additions & 0 deletions
29
.../java/softeer/be_my_car_master/application/consult/dto/request/GetConsultingsRequest.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 softeer.be_my_car_master.application.consult.dto.request; | ||
|
||
import javax.validation.constraints.NotEmpty; | ||
import javax.validation.constraints.Pattern; | ||
import javax.validation.constraints.Size; | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
|
||
@Getter | ||
@Setter | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
public class GetConsultingsRequest { | ||
|
||
@Schema(description = "카마스터 이메일", example = "[email protected]") | ||
@Size(min = 5, max = 255, message = "이메일은 최대 길이는 255입니다.") | ||
@Pattern(regexp = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$", message = "잘못된 이메일 형식입니다.") | ||
@NotEmpty(message = "email은 빈 값일 수 없습니다.") | ||
private String email; | ||
|
||
@Schema(description = "카마스터 전화번호", example = "010-0000-0000") | ||
@Pattern(regexp = "^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$", message = "잘못된 번호 형식입니다.") | ||
@NotEmpty(message = "phone은 빈 값일 수 없습니다.") | ||
private String phone; | ||
} |
32 changes: 32 additions & 0 deletions
32
...ain/java/softeer/be_my_car_master/application/consult/dto/response/ClientResponseDto.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,32 @@ | ||
package softeer.be_my_car_master.application.consult.dto.response; | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
import softeer.be_my_car_master.domain.consulting.Consulting; | ||
|
||
@Getter | ||
@Setter | ||
@Builder | ||
@AllArgsConstructor | ||
public class ClientResponseDto { | ||
|
||
@Schema(description = "고객 성함", example = "Hyundai") | ||
private String name; | ||
|
||
@Schema(description = "고객 이메일", example = "[email protected]") | ||
private String email; | ||
|
||
@Schema(description = "고객 번호", example = "010-0000-0000") | ||
private String phone; | ||
|
||
public static ClientResponseDto from(Consulting consulting) { | ||
return ClientResponseDto.builder() | ||
.name(consulting.getClientName()) | ||
.email(consulting.getClientEmail()) | ||
.phone(consulting.getClientPhone()) | ||
.build(); | ||
} | ||
} |
28 changes: 28 additions & 0 deletions
28
...rc/main/java/softeer/be_my_car_master/application/consult/dto/response/ConsultingDto.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,28 @@ | ||
package softeer.be_my_car_master.application.consult.dto.response; | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
import softeer.be_my_car_master.domain.consulting.Consulting; | ||
|
||
@Getter | ||
@Setter | ||
@Builder | ||
@AllArgsConstructor | ||
public class ConsultingDto { | ||
|
||
@Schema(description = "견적서 url", example = "https://my-car-master.shop/estimates/uuid") | ||
private String estimateUrl; | ||
|
||
private ClientResponseDto client; | ||
|
||
public static ConsultingDto from(Consulting consulting) { | ||
final String urlPrefix = "https://beta.my-car-master.shop/estimates/"; | ||
return ConsultingDto.builder() | ||
.estimateUrl(urlPrefix + consulting.getUuid()) | ||
.client(ClientResponseDto.from(consulting)) | ||
.build(); | ||
} | ||
} |
26 changes: 26 additions & 0 deletions
26
...ava/softeer/be_my_car_master/application/consult/dto/response/GetConsultingsResponse.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,26 @@ | ||
package softeer.be_my_car_master.application.consult.dto.response; | ||
|
||
import java.util.List; | ||
import java.util.stream.Collectors; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import softeer.be_my_car_master.domain.consulting.Consulting; | ||
|
||
@Getter | ||
@Setter | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
public class GetConsultingsResponse { | ||
|
||
private List<ConsultingDto> consultings; | ||
|
||
public static GetConsultingsResponse from(List<Consulting> consultings) { | ||
List<ConsultingDto> consultingDtos = consultings.stream() | ||
.map(ConsultingDto::from) | ||
.collect(Collectors.toList()); | ||
return new GetConsultingsResponse(consultingDtos); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
...va/softeer/be_my_car_master/application/consult/exception/CarMasterNotFoundException.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,13 @@ | ||
package softeer.be_my_car_master.application.consult.exception; | ||
|
||
import softeer.be_my_car_master.global.exception.MyCarMasterException; | ||
import softeer.be_my_car_master.global.response.ResponseStatus; | ||
|
||
public class CarMasterNotFoundException extends MyCarMasterException { | ||
|
||
public static final MyCarMasterException EXCEPTION = new CarMasterNotFoundException(); | ||
|
||
private CarMasterNotFoundException() { | ||
super(ResponseStatus.CAR_MASTER_NOT_FOUND); | ||
} | ||
} |
29 changes: 29 additions & 0 deletions
29
...r/be_my_car_master/application/consult/usecase/get_consultings/GetConsultingsAdaptor.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 softeer.be_my_car_master.application.consult.usecase.get_consultings; | ||
|
||
import java.util.List; | ||
import java.util.Optional; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
import softeer.be_my_car_master.domain.consulting.Consulting; | ||
import softeer.be_my_car_master.global.annotation.Adaptor; | ||
import softeer.be_my_car_master.infrastructure.jpa.car_master.repository.CarMasterJpaRepository; | ||
import softeer.be_my_car_master.infrastructure.jpa.car_master.repository.ConsultingJpaRepository; | ||
|
||
@Adaptor | ||
@RequiredArgsConstructor | ||
public class GetConsultingsAdaptor implements GetConsultingsPort { | ||
|
||
|
||
private final CarMasterJpaRepository carMasterJpaRepository; | ||
private final ConsultingJpaRepository consultingJpaRepository; | ||
|
||
@Override | ||
public Optional<Long> findCarMasterIdByForm(String email, String phone) { | ||
return carMasterJpaRepository.findIdByForm(email, phone); | ||
} | ||
|
||
@Override | ||
public List<Consulting> findConsultingsByCarMaster(Long carMasterId) { | ||
return consultingJpaRepository.findAllByCarMaster(carMasterId); | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
...teer/be_my_car_master/application/consult/usecase/get_consultings/GetConsultingsPort.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,15 @@ | ||
package softeer.be_my_car_master.application.consult.usecase.get_consultings; | ||
|
||
import java.util.List; | ||
import java.util.Optional; | ||
|
||
import softeer.be_my_car_master.domain.consulting.Consulting; | ||
import softeer.be_my_car_master.global.annotation.Port; | ||
|
||
@Port | ||
public interface GetConsultingsPort { | ||
|
||
Optional<Long> findCarMasterIdByForm(String email, String phone); | ||
|
||
List<Consulting> findConsultingsByCarMaster(Long carMasterId); | ||
} |
23 changes: 23 additions & 0 deletions
23
...r/be_my_car_master/application/consult/usecase/get_consultings/GetConsultingsUseCase.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,23 @@ | ||
package softeer.be_my_car_master.application.consult.usecase.get_consultings; | ||
|
||
import java.util.List; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
import softeer.be_my_car_master.application.consult.dto.response.GetConsultingsResponse; | ||
import softeer.be_my_car_master.application.consult.exception.CarMasterNotFoundException; | ||
import softeer.be_my_car_master.domain.consulting.Consulting; | ||
import softeer.be_my_car_master.global.annotation.UseCase; | ||
|
||
@UseCase | ||
@RequiredArgsConstructor | ||
public class GetConsultingsUseCase { | ||
|
||
private final GetConsultingsPort port; | ||
|
||
public GetConsultingsResponse execute(String email, String phone) { | ||
Long carMasterId = port.findCarMasterIdByForm(email, phone) | ||
.orElseThrow(() -> CarMasterNotFoundException.EXCEPTION); | ||
List<Consulting> consultings = port.findConsultingsByCarMaster(carMasterId); | ||
return GetConsultingsResponse.from(consultings); | ||
} | ||
} |
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
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
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
Oops, something went wrong.