From 70468c0e3e373c1ada9e5ffce841ce744c942693 Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 24 Nov 2024 16:44:06 +0900 Subject: [PATCH 1/7] =?UTF-8?q?=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20?= =?UTF-8?q?=EC=8A=A4=EC=9B=A8=EA=B1=B0=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/MemberController.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/controller/MemberController.java b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/controller/MemberController.java index c4cfd7c..816ef00 100644 --- a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/controller/MemberController.java +++ b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/controller/MemberController.java @@ -9,7 +9,13 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +@Tag(name = "실시간 뉴스 데이터 API", description = "뉴스 데이터 관련 API") @RestController @Slf4j @RequiredArgsConstructor @@ -17,6 +23,20 @@ public class MemberController { private final MemberService memberService; // 이메일 인증 + @Operation(summary = "이메일 중복 여부 체크 API 요청", description = "회원가입 시 이메일 중복 여부 체크 API 요청") + @ApiResponses(value = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + responseCode = "COMMON200", + description = "요청 성공", + content = { + @Content( + schema = @Schema( + implementation = EmailCheckResponseDto.EmailCheckResponse.class + ) + ) + } + ) + }) @GetMapping("/email-check") public ResponseEntity> emailCheck(@Valid @RequestBody EmailCheckRequestDto.EmailCheckRequest request){ if(memberService.isExistEmail(request.getEmail())){ From d683379eae12c8a746d363d7da432bfe30d5d301 Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 24 Nov 2024 16:44:19 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20DTO=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/web/dto/SignUpRequestDto.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/SignUpRequestDto.java b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/SignUpRequestDto.java index 56b064d..06c965a 100644 --- a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/SignUpRequestDto.java +++ b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/SignUpRequestDto.java @@ -1,26 +1,49 @@ package com.swOnCampus.AIPlatform.domain.member.web.dto; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +@Schema(name = "SignUpRequestDto", description = "회원가입 API 요청 DTO") public class SignUpRequestDto { @Data @AllArgsConstructor @NoArgsConstructor public static class SignupRequest{ + + @NotNull(message = "이메일을 입력해주세요.") + @Schema(description = "회원가입을 할 이메일을 입력해주세요.", example = "example@naver.com") private String email; @Pattern( regexp = "^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_+=-]).{8,}$", message = "비밀번호는 특수문자, 영어, 숫자를 포함하여 8자리 이상이어야 합니다." ) + + @NotNull(message = "비밀번호를 입력해주세요.") + @Schema(description = "비밀번호를 입력해주세요.", example = "examplePW@890") private String password; + + @NotNull(message = "이름을 입력해주세요.") + @Schema(description = "이름을 입력해주세요.", example = "김예시") private String name; + + @NotNull(message = "전화번호를 입력해주세요.") + @Schema(description = "전화번호를 입력해주세요.", example = "010-1234-5678") private String phone; + + @NotNull(message = "사업자번호를 입력해주세요.") + @Schema(description = "사업자번호를 입력해주세요.", example = "123-45-67890") private String businessNum; + + @Schema(description = "가입 경로를 입력해주세요. 필수값은 아닙니다.", example = "인스타") private String signupRoute; + + @NotNull(message = "소속된 회사를 입력해주세요.") + @Schema(description = "소속된 회사를 입력해주세요.", example = "삼성전자") private String corporation; } } From a9c0bed94d0cf14284ab6718a18264e5e96cc9f8 Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 24 Nov 2024 16:44:25 +0900 Subject: [PATCH 3/7] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20DTO=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/web/dto/LoginRequestDto.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/LoginRequestDto.java b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/LoginRequestDto.java index 8eaff41..d86c182 100644 --- a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/LoginRequestDto.java +++ b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/LoginRequestDto.java @@ -1,16 +1,25 @@ package com.swOnCampus.AIPlatform.domain.member.web.dto; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +@Schema(name = "LoginRequestDto", description = "로그인 API 요청 DTO") public class LoginRequestDto { @Data @AllArgsConstructor @NoArgsConstructor public static class LoginRequest { + + @NotNull(message = "이메일을 입력해주세요.") + @Schema(description = "로그인 할 이메일을 입력해주세요.", example = "example@naver.com") private String email; + + @NotNull(message = "비밀번호를 입력해주세요.") + @Schema(description = "로그인 할 비밀번호를 입력해주세요.", example = "examplePw@890") private String password; } } From 4ccc061527571a14427591e1217f5471b57178c4 Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 24 Nov 2024 16:44:34 +0900 Subject: [PATCH 4/7] =?UTF-8?q?=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EC=A4=91?= =?UTF-8?q?=EB=B3=B5=20=EC=97=AC=EB=B6=80=20=EC=B2=B4=ED=81=AC=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20DTO=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/web/dto/EmailCheckRequestDto.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/EmailCheckRequestDto.java b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/EmailCheckRequestDto.java index c871d63..0dd2dba 100644 --- a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/EmailCheckRequestDto.java +++ b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/EmailCheckRequestDto.java @@ -1,15 +1,20 @@ package com.swOnCampus.AIPlatform.domain.member.web.dto; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +@Schema(name = "EmailCheckRequestDto", description = "이메일 중복 여부 확인 API 요청 DTO") public class EmailCheckRequestDto { @Data @AllArgsConstructor @NoArgsConstructor public static class EmailCheckRequest { + @NotNull(message = "이메일을 입력해주세요.") + @Schema(description = "중복 여부를 체크할 이메일을 입력해주세요.", example = "example@naver.com") private String email; } } From 23e76c7fd04347fa9010b3771ba9775f43a189c5 Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 24 Nov 2024 16:44:52 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=EC=82=AC=EC=97=85=EC=9E=90=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EC=A7=84=EC=9C=84=EC=97=AC=EB=B6=80=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EC=9A=94=EC=B2=AD=20DTO=20=EC=8A=A4=EC=9B=A8?= =?UTF-8?q?=EA=B1=B0=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/member/web/dto/BusinessCheckRequestDto.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/BusinessCheckRequestDto.java b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/BusinessCheckRequestDto.java index 0b729ce..0dafcb0 100644 --- a/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/BusinessCheckRequestDto.java +++ b/src/main/java/com/swOnCampus/AIPlatform/domain/member/web/dto/BusinessCheckRequestDto.java @@ -1,15 +1,20 @@ package com.swOnCampus.AIPlatform.domain.member.web.dto; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +@Schema(name = "BusinessCheckRequestDto", description = "사업자번호 진위여부 체크 API 요청 DTO") public class BusinessCheckRequestDto { @Data @AllArgsConstructor @NoArgsConstructor public static class BusinessCheckRequest { + @NotNull(message = "사업자번호를 입력해주세요.") + @Schema(description = "'-'의 존재 여부는 상관 없습니다.", example = "123-45-67890") private String businessNumber; } } From 174411766d54f24e3030644e2febd73a21085e5c Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 24 Nov 2024 17:40:21 +0900 Subject: [PATCH 6/7] =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=95=84=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=88=98=EC=A0=95=20=EC=9A=94=EC=B2=AD=20DTO=20?= =?UTF-8?q?=EC=8A=A4=EC=9B=A8=EA=B1=B0=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/mypage/web/dto/ProfileEditRequestDto.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/dto/ProfileEditRequestDto.java b/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/dto/ProfileEditRequestDto.java index b2337a3..bfe7756 100644 --- a/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/dto/ProfileEditRequestDto.java +++ b/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/dto/ProfileEditRequestDto.java @@ -1,17 +1,25 @@ package com.swOnCampus.AIPlatform.domain.mypage.web.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +@Schema(name = "ProfileEditRequestDto", description = "프로필 정보 수정 API 요청 DTO") public class ProfileEditRequestDto { @Data @AllArgsConstructor @NoArgsConstructor public static class ProfileEditRequest { + + @Schema(description = "수정할 이메일을 입력해주세요.", example = "example@naver.com") private String email; + + @Schema(description = "수정할 이름을 입력해주세요.", example = "김예시") private String name; + + @Schema(description = "수정할 전화번호을 입력해주세요.", example = "010-1234-5678") private String phone; } } From e8909d0fcc9b5cc33d9a0a84d4ba3d26653ccecc Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 24 Nov 2024 17:40:30 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EA=B4=80=EB=A0=A8=20API=20=EC=8A=A4=EC=9B=A8?= =?UTF-8?q?=EA=B1=B0=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/MypageController.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/controller/MypageController.java b/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/controller/MypageController.java index 2e07e85..0fc068f 100644 --- a/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/controller/MypageController.java +++ b/src/main/java/com/swOnCampus/AIPlatform/domain/mypage/web/controller/MypageController.java @@ -1,12 +1,18 @@ package com.swOnCampus.AIPlatform.domain.mypage.web.controller; import com.swOnCampus.AIPlatform.domain.member.entity.Member; +import com.swOnCampus.AIPlatform.domain.member.web.dto.EmailCheckResponseDto; import com.swOnCampus.AIPlatform.domain.mypage.service.MypageService; import com.swOnCampus.AIPlatform.domain.mypage.web.dto.MyProfileResponseDto; import com.swOnCampus.AIPlatform.domain.mypage.web.dto.ProfileEditRequestDto; import com.swOnCampus.AIPlatform.domain.mypage.web.dto.ProfileEditResponseDto; import com.swOnCampus.AIPlatform.global.annotation.LoginMember; import com.swOnCampus.AIPlatform.global.response.ApiResponse; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -18,9 +24,24 @@ @Slf4j @RequestMapping("/api") @RequiredArgsConstructor +@Tag(name = "마이페이지 API", description = "마이페이지 관련 API") public class MypageController { private final MypageService mypageService; + @Operation(summary = "프로필 조회 API 요청", description = "마이페이지 프로필 정보 조회 API 요청") + @ApiResponses(value = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + responseCode = "COMMON200", + description = "요청 성공", + content = { + @Content( + schema = @Schema( + implementation = MyProfileResponseDto.MyProfileResponse.class + ) + ) + } + ) + }) @GetMapping("/get-my-profile") public ResponseEntity> getMyProfile(@LoginMember Member member) { log.info("memberId:{}", member.getMemberId()); @@ -30,6 +51,20 @@ public ResponseEntity> getMy return ResponseEntity.ok(response); } + @Operation(summary = "프로필 수정 API 요청", description = "마이페이지 프로필 정보 수정 API 요청") + @ApiResponses(value = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + responseCode = "COMMON200", + description = "요청 성공", + content = { + @Content( + schema = @Schema( + implementation = ProfileEditResponseDto.ProfileEditResponse.class + ) + ) + } + ) + }) @PutMapping("/edit-my-profile") public ResponseEntity> editMyProfile(@LoginMember Member member, @Valid @RequestBody ProfileEditRequestDto.ProfileEditRequest request) { ProfileEditResponseDto.ProfileEditResponse responseDto = mypageService.editProfile(member.getMemberId(), request);