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
@@ -1,6 +1,7 @@
package com.practice.likelionhackathoncesco.domain.user.controller;

import com.practice.likelionhackathoncesco.domain.user.dto.response.CreditResponse;
import com.practice.likelionhackathoncesco.domain.user.dto.response.UserCreditResponse;
import com.practice.likelionhackathoncesco.domain.user.service.UserCreditService;
import com.practice.likelionhackathoncesco.global.response.BaseResponse;
import io.swagger.v3.oas.annotations.Operation;
Expand Down Expand Up @@ -28,4 +29,12 @@ public ResponseEntity<BaseResponse<CreditResponse>> getCreditStep(
CreditResponse creditResponse = userCreditService.PostCreditStep(userId);
return ResponseEntity.ok(BaseResponse.success("크레딧 지급 기준 충족 여부 조회 완료", creditResponse));
}

@Operation(summary = "사용자 보유 크레딧 조회", description = "사용자의 보유 크레딧을 조회하는 API")
@GetMapping("/hascredit/{userId}")
public ResponseEntity<BaseResponse<UserCreditResponse>> getCredit(
@Parameter(description = "사용자 ID") @PathVariable Long userId) {
UserCreditResponse userCreditResponse = userCreditService.getUserCredit(userId);
return ResponseEntity.ok(BaseResponse.success("사용자 보유 크레딧 조회 완료", userCreditResponse));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.practice.likelionhackathoncesco.domain.user.dto.response;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class UserCreditResponse {
private Integer credit;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.practice.likelionhackathoncesco.domain.user.service;

import com.practice.likelionhackathoncesco.domain.user.dto.response.CreditResponse;
import com.practice.likelionhackathoncesco.domain.user.dto.response.UserCreditResponse;
import com.practice.likelionhackathoncesco.domain.user.entity.User;
import com.practice.likelionhackathoncesco.domain.user.exception.UserErrorCode;
import com.practice.likelionhackathoncesco.domain.user.repository.UserRepository;
Expand Down Expand Up @@ -40,6 +41,18 @@ public CreditResponse PostCreditStep(Long userId) {
}
}

@Transactional(readOnly = true)
public UserCreditResponse getUserCredit(Long userId) {
log.info("[UserCreditService] 사용자 크레딧 조회 시도");
User user =
userRepository
.findById(userId)
.orElseThrow(() -> new CustomException(UserErrorCode.USER_NOT_FOUND));

log.info("[UserCreditService] 사용자 크레딧 조회 완료 : credit={}", user.getCredit());
return new UserCreditResponse(user.getCredit());
}

public CreditResponse toCreditResponse(Boolean one, Boolean five, Boolean fifteen) {
return CreditResponse.builder()
.postCountOne(one)
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/cesco-BackEnd-config