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

[REFACTOR] 전반적 코드 정리 - #95 #104

Merged
merged 25 commits into from
Jul 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
407d377
[fix] Advertise 오타 수정 - #95
gardening-y Jul 14, 2024
ee0990a
[fix] 클래스명 대문자 수정 - #95
gardening-y Jul 14, 2024
56f0a33
[fix] 클래스명, 메소드명 대, 소문자 수정 - #95
gardening-y Jul 14, 2024
77a640f
[del] sout문 삭제 - #95
gardening-y Jul 14, 2024
39f7d47
[del] 불필요한 import 삭제 - #95
gardening-y Jul 14, 2024
94d34ac
[del] 불필요한 import 삭제 - #95
gardening-y Jul 14, 2024
086bc35
[fix] 클래스명, 메서드명 수정 - #95
gardening-y Jul 14, 2024
609bd12
[refactor] collector -> list 수정 - #95
gardening-y Jul 15, 2024
615407d
[del] 사용하지 않는 메서드 삭제 - #95
gardening-y Jul 15, 2024
a90651b
[refactor] dto 스펙 변경 - #95
gardening-y Jul 15, 2024
9454643
[del] 불필요한 import 삭제 - #95
gardening-y Jul 15, 2024
26e06e8
[del] 불필요한 import 삭제 - #95
gardening-y Jul 15, 2024
ceb0414
[refactor] collect -> list 변경 - #95
gardening-y Jul 15, 2024
55e455b
[del] 불필요한 import 삭제 - #95
gardening-y Jul 15, 2024
c229cb8
[refactor] Exception 변경 - #95
gardening-y Jul 15, 2024
d4dc558
[refactor] Service 폴더 이동 - #95
gardening-y Jul 15, 2024
4695da8
[refactor] Exception 변경 - #95
gardening-y Jul 15, 2024
f3a3313
[refactor] dto 변수 final 선언 - #95
gardening-y Jul 15, 2024
17937f8
[del] 불필요한 import 삭 - #95
gardening-y Jul 15, 2024
49c306c
[refactor] dto 스펙 변경 - #95
gardening-y Jul 15, 2024
2c76e7c
[refactor] Exception 변경 및 FailurCode 메세지 추가 - #95
gardening-y Jul 15, 2024
9730bd1
[refactor] 폴더 및 메서드 명 변경 - #95
gardening-y Jul 15, 2024
30c6d45
[refactor] Controller Param final 선언 - #95
gardening-y Jul 15, 2024
859592f
[fix] conflict 해결
gardening-y Jul 15, 2024
c6661d8
[fix] conflict 해결
gardening-y Jul 15, 2024
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 @@ -2,7 +2,6 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;

@SpringBootApplication
public class DateroadApplication {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dateroad.advertisment.api;
package org.dateroad.advertisement.api;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
Expand All @@ -8,15 +8,14 @@
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.dateroad.advertisment.dto.response.AdvGetAllRes;
import org.dateroad.advertisment.dto.response.AdvGetDetailRes;
import org.dateroad.auth.argumentresolve.UserId;
import org.dateroad.advertisement.dto.response.AdvGetAllRes;
import org.dateroad.advertisement.dto.response.AdvGetDetailRes;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;

@Tag(name = "광고 관련 API")
@SecurityRequirement(name = "Authorization")
public interface AdvertismentApi {
public interface AdvertisementApi {
@Operation(
summary = "광고 전체 조회 API",
responses = {
Expand Down Expand Up @@ -77,7 +76,7 @@ public interface AdvertismentApi {
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<AdvGetAllRes> getAllAdvertisments();
ResponseEntity<AdvGetAllRes> getAllAdvertisements();

@Operation(
summary = "광고 상세 조회 API",
Expand Down Expand Up @@ -139,7 +138,7 @@ public interface AdvertismentApi {
responseCode = "500",
description = "서버 내부 오류입니다.",
content = @Content)})
ResponseEntity<AdvGetDetailRes> getAdvertismentsDetail(
ResponseEntity<AdvGetDetailRes> getAdvertisementsDetail(
@Parameter(required = true) final @PathVariable Long advId
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.dateroad.advertisement.api;

import lombok.RequiredArgsConstructor;
import org.dateroad.advertisement.dto.response.AdvGetAllRes;
import org.dateroad.advertisement.dto.response.AdvGetDetailRes;
import org.dateroad.advertisement.service.AdvertisementService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/v1/advertisements")
public class AdvertisementController {
private final AdvertisementService advertisementService;

@GetMapping
public ResponseEntity<AdvGetAllRes> getAllAdvertisements(){
return ResponseEntity.ok(advertisementService.getAllAdvertisements());
}

@GetMapping("{advId}")
public ResponseEntity<AdvGetDetailRes> getAllAdvertisements(
final @PathVariable Long advId
){
return ResponseEntity.ok(advertisementService.getAdvertisementsDetail(advId));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.dateroad.advertisement.dto.response;

import java.util.List;
import lombok.AccessLevel;
import lombok.Builder;
import org.dateroad.advertisement.domain.AdTagType;
import org.dateroad.advertisement.domain.Advertisement;

@Builder(access = AccessLevel.PRIVATE)
public record AdvGetAllRes(
List<AdvertisementDtoRes> advertisementDtoResList
) {
public static AdvGetAllRes of(List<AdvertisementDtoRes> advertisementDtoResList) {
return AdvGetAllRes.builder()
.advertisementDtoResList(advertisementDtoResList)
.build();
}

@Builder(access = AccessLevel.PRIVATE)
public record AdvertisementDtoRes(
Long advertisementId,
String thumbnail,
String title,
AdTagType tag
) {
public static AdvertisementDtoRes of(Advertisement advertisement) {
return AdvertisementDtoRes.builder()
.advertisementId(advertisement.getId())
.thumbnail(advertisement.getThumbnail())
.title(advertisement.getTitle())
.tag(advertisement.getTag())
.build();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package org.dateroad.advertisment.dto.response;
package org.dateroad.advertisement.dto.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import lombok.AccessLevel;
import lombok.Builder;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.dateroad.advertisement.service;

import java.util.List;
import lombok.RequiredArgsConstructor;
import org.dateroad.adImage.domain.AdImage;
import org.dateroad.adImage.repository.AdImageRepository;
import org.dateroad.advertisement.domain.Advertisement;
import org.dateroad.advertisement.dto.response.AdvGetAllRes;
import org.dateroad.advertisement.repository.AdvertisementRepository;
import org.dateroad.advertisement.dto.response.AdvGetAllRes.AdvertisementDtoRes;
import org.dateroad.advertisement.dto.response.AdvGetDetailRes;
import org.dateroad.advertisement.dto.response.AdvGetDetailRes.AdvImagesRes;
import org.dateroad.code.FailureCode;
import org.dateroad.exception.EntityNotFoundException;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class AdvertisementService {
private final AdvertisementRepository advertisementRepository;
private final AdImageRepository adImageRepository;

public AdvGetAllRes getAllAdvertisements() {
Pageable topFive = PageRequest.of(0, 5);
List<Advertisement> advertisements = advertisementRepository.findTop5ByOrderByCreatedDateDesc(topFive);
List<AdvertisementDtoRes> advertisementDtoResList = advertisements.stream()
.map(AdvertisementDtoRes::of).toList();
return AdvGetAllRes.of(advertisementDtoResList);
}

public AdvGetDetailRes getAdvertisementsDetail(final Long advId) {
Advertisement advertisement = getAdvertisement(advId);
List<AdImage> adImages = adImageRepository.findAllById(advId);
return AdvGetDetailRes.of(
getImages(adImages), advertisement.getTitle(), advertisement.getCreatedAt().toLocalDate(),
advertisement.getTitle()
);
}

private Advertisement getAdvertisement(final Long advId) {
return advertisementRepository.findById(advId).orElseThrow(
() -> new EntityNotFoundException(FailureCode.ADVERTISEMENT_NOT_FOUND)
);
}

private List<AdvImagesRes> getImages(final List<AdImage> adImages) {
return adImages.stream().map(
adImage -> AdvImagesRes.of(adImage.getImageUrl(), adImage.getSequence())
).toList();
}
}

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,9 @@
import org.dateroad.auth.jwt.refreshtoken.RefreshTokenGenerator;
import org.dateroad.code.FailureCode;
import org.dateroad.exception.UnauthorizedException;
import org.dateroad.refreshtoken.domain.RefreshToken;
import org.dateroad.refreshtoken.repository.RefreshTokenRepository;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Base64;

@RequiredArgsConstructor
@Component
Expand All @@ -34,11 +30,6 @@ public void validateRefreshToken(LocalDateTime expireDate) {
}
}

//Base64 인코딩된 리프레시 토큰 문자열을 바이트 배열
private byte[] toBinary(String refreshToken) {
return Base64.getDecoder().decode(refreshToken);
}

public long getUserIdFromSubject(String token) {
Jws<Claims> jws = jwtGenerator.parseToken(token);
String subject = jws.getBody().getSubject();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import org.dateroad.code.FailureCode;
import org.dateroad.exception.UnauthorizedException;
import org.springframework.stereotype.Component;

public class JwtValidator {
public void equalRefreshToken(String refreshToken, String storedRefreshToken) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
package org.dateroad.auth.jwt.refreshtoken;

import lombok.RequiredArgsConstructor;
import org.dateroad.code.FailureCode;
import org.dateroad.exception.UnauthorizedException;
import org.dateroad.refreshtoken.domain.RefreshToken;
import org.dateroad.refreshtoken.repository.RefreshTokenRepository;
import org.springframework.stereotype.Component;

import java.nio.ByteBuffer;
import java.security.SecureRandom;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Base64;
import java.util.Optional;

@RequiredArgsConstructor
@Component
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package org.dateroad.config;

import java.util.concurrent.Executor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

@Configuration
@EnableAsync
Expand Down
Loading
Loading