Skip to content

Commit 84c9da8

Browse files
authored
Merge pull request #126 from IT-Cotato/feature/124
fix: 광고 API 코드 스타일 프로젝트 컨벤션에 맞게 통일
2 parents 7c6a812 + 987177b commit 84c9da8

File tree

4 files changed

+57
-45
lines changed

4 files changed

+57
-45
lines changed
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
package com.ongil.backend.domain.advertisement.controller;
22

3+
import java.util.List;
4+
5+
import org.springframework.web.bind.annotation.GetMapping;
6+
import org.springframework.web.bind.annotation.RequestMapping;
7+
import org.springframework.web.bind.annotation.RestController;
8+
39
import com.ongil.backend.domain.advertisement.dto.AdvertisementResponse;
410
import com.ongil.backend.domain.advertisement.service.AdvertisementService;
511
import com.ongil.backend.global.common.dto.DataResponse;
12+
613
import io.swagger.v3.oas.annotations.Operation;
714
import io.swagger.v3.oas.annotations.tags.Tag;
815
import lombok.RequiredArgsConstructor;
9-
import org.springframework.security.core.annotation.AuthenticationPrincipal;
10-
import org.springframework.web.bind.annotation.GetMapping;
11-
import org.springframework.web.bind.annotation.RequestMapping;
12-
import org.springframework.web.bind.annotation.RestController;
13-
14-
import java.util.List;
1516

1617
@RestController
1718
@RequiredArgsConstructor
1819
@RequestMapping("/api/advertisements")
1920
@Tag(name = "Advertisement", description = "광고/배너 관련 API")
2021
public class AdvertisementController {
2122

22-
private final AdvertisementService advertisementService;
23+
private final AdvertisementService advertisementService;
2324

24-
@Operation(summary = "홈 화면 할인 광고 목록 조회", description = "메인 배너에 노출될 5개의 광고 목록을 반환합니다.")
25-
@GetMapping("/home")
26-
public DataResponse<List<AdvertisementResponse>> getHomeAdvertisements(
27-
) {
28-
List<AdvertisementResponse> result = advertisementService.getHomeAdvertisements();
29-
return DataResponse.from(result);
30-
}
25+
@Operation(summary = "홈 화면 할인 광고 목록 조회", description = "메인 배너에 노출될 5개의 광고 목록을 반환합니다.")
26+
@GetMapping("/home")
27+
public DataResponse<List<AdvertisementResponse>> getHomeAdvertisements() {
28+
List<AdvertisementResponse> result = advertisementService.getHomeAdvertisements();
29+
return DataResponse.from(result);
30+
}
3131
}
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package com.ongil.backend.domain.advertisement.converter;
22

3-
import com.ongil.backend.domain.advertisement.dto.AdvertisementResponse;
43
import org.springframework.stereotype.Component;
54

5+
import com.ongil.backend.domain.advertisement.dto.AdvertisementResponse;
6+
67
@Component
78
public class AdvertisementConverter {
89

9-
// 추후 Entity -> DTO 변환 시 사용
10-
public AdvertisementResponse toResponse(Long id, String title, String description, String imageUrl) {
11-
return AdvertisementResponse.builder()
12-
.id(id)
13-
.title(title)
14-
.description(description)
15-
.imageUrl(imageUrl)
16-
.build();
17-
}
10+
// 추후 Entity -> DTO 변환 시 사용
11+
public AdvertisementResponse toResponse(Long id, String title, String description, String imageUrl) {
12+
return AdvertisementResponse.builder()
13+
.id(id)
14+
.title(title)
15+
.description(description)
16+
.imageUrl(imageUrl)
17+
.build();
18+
}
1819
}
Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
package com.ongil.backend.domain.advertisement.dto;
22

3+
import io.swagger.v3.oas.annotations.media.Schema;
34
import lombok.Builder;
45

56
@Builder
7+
@Schema(description = "할인 광고 응답")
68
public record AdvertisementResponse(
7-
Long id,
8-
String imageUrl,
9-
String title,
10-
String description
9+
10+
@Schema(description = "광고 ID")
11+
Long id,
12+
13+
@Schema(description = "광고 이미지 URL")
14+
String imageUrl,
15+
16+
@Schema(description = "광고 제목")
17+
String title,
18+
19+
@Schema(description = "광고 문구")
20+
String description
1121
) {
1222
}
Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
11
package com.ongil.backend.domain.advertisement.service;
22

3-
import com.ongil.backend.domain.advertisement.converter.AdvertisementConverter;
4-
import com.ongil.backend.domain.advertisement.dto.AdvertisementResponse;
5-
import lombok.RequiredArgsConstructor;
3+
import java.util.List;
4+
65
import org.springframework.stereotype.Service;
76
import org.springframework.transaction.annotation.Transactional;
87

9-
import java.util.List;
10-
import java.util.stream.IntStream;
8+
import com.ongil.backend.domain.advertisement.converter.AdvertisementConverter;
9+
import com.ongil.backend.domain.advertisement.dto.AdvertisementResponse;
10+
11+
import lombok.RequiredArgsConstructor;
1112

1213
@Service
1314
@RequiredArgsConstructor
1415
@Transactional(readOnly = true)
1516
public class AdvertisementService {
1617

17-
private final AdvertisementConverter advertisementConverter;
18+
private final AdvertisementConverter advertisementConverter;
1819

19-
//메인 홈 화면 할인 광고 목록 조회 (Mock Data)
20-
public List<AdvertisementResponse> getHomeAdvertisements() {
21-
// 실제 DB 조회 대신 목데이터 5개 생성
22-
return List.of(
23-
advertisementConverter.toResponse(1L, "온길 새로운 파격 혜택", "홈쇼핑이 막막한 당신에게!", "https://example.com/images/ad1.jpg"),
24-
advertisementConverter.toResponse(2L, "봄맞이 효도 상품 기획전", "부모님께 사랑을 전하세요", "https://example.com/images/ad2.jpg"),
25-
advertisementConverter.toResponse(3L, "주말 한정 특가", "놓치면 후회할 베스트 아이템", "https://example.com/images/ad3.jpg"),
26-
advertisementConverter.toResponse(4L, "신규 회원 웰컴 쿠폰", "가입 즉시 10,000원 할인", "https://example.com/images/ad4.jpg"),
27-
advertisementConverter.toResponse(5L, "이달의 추천 카테고리", "가장 인기 있는 상품 모음", "https://example.com/images/ad5.jpg")
28-
);
29-
}
20+
// 메인 홈 화면 할인 광고 목록 조회 (Mock Data)
21+
public List<AdvertisementResponse> getHomeAdvertisements() {
22+
// 실제 DB 조회 대신 목데이터 5개 생성
23+
return List.of(
24+
advertisementConverter.toResponse(1L, "온길 새로운 파격 혜택", "홈쇼핑이 막막한 당신에게!", "https://example.com/images/ad1.jpg"),
25+
advertisementConverter.toResponse(2L, "봄맞이 효도 상품 기획전", "부모님께 사랑을 전하세요", "https://example.com/images/ad2.jpg"),
26+
advertisementConverter.toResponse(3L, "주말 한정 특가", "놓치면 후회할 베스트 아이템", "https://example.com/images/ad3.jpg"),
27+
advertisementConverter.toResponse(4L, "신규 회원 웰컴 쿠폰", "가입 즉시 10,000원 할인", "https://example.com/images/ad4.jpg"),
28+
advertisementConverter.toResponse(5L, "이달의 추천 카테고리", "가장 인기 있는 상품 모음", "https://example.com/images/ad5.jpg")
29+
);
30+
}
3031
}

0 commit comments

Comments
 (0)