Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/Team-HMH/HMH-Server into…
Browse files Browse the repository at this point in the history
… fix/#91-delete-user-relationships
  • Loading branch information
kseysh committed Jan 19, 2024
2 parents 7f60772 + 29fecd9 commit 60d9b07
Show file tree
Hide file tree
Showing 10 changed files with 83 additions and 18 deletions.
3 changes: 2 additions & 1 deletion src/main/java/sopt/org/HMH/domain/app/controller/AppApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
import sopt.org.HMH.domain.app.dto.request.AppArrayGoalTimeRequest;
import sopt.org.HMH.domain.app.dto.request.AppDeleteRequest;
import sopt.org.HMH.global.auth.UserId;
import sopt.org.HMH.global.auth.jwt.JwtConstants;
import sopt.org.HMH.global.common.response.BaseResponse;

@Tag(name = "스크린타임 앱 관련 API")
@SecurityRequirement(name = "Authorization")
@SecurityRequirement(name = JwtConstants.AUTHORIZATION)
public interface AppApi {
@Operation(
summary = "스크린타임 제한 앱 추가 API",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
import sopt.org.HMH.domain.challenge.dto.request.ChallengeRequest;
import sopt.org.HMH.domain.challenge.dto.response.ChallengeResponse;
import sopt.org.HMH.global.auth.UserId;
import sopt.org.HMH.global.auth.jwt.JwtConstants;
import sopt.org.HMH.global.common.response.BaseResponse;

@Tag(name = "챌린지 관련 API")
@SecurityRequirement(name = "Authorization")
@SecurityRequirement(name = JwtConstants.AUTHORIZATION)
public interface ChallengeApi {
@Operation(
summary = "챌린지가 끝난 후 새 챌린지 생성하는 API",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import sopt.org.HMH.domain.challenge.service.ChallengeService;
import sopt.org.HMH.global.auth.UserId;
import sopt.org.HMH.global.common.response.BaseResponse;
import sopt.org.HMH.global.common.response.BaseResponse;
import sopt.org.HMH.global.common.response.EmptyJsonResponse;

@RestController
Expand All @@ -24,6 +25,7 @@ public class ChallengeController implements ChallengeApi {
private final ChallengeService challengeService;

@PostMapping
@Override
public ResponseEntity<BaseResponse<?>> orderAddChallenge(@UserId final Long userId,
@RequestHeader("OS") final String os,
@RequestBody final ChallengeRequest request) {
Expand All @@ -38,6 +40,7 @@ public ResponseEntity<BaseResponse<?>> orderAddChallenge(@UserId final Long user
}

@GetMapping
@Override
public ResponseEntity<BaseResponse<ChallengeResponse>> orderGetChallenge(@UserId final Long userId,
@RequestHeader("OS") final String os) {
return ResponseEntity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ public record ChallengeResponse(
public static ChallengeResponse of(Challenge challenge, String os) {
List<DailyChallenge> dailyChallenges = challenge.getDailyChallenges();

int daysSinceToday = (int) ChronoUnit.DAYS.between(LocalDateTime.now().toLocalDate(),
challenge.getDailyChallenges().get(0).getCreatedAt().toLocalDate());
int daysSinceToday = (int) ChronoUnit.DAYS.between(challenge.getCreatedAt().toLocalDate(),
LocalDateTime.now().toLocalDate());
int todayIndex = daysSinceToday >= challenge.getPeriod() ? -1 : daysSinceToday;
int dailyChallengeIndex = todayIndex == -1 ? dailyChallenges.size()-1 : todayIndex;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
import sopt.org.HMH.domain.app.dto.request.AppArrayUsageTimeRequest;
import sopt.org.HMH.domain.dailychallenge.dto.response.DailyChallengeResponse;
import sopt.org.HMH.global.auth.UserId;
import sopt.org.HMH.global.auth.jwt.JwtConstants;
import sopt.org.HMH.global.common.response.BaseResponse;

@Tag(name = "일별챌린지 관련 API")
@SecurityRequirement(name = "Authorization")
@SecurityRequirement(name = JwtConstants.AUTHORIZATION)
public interface DailyChallengeApi {
@Operation(
summary = "홈뷰 일별 챌린지 정보 조회하는 API",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public class DailyChallengeController implements DailyChallengeApi {
private final DailyChallengeService dailyChallengeService;

@GetMapping
@Override
public ResponseEntity<BaseResponse<DailyChallengeResponse>> orderDetailDailyChallenge(@UserId final Long userId,
@RequestHeader("OS") final String os) {
return ResponseEntity
Expand All @@ -33,6 +34,7 @@ public ResponseEntity<BaseResponse<DailyChallengeResponse>> orderDetailDailyChal
}

@PatchMapping
@Override
public ResponseEntity<BaseResponse<?>> orderModifyDailyChallenge(
@UserId final Long userId,
@RequestHeader("OS") final String os,
Expand All @@ -45,6 +47,7 @@ public ResponseEntity<BaseResponse<?>> orderModifyDailyChallenge(
}

@PatchMapping("/failure")
@Override
public ResponseEntity<BaseResponse<?>> orderModifyDailyChallengeStatusFailure(@UserId final Long userId) {
dailyChallengeService.modifyDailyChallengeStatusFailure(userId);
return ResponseEntity
Expand Down
52 changes: 52 additions & 0 deletions src/main/java/sopt/org/HMH/domain/user/controller/UserApi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package sopt.org.HMH.domain.user.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import sopt.org.HMH.domain.user.dto.request.SocialPlatformRequest;
import sopt.org.HMH.domain.user.dto.request.SocialSignUpRequest;
import sopt.org.HMH.global.auth.UserId;
import sopt.org.HMH.global.auth.jwt.JwtConstants;
import sopt.org.HMH.global.common.response.BaseResponse;

@Tag(name = "회원 관련 API")
@SecurityRequirement(name = JwtConstants.AUTHORIZATION)
public interface UserApi {

@Operation(
summary = "소셜 로그인")
ResponseEntity<BaseResponse<?>> orderLogin(
@Parameter(hidden = true) @RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestBody final SocialPlatformRequest request
);

@Operation(
summary = "회원 가입")
ResponseEntity<BaseResponse<?>> orderSignup(
@Parameter(hidden = true) @RequestHeader(JwtConstants.AUTHORIZATION) final String socialAccessToken,
@RequestHeader("OS") final String os,
@RequestBody final SocialSignUpRequest request
);

@Operation(
summary = "토큰 재발급")
ResponseEntity<BaseResponse<?>> orderReissue(
@Parameter(hidden = true) @RequestHeader(JwtConstants.AUTHORIZATION) final String refreshToken
);

@Operation(
summary = "로그아웃")
ResponseEntity<BaseResponse<?>> orderLogout(@UserId @Parameter(hidden = true) final Long userId);

@Operation(
summary = "유저 정보 불러오기")
ResponseEntity<BaseResponse<?>> orderGetUserInfo(@UserId @Parameter(hidden = true) final Long userId);

@Operation(
summary = "회원 탈퇴")
ResponseEntity<BaseResponse<?>> orderWithdraw(@UserId @Parameter(hidden = true) final Long userId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/user")
public class UserController {
public class UserController implements UserApi{

private final UserService userService;

@PostMapping("/login")
public ResponseEntity<BaseResponse<LoginResponse>> orderLogin(
@Override
public ResponseEntity<BaseResponse<?>> orderLogin(
@RequestHeader("Authorization") final String socialAccessToken,
@RequestBody final SocialPlatformRequest request
) {
Expand All @@ -38,7 +39,8 @@ public ResponseEntity<BaseResponse<LoginResponse>> orderLogin(
}

@PostMapping("/signup")
public ResponseEntity<BaseResponse<LoginResponse>> orderSignup(
@Override
public ResponseEntity<BaseResponse<?>> orderSignup(
@RequestHeader("Authorization") final String socialAccessToken,
@RequestHeader("OS") final String os,
@RequestBody final SocialSignUpRequest request
Expand All @@ -49,7 +51,8 @@ public ResponseEntity<BaseResponse<LoginResponse>> orderSignup(
}

@PostMapping("/reissue")
public ResponseEntity<BaseResponse<ReissueResponse>> orderReissue(
@Override
public ResponseEntity<BaseResponse<?>> orderReissue(
@RequestHeader("Authorization") final String refreshToken
) {
return ResponseEntity
Expand All @@ -58,6 +61,7 @@ public ResponseEntity<BaseResponse<ReissueResponse>> orderReissue(
}

@PostMapping("/logout")
@Override
public ResponseEntity<BaseResponse<?>> orderLogout(@UserId final Long userId) {
userService.logout(userId);
return ResponseEntity
Expand All @@ -66,13 +70,15 @@ public ResponseEntity<BaseResponse<?>> orderLogout(@UserId final Long userId) {
}

@GetMapping
public ResponseEntity<BaseResponse<UserInfoResponse>> orderGetUserInfo(@UserId final Long userId) {
@Override
public ResponseEntity<BaseResponse<?>> orderGetUserInfo(@UserId final Long userId) {
return ResponseEntity
.status(UserSuccess.GET_USER_INFO_SUCCESS.getHttpStatus())
.body(BaseResponse.success(UserSuccess.GET_USER_INFO_SUCCESS, userService.getUserInfo(userId)));
}

@DeleteMapping
@Override
public ResponseEntity<BaseResponse<?>> orderWithdraw(@UserId final Long userId) {
userService.withdraw(userId);
return ResponseEntity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package sopt.org.HMH.global.common.response;
package sopt.org.HMH.global.common.exception;

import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
Expand All @@ -7,6 +7,7 @@
import org.springframework.web.bind.annotation.ExceptionHandler;
import sopt.org.HMH.global.common.exception.base.ErrorBase;
import sopt.org.HMH.global.common.exception.base.ExceptionBase;
import sopt.org.HMH.global.common.response.BaseResponse;

@ControllerAdvice
@RequiredArgsConstructor
Expand Down
11 changes: 4 additions & 7 deletions src/main/java/sopt/org/HMH/global/config/SwaggerConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,18 @@
import io.swagger.v3.oas.annotations.enums.SecuritySchemeIn;
import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
import io.swagger.v3.oas.annotations.security.SecurityScheme;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import sopt.org.HMH.global.auth.jwt.JwtConstants;

@Configuration
@SecurityScheme(
name = "Authorization",
name = JwtConstants.AUTHORIZATION,
in = SecuritySchemeIn.HEADER,
type = SecuritySchemeType.HTTP,
bearerFormat = "JWT",
scheme = "bearer",
description = "Authorization: Bearer ~"
type = SecuritySchemeType.APIKEY,
description = "Bearer 토큰은 Bearer~ 를 붙여주세요."
)
public class SwaggerConfig {
@Bean
Expand All @@ -27,7 +25,6 @@ public OpenAPI openAPI() {
.version("1.0.0");

return new OpenAPI()
.components(new Components())
.info(info);
}
}

0 comments on commit 60d9b07

Please sign in to comment.