Skip to content

Commit

Permalink
[chore] advertisement 변경 - #102
Browse files Browse the repository at this point in the history
  • Loading branch information
sjk4618 committed Jul 15, 2024
1 parent e3e1b54 commit 728cbfe
Show file tree
Hide file tree
Showing 10 changed files with 69 additions and 74 deletions.
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/advertisments")
public class AdvertisementController {
private final AdvertisementService advertisementService;

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

@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
@@ -1,10 +1,10 @@
package org.dateroad.advertisment.dto.response;
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.Advertisment;
import org.dateroad.advertisement.domain.Advertisement;

@Builder(access = AccessLevel.PRIVATE)
public record AdvGetAllRes(
Expand All @@ -23,12 +23,12 @@ public record AdvertismentDtoRes(
String title,
AdTagType tag
) {
public static AdvertismentDtoRes of(Advertisment advertisment) {
public static AdvertismentDtoRes of(Advertisement advertisement) {
return AdvertismentDtoRes.builder()
.advertismentId(advertisment.getId())
.thumbnail(advertisment.getThumbnail())
.title(advertisment.getTitle())
.tag(advertisment.getTag())
.advertismentId(advertisement.getId())
.thumbnail(advertisement.getThumbnail())
.title(advertisement.getTitle())
.tag(advertisement.getTag())
.build();
}
}
Expand Down
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
@@ -1,17 +1,16 @@
package org.dateroad.advertisment.service;
package org.dateroad.advertisement.service;

import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.dateroad.adImage.domain.AdImage;
import org.dateroad.adImage.repository.AdImageRepository;
import org.dateroad.advertisement.domain.Advertisment;
import org.dateroad.advertisement.repository.AdvertismentRepository;
import org.dateroad.advertisment.dto.response.AdvGetAllRes;
import org.dateroad.advertisment.dto.response.AdvGetAllRes.AdvertismentDtoRes;
import org.dateroad.advertisment.dto.response.AdvGetDetailRes;
import org.dateroad.advertisment.dto.response.AdvGetDetailRes.AdvImagesRes;
import org.dateroad.advertisement.domain.Advertisement;
import org.dateroad.advertisement.repository.AdvertisementRepository;
import org.dateroad.advertisement.dto.response.AdvGetAllRes;
import org.dateroad.advertisement.dto.response.AdvGetAllRes.AdvertismentDtoRes;
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;
Expand All @@ -22,8 +21,8 @@
@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class AdvertismentService {
private final AdvertismentRepository advertismentRepository;
public class AdvertisementService {
private final AdvertisementRepository advertisementRepository;
private final AdImageRepository adImageRepository;

private static List<AdvImagesRes> getImages(final List<AdImage> adImages) {
Expand All @@ -34,24 +33,24 @@ private static List<AdvImagesRes> getImages(final List<AdImage> adImages) {

public AdvGetAllRes getAllAdvertisments() {
Pageable topFive = PageRequest.of(0, 5);
return AdvGetAllRes.of(advertismentRepository.findTop5ByOrderByCreatedDateDesc(topFive).
return AdvGetAllRes.of(advertisementRepository.findTop5ByOrderByCreatedDateDesc(topFive).
stream()
.map(AdvertismentDtoRes::of)
.collect(Collectors.toList()));
}

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

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

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public enum FailureCode {

INSUFFICIENT_USER_POINTS(HttpStatus.NOT_FOUND, "e40413", "유저의 포인트가 부족합니다."),
SORT_TYPE_NOT_FOUND(HttpStatus.UNAUTHORIZED, "e40414", "해당 순서 타입을 찾을 수 없습니다."),
ADVERTISMENT_NOT_FOUND(HttpStatus.NOT_FOUND, "e40415", "해당 광고를 찾을 수 없습니다."),
ADVERTISEMENT_NOT_FOUND(HttpStatus.NOT_FOUND, "e40415", "해당 광고를 찾을 수 없습니다."),

/**
* 405 Method Not Allowed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.dateroad.advertisement.domain.Advertisment;
import org.dateroad.advertisement.domain.Advertisement;
import org.dateroad.common.BaseTimeEntity;

@Entity
Expand All @@ -33,7 +33,7 @@ public class AdImage extends BaseTimeEntity {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "advertisment_id")
@NotNull
private Advertisment advertisment;
private Advertisement advertisement;

@Column(name = "image_url")
@NotNull
Expand All @@ -44,12 +44,12 @@ public class AdImage extends BaseTimeEntity {
private int sequence;

public static AdImage create(
final Advertisment advertisment,
final Advertisement advertisement,
final String imageUrl,
final int sequence
) {
return AdImage.builder()
.advertisment(advertisment)
.advertisement(advertisement)
.imageUrl(imageUrl)
.sequence(sequence)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.util.List;
import org.dateroad.adImage.domain.AdImage;
import org.dateroad.advertisement.domain.Advertisment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@

@Entity
@Getter
@Table(name = "advertisments")
@Table(name = "advertisements")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder(access = AccessLevel.PRIVATE)
public class Advertisment extends BaseTimeEntity {
public class Advertisement extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "advertisment_id")
@Column(name = "advertisement_id")
private Long id;

@Column(name = "title")
Expand All @@ -45,12 +45,12 @@ public class Advertisment extends BaseTimeEntity {
@Enumerated(EnumType.STRING)
private AdTagType tag;

public static Advertisment create(
public static Advertisement create(
final String title,
final String description,
final String thumbnail,
final AdTagType tag) {
return Advertisment.builder()
return Advertisement.builder()
.title(title)
.description(description)
.thumbnail(thumbnail)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package org.dateroad.advertisement.repository;

import java.util.List;
import org.dateroad.advertisement.domain.Advertisment;
import org.dateroad.advertisement.domain.Advertisement;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

@Repository
public interface AdvertismentRepository extends JpaRepository<Advertisment, Long> {
@Query("SELECT a FROM Advertisment a ORDER BY a.createdAt DESC")
List<Advertisment> findTop5ByOrderByCreatedDateDesc(Pageable pageable);
public interface AdvertisementRepository extends JpaRepository<Advertisement, Long> {
@Query("SELECT a FROM Advertisement a ORDER BY a.createdAt DESC")
List<Advertisement> findTop5ByOrderByCreatedDateDesc(Pageable pageable);
}

0 comments on commit 728cbfe

Please sign in to comment.