Skip to content

Commit

Permalink
[REFACTOR] 전반적 코드 정리 - #95
Browse files Browse the repository at this point in the history
[REFACTOR] 전반적 코드 정리
  • Loading branch information
gardening-y authored Jul 15, 2024
2 parents d80b989 + c6661d8 commit 803d7f1
Show file tree
Hide file tree
Showing 58 changed files with 272 additions and 387 deletions.
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

0 comments on commit 803d7f1

Please sign in to comment.