Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

main #235

Merged
merged 51 commits into from
Nov 3, 2023
Merged

main #235

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
3c941f6
#212 [fix] 방장 가능 시간 입력 exception에 data 담기
sohyundoh Sep 30, 2023
9fceaac
#212 [fix] 코드리뷰 반영
sohyundoh Sep 30, 2023
6c732fd
#212 [fix] custom exception 작성
sohyundoh Sep 30, 2023
b18b278
#212 [fix] controllerAdvice 처리
sohyundoh Sep 30, 2023
322e82c
#212 [fix] 이전 작업 롤백
sohyundoh Sep 30, 2023
a2cba18
#212 [fix] 이전 작업 롤백
sohyundoh Sep 30, 2023
e8709f7
#212 [fix] ErrorResponse 추상화
sohyundoh Sep 30, 2023
1cc45e1
#212 [fix] ErrorDataResponse getter 추가
sohyundoh Sep 30, 2023
152a2d4
Merge pull request #213 from ASAP-as-soon-as-possible/fix/#212
sohyundoh Sep 30, 2023
dbe609b
#196 [fix] 방장 회의 가능 시간 입력 넘어오지 않았을 때 에러 처리
sohyundoh Sep 30, 2023
7eb9869
Merge pull request #214 from ASAP-as-soon-as-possible/fix/#196
sohyundoh Oct 1, 2023
f15c11c
#208 [feat] delete jpql query 구현
KWY0218 Oct 1, 2023
92504c8
#208 [feat] 삭제 비즈니스 로직 구현
KWY0218 Oct 1, 2023
0476c68
#216 [feat] user is_fixed update 로직 개선
KWY0218 Oct 1, 2023
382b763
#216 [feat] clearAutomatically 적용
KWY0218 Oct 1, 2023
5ae49ec
#208 [feat] clearAutomatically 적용
KWY0218 Oct 1, 2023
58d7d9f
Merge pull request #215 from ASAP-as-soon-as-possible/feat/#208
KWY0218 Oct 1, 2023
44e6c3b
Merge pull request #217 from ASAP-as-soon-as-possible/feat/#216
KWY0218 Oct 1, 2023
90f3974
#218 [fix] Error Response 스웨거 적용 및 메세지 수정
sohyundoh Oct 1, 2023
b9d7c68
#218 [fix] Error Response 스웨거 적용 및 메세지 수정
sohyundoh Oct 1, 2023
b96bb41
Merge remote-tracking branch 'origin/fix/#218' into fix/#218
sohyundoh Oct 1, 2023
ef6ae73
#218 [fix] Error Response 스웨거 적용 및 메시지 수정
sohyundoh Oct 1, 2023
df0928f
Merge pull request #219 from ASAP-as-soon-as-possible/fix/#218
sohyundoh Oct 1, 2023
05361d7
#201 [fix] 회의 가능 시간 중복 입력 예외 처리
sohyundoh Oct 2, 2023
863af7f
#201 [fix] 예외 케이스 반영
sohyundoh Oct 2, 2023
c396474
#201 [refactor] 미사용 구문 삭제
sohyundoh Oct 2, 2023
439005f
#201 [refactor] 미사용 구문 삭제
sohyundoh Oct 2, 2023
b1b4f3a
#201 [refactor] 불필요 구문 삭제
sohyundoh Oct 2, 2023
511d11b
Merge pull request #220 from ASAP-as-soon-as-possible/fix/#201
sohyundoh Oct 2, 2023
464d568
#221 [fix] 회의 생성 선호시간대 중복 입력 상황 해결
sohyundoh Oct 9, 2023
61de882
Merge pull request #222 from ASAP-as-soon-as-possible/fix/#221
sohyundoh Oct 9, 2023
9917e4f
#233 [test] test case 추가
KWY0218 Oct 9, 2023
c411935
#233 [feat] save 메소드를 통해 update 실행
KWY0218 Oct 9, 2023
5f778bf
#233 [fix] 조회 시 entity manager 사용
KWY0218 Oct 10, 2023
566821b
Merge pull request #224 from ASAP-as-soon-as-possible/feat/#233
KWY0218 Oct 10, 2023
cf935c2
#255 [feat] error data response to string 추가
KWY0218 Oct 10, 2023
c913efb
#225 [feat] 가독성을 위한 로그 포맷 수정
KWY0218 Oct 10, 2023
7f3519a
Merge pull request #226 from ASAP-as-soon-as-possible/feat/#225
KWY0218 Oct 10, 2023
09549e8
#227 [feat] 로그인 내에서 meeting 조회 시 fetch join 설정
KWY0218 Oct 11, 2023
25824c5
#227 [feat] 회의 확정 후 불필요한 데이터 삭제 로직 삭제
KWY0218 Oct 11, 2023
fa89b27
#227 [feat] save 후 바로 flush 하도록 수정
KWY0218 Oct 11, 2023
e0b077e
#227 [chore] swagger 명세 수정
KWY0218 Oct 11, 2023
ed3968e
#229 [fix] 참여자 회의 가능 시간 중복 체크
sohyundoh Oct 11, 2023
ede8459
Merge pull request #230 from ASAP-as-soon-as-possible/fix/#229
sohyundoh Oct 11, 2023
b965b21
Merge pull request #228 from ASAP-as-soon-as-possible/feat/#227
KWY0218 Oct 11, 2023
25a1e61
#150 [feat] 예외 리턴 값 수정
sohyundoh Oct 12, 2023
9ea9145
Merge pull request #231 from ASAP-as-soon-as-possible/feat/#150
sohyundoh Oct 12, 2023
089a798
#232 [feat] 확정된 회의를 로그인 시 409 에러 반환
KWY0218 Oct 16, 2023
b48cb54
#232 [feat] 확정된 회의의 종합 일정 시간표 api 호출 시 409 반환
KWY0218 Oct 16, 2023
04f53e3
#232 [feat] 확정된 회의의 최적의 회의시간 api 호출 시 409 반환
KWY0218 Oct 16, 2023
93d3a5c
Merge pull request #233 from ASAP-as-soon-as-possible/feat/#232
KWY0218 Oct 16, 2023
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
@@ -1,9 +1,17 @@
package com.asap.server.common.advice;

import com.asap.server.common.dto.ErrorDataResponse;
import com.asap.server.common.dto.ErrorResponse;
import com.asap.server.common.utils.SlackUtil;
import com.asap.server.controller.dto.response.HostLoginResponseDto;
import com.asap.server.exception.Error;
import com.asap.server.exception.model.AsapException;
import com.asap.server.exception.model.BadRequestException;
import com.asap.server.exception.model.ConflictException;
import com.asap.server.exception.model.ForbiddenException;
import com.asap.server.exception.model.HostTimeForbiddenException;
import com.asap.server.exception.model.NotFoundException;
import com.asap.server.exception.model.UnauthorizedException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
Expand Down Expand Up @@ -47,12 +55,6 @@ protected ErrorResponse handleMethodArgumentNotValidException(final MethodArgume
else return ErrorResponse.error(Error.VALIDATION_REQUEST_MISSING_EXCEPTION, fieldError.getDefaultMessage());
}

@ResponseStatus(HttpStatus.NOT_FOUND)
@ExceptionHandler(NoHandlerFoundException.class)
public ErrorResponse handleNotFoundException(NoHandlerFoundException exception) {
return ErrorResponse.error(Error.URI_NOT_FOUND_EXCEPTION);
}

@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(HttpMessageNotReadableException.class)
protected ErrorResponse handleJsonParseException(final HttpMessageNotReadableException e) {
Expand All @@ -65,6 +67,52 @@ protected ErrorResponse handleValidationException(final ConstraintViolationExcep
return ErrorResponse.error(Error.VALIDATION_REQUEST_MISSING_EXCEPTION);
}


@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(BadRequestException.class)
protected ErrorResponse handleBadRequestException(final BadRequestException e) {
return ErrorResponse.error(e.getError());
}

/**
* 401 UnAuthorization
*/
@ResponseStatus(HttpStatus.UNAUTHORIZED)
@ExceptionHandler(UnauthorizedException.class)
protected ErrorResponse handleUnAuthorizedException(final UnauthorizedException e) {
return ErrorResponse.error(e.getError());
}

/**
* 403 Forbidden
*/
@ResponseStatus(HttpStatus.FORBIDDEN)
@ExceptionHandler(ForbiddenException.class)
protected ErrorResponse handleForbiddenException(final ForbiddenException e) {
return ErrorResponse.error(e.getError());
}

@ResponseStatus(HttpStatus.FORBIDDEN)
@ExceptionHandler(HostTimeForbiddenException.class)
protected ErrorDataResponse<HostLoginResponseDto> handleForbiddenException(final HostTimeForbiddenException e) {
return ErrorDataResponse.error(e.getError(), e.getMessage(), e.getData());
}

/**
* 404 Not Found
*/
@ResponseStatus(HttpStatus.NOT_FOUND)
@ExceptionHandler(NotFoundException.class)
protected ErrorResponse handleNotFoundException(final NotFoundException e) {
return ErrorResponse.error(e.getError());
}

@ResponseStatus(HttpStatus.NOT_FOUND)
@ExceptionHandler(NoHandlerFoundException.class)
public ErrorResponse handleNotFoundException(NoHandlerFoundException exception) {
return ErrorResponse.error(Error.URI_NOT_FOUND_EXCEPTION);
}

/**
* 405 Method Not Allowed
* 지원하지 않은 HTTP method 호출 할 경우 발생하는 Exception
Expand All @@ -76,41 +124,14 @@ protected ErrorResponse handleHttpRequestMethodNotSupportedException(
return ErrorResponse.error(METHOD_NOT_ALLOWED_EXCEPTION);
}

// /**
// * 401 UnAuthorization
// */
// @ResponseStatus(HttpStatus.UNAUTHORIZED)
// @ExceptionHandler(UnauthorizedException.class)
// protected ErrorResponse handleUnAuthorizedException(final UnauthorizedException e) {
// return ErrorResponse.error(e.getError());
// }
//
// /**
// * 403 Forbidden
// */
// @ResponseStatus(HttpStatus.FORBIDDEN)
// @ExceptionHandler(ForbiddenException.class)
// protected ErrorResponse handleForbiddenException(final ForbiddenException e) {
// return ErrorResponse.error(e.getError());
// }

// /**
// * 404 Not Found
// */
// @ResponseStatus(HttpStatus.NOT_FOUND)
// @ExceptionHandler(NotFoundException.class)
// protected ErrorResponse handleNotFoundException(final NotFoundException e) {
// return ErrorResponse.error(e.getError());
// }

/**
* 409 Conflict
*/
// @ResponseStatus(HttpStatus.CONFLICT)
// @ExceptionHandler(ConflictException.class)
// protected ErrorResponse handleConflictException(final ConflictException e) {
// return ErrorResponse.error(e.getError());
// }
@ResponseStatus(HttpStatus.CONFLICT)
@ExceptionHandler(ConflictException.class)
protected ErrorResponse handleConflictException(final ConflictException e) {
return ErrorResponse.error(e.getError());
}

/**
* 500 Internal Server
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,15 @@ public Object requestLogging(ProceedingJoinPoint proceedingJoinPoint) throws Thr
long startAt = System.currentTimeMillis();
Object returnValue = proceedingJoinPoint.proceed(proceedingJoinPoint.getArgs());
long endAt = System.currentTimeMillis();
log.info("====> Request: {} {} ({}ms)\n *Header = {}\n", request.getMethod(), request.getRequestURL(), endAt - startAt, getHeaders(request));
log.info("================================================NEW===============================================");
log.info("====> Request: {} {} ({}ms)\n *Header = {}", request.getMethod(), request.getRequestURL(), endAt - startAt, getHeaders(request));
if ("POST".equalsIgnoreCase(request.getMethod())) {
log.info("====> Body: {}", objectMapper.readTree(cachingRequest.getContentAsByteArray()));
}
if (returnValue != null) {
log.info("====> Response: {}\n", returnValue);
log.info("====> Response: {}", returnValue);
}
log.info("================================================END===============================================");
return returnValue;
}

Expand Down
24 changes: 24 additions & 0 deletions src/main/java/com/asap/server/common/dto/ErrorDataResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.asap.server.common.dto;

import com.asap.server.exception.Error;
import lombok.Getter;

@Getter
public class ErrorDataResponse<T> extends ErrorResponse {

private T data;

private ErrorDataResponse(int code, String message, T data) {
super(code, message);
this.data = data;
}

public static <T> ErrorDataResponse<T> error(Error error, String message, T data) {
return new ErrorDataResponse<T>(error.getHttpStatusCode(), message, data);
}

@Override
public String toString() {
return "code: " + super.getCode() + " message: " + super.getMessage() + " data: " + this.data;
}
}
4 changes: 2 additions & 2 deletions src/main/java/com/asap/server/common/dto/ErrorResponse.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package com.asap.server.common.dto;

import com.asap.server.exception.Error;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;

@Getter
@ToString
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class ErrorResponse {
private final int code;
private final String message;
Expand All @@ -17,6 +16,7 @@ public static ErrorResponse error(Error error) {
return new ErrorResponse(error.getHttpStatusCode(), error.getMessage());
}


public static ErrorResponse error(Error error, String message) {
return new ErrorResponse(error.getHttpStatusCode(), message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
@Getter
@ToString
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class SuccessResponse<T> {
private final int code;
private final String message;
Expand All @@ -20,6 +20,7 @@ public static SuccessResponse success(Success success) {
return new SuccessResponse<>(success.getHttpStatusCode(), success.getMessage());
}


public static <T> SuccessResponse<T> success(Success success, T data) {
return new SuccessResponse<T>(success.getHttpStatusCode(), success.getMessage(), data);
}
Expand Down
16 changes: 10 additions & 6 deletions src/main/java/com/asap/server/controller/MeetingController.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.asap.server.controller.dto.response.BestMeetingTimeResponseDto;
import com.asap.server.controller.dto.response.FixedMeetingResponseDto;
import com.asap.server.controller.dto.response.MeetingSaveResponseDto;
import com.asap.server.controller.dto.response.MeetingScheduleResponseDto;
import com.asap.server.controller.dto.response.MeetingTitleResponseDto;
import com.asap.server.controller.dto.response.TimeTableResponseDto;
import com.asap.server.exception.Success;
Expand Down Expand Up @@ -66,7 +67,7 @@ public SuccessResponse<MeetingSaveResponseDto> create(

@Operation(summary = "[큐 카드] 큐 카드 확정 API")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "유저 정보 조회 성공"),
@ApiResponse(responseCode = "200", description = "회의 시간 확정 성공입니다."),
@ApiResponse(responseCode = "400",
description = "1. 회의 진행 월이 입력되지 않았습니다.\n"
+ "2. 회의 진행 날짜가 입력되지 않았습니다.\n"
Expand Down Expand Up @@ -103,15 +104,15 @@ public SuccessResponse confirmMeeting(
@ApiResponse(responseCode = "500", description = "서버 내부 오류", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
})
@GetMapping("/{meetingId}/schedule")
public SuccessResponse getMeetingSchedule(
public SuccessResponse<MeetingScheduleResponseDto> getMeetingSchedule(
@Parameter(schema = @Schema(implementation = String.class), in = ParameterIn.PATH) @MeetingPathVariable final Long meetingId
) {
return SuccessResponse.success(Success.FIND_MEETING_SCHEDULE_SUCCESS, meetingService.getMeetingSchedule(meetingId));
}

@Operation(summary = "[큐 카드] 큐 카드 조회 API")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "유저 정보 조회 성공"),
@ApiResponse(responseCode = "200", description = "큐카드 조회 성공입니다."),
@ApiResponse(responseCode = "400", description = "해당 회의는 존재하지 않습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "403", description = "확정되지 않은 회의입니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "404", description = "해당 유저는 존재하지 않습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
Expand All @@ -129,15 +130,17 @@ public SuccessResponse<FixedMeetingResponseDto> getFixedMeetingInformation(
@GetMapping("/{meetingId}/timetable")
@SecurityRequirement(name = "JWT Auth")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "회의 선택지가 성공적으로 조회되었습니다."),
@ApiResponse(responseCode = "200", description = "종합 일정 시간표 조회 성공입니다."),
@ApiResponse(responseCode = "401", description = "해당 유저는 해당 방의 방장이 아닙니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "404",
description =
"1. 해당 회의는 존재하지 않습니다.\n"
+ "2. 해당 유저는 존재하지 않습니다.\n"
+ "3. 회의 가능 일자가 존재하지 않습니다.\n"
+ "4. 해당 회의의 가능 시간을 입력한 유저가 없습니다.",
content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "409", description = "이미 확정된 회의입니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "500", description = "서버 내부 오류", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
})
public SuccessResponse<TimeTableResponseDto> getTimeTable(
@Parameter(schema = @Schema(implementation = String.class), in = ParameterIn.PATH) @MeetingPathVariable final Long meetingId,
Expand Down Expand Up @@ -166,12 +169,13 @@ public SuccessResponse<MeetingTitleResponseDto> getIsFixedMeeting(

@Operation(summary = "[회의 일정 확정 뷰] 최적의 회의 시간 확인 API")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "유저 정보 조회 성공"),
@ApiResponse(responseCode = "200", description = "최적의 회의시간 조회 성공입니다."),
@ApiResponse(responseCode = "401", description = "해당 유저는 해당 방의 방장이 아닙니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "404",
description = "1. 해당 회의는 존재하지 않습니다.\n"
+ "2. 회의 가능 일자가 존재하지 않습니다."
, content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "409", description = "이미 확정된 회의입니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "500", description = "서버 내부 오류", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
})
@GetMapping("/{meetingId}/details")
Expand Down
24 changes: 15 additions & 9 deletions src/main/java/com/asap/server/controller/UserController.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package com.asap.server.controller;

import com.asap.server.common.dto.ErrorDataResponse;
import com.asap.server.common.dto.ErrorResponse;
import com.asap.server.common.dto.SuccessResponse;
import com.asap.server.config.resolver.meeting.MeetingPathVariable;
import com.asap.server.config.resolver.user.UserId;
import com.asap.server.controller.dto.request.AvailableTimeRequestDto;
import com.asap.server.controller.dto.request.HostLoginRequestDto;
import com.asap.server.controller.dto.request.UserMeetingTimeSaveRequestDto;
import com.asap.server.controller.dto.response.HostLoginResponseDto;
import com.asap.server.controller.dto.response.UserMeetingTimeResponseDto;
import com.asap.server.controller.dto.response.UserTimeResponseDto;
import com.asap.server.exception.Success;
import com.asap.server.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
Expand All @@ -26,6 +30,7 @@
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

@Tag(name = "사용자", description = "사용자 관련 로그인 및 가능 시간 입력 API 입니다.")
Expand All @@ -39,7 +44,7 @@ public class UserController {
@Operation(summary = "[회의 가능 시간 입력 뷰 - 방장] 방장 가능 시간 입력 API")
@SecurityRequirement(name = "JWT Auth")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "유효한 회의 입니다."),
@ApiResponse(responseCode = "201", description = "방장의 회의 가능 시간이 성공적으로 입력되었습니다."),
@ApiResponse(responseCode = "400",
description = "1. 시간 형식이 잘못되었습니다. [YYYY/MM/DD HH:MM]\n"
+ "2. 중복 입력된 시간이 있습니다.\n"
Expand All @@ -55,17 +60,17 @@ public class UserController {
@ApiResponse(responseCode = "500", description = "서버 내부 오류", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
})
@PostMapping("/host/{meetingId}/time")
public SuccessResponse createHostTime(
public SuccessResponse<UserMeetingTimeResponseDto> createHostTime(
@Parameter(schema = @Schema(implementation = String.class), in = ParameterIn.PATH) @MeetingPathVariable final Long meetingId,
@RequestBody final List<@Valid UserMeetingTimeSaveRequestDto> requestDtoList,
@RequestBody final List<@Valid @NotNull UserMeetingTimeSaveRequestDto> requestDtoList,
@UserId @Parameter(hidden = true) final Long userId
) {
return SuccessResponse.success(Success.CREATE_HOST_TIME_SUCCESS, userService.createHostTime(meetingId, userId, requestDtoList));
}

@Operation(summary = "[회의 가능 시간 입력 뷰 - 참여자] 참여자 정보 및 가능 시간 입력 API")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "회의 선택지가 성공적으로 조회되었습니다."),
@ApiResponse(responseCode = "201", description = "참여자 회의 가능 시간 입력을 성공하였습니다."),
@ApiResponse(responseCode = "400",
description = "1. 시간 형식이 잘못되었습니다. [YYYY/MM/DD HH:MM]\n"
+ "2. 중복 입력된 시간이 있습니다.\n"
Expand All @@ -74,7 +79,7 @@ public SuccessResponse createHostTime(
@ApiResponse(responseCode = "404", description = "해당 회의는 존재하지 않습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
})
@PostMapping("/{meetingId}/time")
public SuccessResponse createMemberTime(
public SuccessResponse<UserTimeResponseDto> createMemberTime(
@Parameter(schema = @Schema(implementation = String.class), in = ParameterIn.PATH) @MeetingPathVariable final Long meetingId,
@RequestBody @Valid final AvailableTimeRequestDto requestDto
) {
Expand All @@ -83,17 +88,18 @@ public SuccessResponse createMemberTime(

@Operation(summary = "[방장 입장 뷰] 방장 로그인 API")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "회의 선택지가 성공적으로 조회되었습니다."),
@ApiResponse(responseCode = "200", description = "로그인 성공입니다"),
@ApiResponse(responseCode = "400",
description = "1. 방장 이름의 최대 입력 길이(8자)를 초과했습니다.\n"
+ "2. 비밀번호는 4자리 이상 숫자입니다.",
content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "401", description = "유효하지 않은 사용자 이름 또는 비밀번호입니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "403", description = "회의 가능 시간이 입력되지 않았습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "404", description = "해당 회의는 존재하지 않습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
@ApiResponse(responseCode = "403", description = "회의 가능 시간이 입력되지 않았습니다."),
@ApiResponse(responseCode = "404", description = "해당 회의는 존재하지 않습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "409", description = "이미 확정된 회의입니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class)))
})
@PostMapping("{meetingId}/host")
public SuccessResponse loginByHost(
public SuccessResponse<HostLoginResponseDto> loginByHost(
@Parameter(schema = @Schema(implementation = String.class), in = ParameterIn.PATH) @MeetingPathVariable final Long meetingId,
@RequestBody @Valid final HostLoginRequestDto requestDto
) {
Expand Down
Loading
Loading