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
@@ -0,0 +1,26 @@
package org.runnect.server.banner.controller;

import lombok.RequiredArgsConstructor;
import org.runnect.server.banner.dto.response.GetBannerResponseDto;
import org.runnect.server.banner.service.BannerService;
import org.runnect.server.common.constant.SuccessStatus;
import org.runnect.server.common.dto.ApiResponseDto;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/banner")
public class BannerController {

private final BannerService bannerService;

@GetMapping
@ResponseStatus(HttpStatus.OK)
public ApiResponseDto<GetBannerResponseDto> getBanners() {
return ApiResponseDto.success(SuccessStatus.GET_BANNER_SUCCESS, bannerService.getBanners());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.runnect.server.banner.dto.response;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class BannerResponse {
private Integer index;
private String imageUrl;
private String linkUrl;

public static BannerResponse of(Integer index, String imageUrl, String linkUrl) {
return new BannerResponse(index, imageUrl, linkUrl);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.runnect.server.banner.dto.response;

import java.util.List;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class GetBannerResponseDto {
private List<BannerResponse> banners;

public static GetBannerResponseDto of(List<BannerResponse> banners) {
return new GetBannerResponseDto(banners);
}
}
39 changes: 39 additions & 0 deletions src/main/java/org/runnect/server/banner/entity/Banner.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package org.runnect.server.banner.entity;

import javax.persistence.*;

import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.runnect.server.common.entity.AuditingTimeEntity;

@Getter
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Banner extends AuditingTimeEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String imageUrl;

@Column(nullable = false)
private String linkUrl;

@Column(nullable = false)
private Integer sortOrder;

@Column(nullable = false)
private Boolean isActive;

@Builder
public Banner(String imageUrl, String linkUrl, Integer sortOrder) {
this.imageUrl = imageUrl;
this.linkUrl = linkUrl;
this.sortOrder = sortOrder;
this.isActive = true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.runnect.server.banner.repository;

import java.util.List;

import org.runnect.server.banner.entity.Banner;
import org.springframework.data.jpa.repository.JpaRepository;

public interface BannerRepository extends JpaRepository<Banner, Long> {

List<Banner> findByIsActiveTrueOrderBySortOrderAscIdAsc();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.runnect.server.banner.service;

import java.util.ArrayList;
import java.util.List;

import lombok.RequiredArgsConstructor;
import org.runnect.server.banner.dto.response.BannerResponse;
import org.runnect.server.banner.dto.response.GetBannerResponseDto;
import org.runnect.server.banner.entity.Banner;
import org.runnect.server.banner.repository.BannerRepository;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class BannerService {

private final BannerRepository bannerRepository;

public GetBannerResponseDto getBanners() {
List<Banner> banners = bannerRepository.findByIsActiveTrueOrderBySortOrderAscIdAsc();

List<BannerResponse> bannerResponses = new ArrayList<>();
for (int index = 0; index < banners.size(); index++) {
Banner banner = banners.get(index);
bannerResponses.add(BannerResponse.of(index, banner.getImageUrl(), banner.getLinkUrl()));
}

return GetBannerResponseDto.of(bannerResponses);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public enum SuccessStatus {

GET_HEALTH_DATA_SUCCESS(HttpStatus.OK, "건강 데이터 조회 성공"),
GET_HEALTH_SUMMARY_SUCCESS(HttpStatus.OK, "건강 통계 조회 성공"),
GET_BANNER_SUCCESS(HttpStatus.OK, "배너 조회 성공"),


UPDATE_RECORD_SUCCESS(HttpStatus.OK, "활동 기록 수정 성공"),
Expand Down
Loading