Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,34 @@
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
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<ApiResponse<?>> emailCheck(@Valid @RequestBody EmailCheckRequestDto.EmailCheckRequest request){
if(memberService.isExistEmail(request.getEmail())){
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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 = "[email protected]")
private String email;
}
}
Original file line number Diff line number Diff line change
@@ -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 = "[email protected]")
private String email;

@NotNull(message = "비밀번호를 입력해주세요.")
@Schema(description = "로그인 할 비밀번호를 입력해주세요.", example = "examplePw@890")
private String password;
}
}
Original file line number Diff line number Diff line change
@@ -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 = "[email protected]")
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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<ApiResponse<MyProfileResponseDto.MyProfileResponse>> getMyProfile(@LoginMember Member member) {
log.info("memberId:{}", member.getMemberId());
Expand All @@ -30,6 +51,20 @@ public ResponseEntity<ApiResponse<MyProfileResponseDto.MyProfileResponse>> 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<ApiResponse<ProfileEditResponseDto.ProfileEditResponse>> editMyProfile(@LoginMember Member member, @Valid @RequestBody ProfileEditRequestDto.ProfileEditRequest request) {
ProfileEditResponseDto.ProfileEditResponse responseDto = mypageService.editProfile(member.getMemberId(), request);
Expand Down
Original file line number Diff line number Diff line change
@@ -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 = "[email protected]")
private String email;

@Schema(description = "수정할 이름을 입력해주세요.", example = "김예시")
private String name;

@Schema(description = "수정할 전화번호을 입력해주세요.", example = "010-1234-5678")
private String phone;
}
}
Loading