33import javax .validation .Valid ;
44import lombok .RequiredArgsConstructor ;
55import lombok .extern .slf4j .Slf4j ;
6- import org .runnect .server .common .constant .ErrorStatus ;
76import org .runnect .server .common .constant .SuccessStatus ;
87import org .runnect .server .common .dto .ApiResponseDto ;
9- import org .runnect .server .common .exception .BadRequestException ;
108import org .runnect .server .common .resolver .userId .UserId ;
119import org .runnect .server .course .dto .request .CourseCreateRequestDto ;
12- import org .runnect .server .course .dto .request .CourseCreateRequestDtoV2 ;
1310import org .runnect .server .course .dto .request .DeleteCoursesRequestDto ;
1411import org .runnect .server .course .dto .request .UpdateCourseRequestDto ;
1512import org .runnect .server .course .dto .response .CourseCreateResponseDto ;
2118import org .runnect .server .external .aws .S3Service ;
2219import org .springframework .http .HttpStatus ;
2320import org .springframework .http .MediaType ;
24- import org .springframework .validation .BindingResult ;
2521import org .springframework .web .bind .annotation .GetMapping ;
26- import org .springframework .web .bind .annotation .ModelAttribute ;
2722import org .springframework .web .bind .annotation .PatchMapping ;
2823import org .springframework .web .bind .annotation .PathVariable ;
2924import org .springframework .web .bind .annotation .PostMapping ;
@@ -44,47 +39,18 @@ public class CourseController {
4439 private final S3Service s3Service ;
4540 private final CourseService courseService ;
4641
47- @ PostMapping (consumes = MediaType .MULTIPART_FORM_DATA_VALUE , produces = MediaType .APPLICATION_JSON_VALUE )
42+ @ PostMapping (consumes = { MediaType .APPLICATION_JSON_VALUE , MediaType . MULTIPART_FORM_DATA_VALUE } , produces = MediaType .APPLICATION_JSON_VALUE )
4843 @ ResponseStatus (HttpStatus .CREATED )
4944 public ApiResponseDto <CourseCreateResponseDto > createCourse (
5045 @ UserId Long userId ,
51- @ ModelAttribute @ Valid final CourseCreateRequestDto courseCreateRequestDto ,
52- BindingResult bindingResult
53- ) {
54- log .info ("create course 요청 값" );
55- log .info ("departureAddress : " + courseCreateRequestDto .getDepartureAddress ());
56- log .info ("departureName : " + courseCreateRequestDto .getDepartureName ());
57- log .info ("path : " + courseCreateRequestDto .getPath ());
58- log .info ("distance : " + courseCreateRequestDto .getDistance ().toString ());
59- log .info ("image : " + courseCreateRequestDto .getImage ().toString ());
60- if (bindingResult .hasErrors ()) {
61- throw new BadRequestException (ErrorStatus .REQUEST_VALIDATION_EXCEPTION ,
62- bindingResult .getFieldError ().getField () + " 필드가 입력되지 않았습니다." );
63- }
64- String imageUrl = s3Service .uploadImage (courseCreateRequestDto .getImage (), "course" );
65- return ApiResponseDto .success (SuccessStatus .CREATE_COURSE_SUCCESS ,
66- courseService .createCourse (userId , courseCreateRequestDto , imageUrl ));
67- }
68-
69- @ PostMapping (value = "/v2" , consumes = {MediaType .APPLICATION_JSON_VALUE , MediaType .MULTIPART_FORM_DATA_VALUE }, produces = MediaType .APPLICATION_JSON_VALUE )
70- @ ResponseStatus (HttpStatus .CREATED )
71- public ApiResponseDto <CourseCreateResponseDto > createCourseV2 (
72- @ UserId Long userId ,
73- @ RequestPart @ Valid final CourseCreateRequestDtoV2 courseCreateRequestDto ,
46+ @ RequestPart @ Valid final CourseCreateRequestDto data ,
7447 @ RequestPart final MultipartFile image
7548 ) {
76- log .info ("create course 요청 값" );
77- log .info ("departureAddress : " + courseCreateRequestDto .getDepartureAddress ());
78- log .info ("departureName : " + courseCreateRequestDto .getDepartureName ());
79- log .info ("path : " + courseCreateRequestDto .getPath ());
80- log .info ("distance : " + courseCreateRequestDto .getDistance ().toString ());
81-
8249 String imageUrl = s3Service .uploadImage (image , "course" );
8350 return ApiResponseDto .success (SuccessStatus .CREATE_COURSE_SUCCESS ,
84- courseService .createCourseV2 (userId , courseCreateRequestDto , imageUrl ));
51+ courseService .createCourse (userId , data , imageUrl ));
8552 }
8653
87-
8854 @ GetMapping ("/user" )
8955 @ ResponseStatus (HttpStatus .OK )
9056 public ApiResponseDto <CourseGetByUserResponseDto > getCourseByUser (@ UserId Long userId ) {
0 commit comments