Skip to content

Commit

Permalink
feat [#41] 티켓팅 공연 정보 조회
Browse files Browse the repository at this point in the history
  • Loading branch information
Ivoryeee committed Jan 15, 2025
1 parent bd04f2c commit 73172dc
Show file tree
Hide file tree
Showing 9 changed files with 153 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.sopt.confeti.api.controller;

import lombok.RequiredArgsConstructor;
import org.sopt.confeti.global.common.BaseResponse;
import org.sopt.confeti.global.message.SuccessMessage;
import org.sopt.confeti.global.util.ApiResponseUtil;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
public class HomeViewController {

@GetMapping("/performances/reservation")
public ResponseEntity<BaseResponse<?>> performanceReservation(@RequestHeader("Authorization") String userId ) {
String a = "Aa"; //임시값
return ApiResponseUtil.success(SuccessMessage.SUCCESS, a); //임시값
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.sopt.confeti.api.dto.response;

import java.time.LocalDateTime;

public record PerformanceReservationResponse(
Integer index,
Long performanceId,
String type,
String subtitle,
LocalDateTime reserveAt,
String reservationBgUrl
) {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.sopt.confeti.api.facade;

import lombok.RequiredArgsConstructor;
import org.sopt.confeti.domain.festivalfavorite.application.FestivalFavoriteService;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
public class UserFavoritePerformance {
private final FestivalFavoriteService festivalFavoriteService;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package org.sopt.confeti.domain.concertfavorite.application;

public class ConcertFavoriteService {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.sopt.confeti.domain.concertfavorite.application.dto.response;

import lombok.Builder;
import java.time.LocalDateTime;

@Builder
public class ConcertFavoriteResponse(
long performanceId,
String type,
String subtitle,
LocalDateTime reserveAt,
String reservationBgUrl
) {
public static ConcertFavoriteResponse of(
final long performanceId,
final String type,
final String subtitle,
final LocalDateTime reserveAt,
final String reservationBgUrl){
return ConcertFavoriteResponse.builder()
.performanceId(performanceId)
.type(type)
.subtitle(subtitle)
.reserveAt(reserveAt)
.reservationBgUrl(reservationBgUrl)
.build();
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@
import org.sopt.confeti.domain.concertfavorite.ConcertFavorite;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface ConcertFavoriteRepository extends JpaRepository<ConcertFavorite, Long> {
List<ConcertFavorite> findByUserId(Long userId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package org.sopt.confeti.domain.festivalfavorite.application;

import org.sopt.confeti.domain.festival.Festival;
import org.sopt.confeti.domain.festivalfavorite.FestivalFavorite;
import org.sopt.confeti.domain.festivalfavorite.application.dto.response.FestivalFavoriteResponse;
import org.sopt.confeti.domain.festivalfavorite.infra.repository.FestivalFavoriteRepository;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

@Service
public class FestivalFavoriteService {
private final FestivalFavoriteRepository festivalFavoriteRepository;

public FestivalFavoriteService(FestivalFavoriteRepository festivalFavoriteRepository) {
this.festivalFavoriteRepository = festivalFavoriteRepository;
}

public List<FestivalFavoriteResponse> getConcertFavorites(Long userId) {
List<FestivalFavorite> festivalFavorites = festivalFavoriteRepository.findByUserId(userId);

return festivalFavorites.stream()
.map(favorite -> {
Festival festival = favorite.getFestival();
return FestivalFavoriteResponse.builder()
.performanceId(festival.getId())
.type("festival")
.subtitle(festival.getFestivalSubtitle())
.reserveAt(festival.getReserveAt())
.reservationBgUrl(festival.getFestivalReservationBgPath())
.build();
})
.collect(Collectors.toList());
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.sopt.confeti.domain.festivalfavorite.application.dto.response;

import lombok.Builder;

import java.time.LocalDateTime;

@Builder
public record FestivalFavoriteResponse (
long performanceId,
String type,
String subtitle,
LocalDateTime reserveAt,
String reservationBgUrl
){
public static FestivalFavoriteResponse of(
final long performanceId,
final String type,
final String subtitle,
final LocalDateTime reserveAt,
final String reservationBgUrl){
return FestivalFavoriteResponse.builder()
.performanceId(performanceId)
.type(type)
.subtitle(subtitle)
.reserveAt(reserveAt)
.reservationBgUrl(reservationBgUrl)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@
import org.sopt.confeti.domain.festivalfavorite.FestivalFavorite;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface FestivalFavoriteRepository extends JpaRepository<FestivalFavorite, Long> {
List<FestivalFavorite> findByUserId(Long userId);
}

0 comments on commit 73172dc

Please sign in to comment.