Skip to content

Commit

Permalink
#149 [feat] @Valid 붙이기
Browse files Browse the repository at this point in the history
  • Loading branch information
hellozo0 committed Jan 17, 2024
1 parent 947b5e4 commit bf48d8b
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -103,7 +104,7 @@ public SuccessNonDataResponse submitModelApplication(
@Parameter(hidden = true) @UserId Long userId,
@RequestPart(value = "modelImgUrl", required = false) MultipartFile modelImgUrl,
@RequestPart(value = "applicationCaptureImgUrl", required = false) MultipartFile applicationCaptureImgUrl,
@RequestPart(value = "applicationInfo") ModelApplicationRequest applicationInfo) {
@RequestPart(value = "applicationInfo") @Valid ModelApplicationRequest applicationInfo) {
modelService.postApplication(userId, modelImgUrl, applicationCaptureImgUrl, applicationInfo);
return SuccessNonDataResponse.success(SuccessCode.CREATE_MODEL_APPLICATION_SUCCESS);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,25 @@
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

public record ModelApplicationRequest(
@Schema(description = "모델의 현재 머리 기장 예시입니다.", example ="SHORT")
@Enumerated(EnumType.STRING)
HairLength hairLength,
@Schema(description = "PreferHaireStyle의 예시 JSON 배열 포맷입니다.", example ="[\"NORMAL_CUT\", \"ALL_COLOR\"]")
@Schema(description = "PreferHaireStyle의 예시입니다.", example ="[\"NORMAL_CUT\", \"ALL_COLOR\"]")
@ValidPreferHairStyles
List<HairStyle> preferHairStyles,
@Schema(description = "모델이 원하는 헤어스타일 예시입니다.", example = "안녕하세요 저는 숱을 많이 친 허쉬컷이 하고 싶어요 근데 머리가 곱슬이라 매직도 같이 해야지 이쁘게 될것 같아요. 그리고 머리가 얇아서 그거 감안하고 해야할것 같습니다.")
@Size(min = 0, max = 200, message = "hairDetail은 0~200 글자수 사이의 글자입니다.")
@NotBlank
String hairDetail,
@Schema(description = "HairServiceRecords 의 예시 JSON 배열 포맷입니다.", example = "[{\"hairService\": \"PERM\", \"hairServiceTerm\": \"UNDER_ONE\"}, {\"hairService\": \"BLACK\", \"hairServiceTerm\": \"ABOVE_TWELVE\"}]")
@Size(min = 0, max = 3, message = "hairServiceRecord는 선택사항이며, 3개까지 추가 가능합니다.")
List<ModelHairServiceRequest> hairServiceRecords,
@Schema(description = "모델의 인스타그램 예시입니다.", example ="hizo0")
@Pattern(regexp = "[^@]+[_.]+[^@]+", message = "인스타 그램 아이디에는 @는 들어올 수 없지만 _와 .는 가능합니다.")
@Pattern(regexp = "^[^@\\s]+[_\\.]+[^\\s]+$", message = "인스타 그램 아이디에는 @는 들어올 수 없지만 _와 .는 가능합니다.")
String instagramId
) {
public List<ModelHairServiceRequest> getHairServiceRecords() {
Expand Down

0 comments on commit bf48d8b

Please sign in to comment.