Skip to content

Commit 1752808

Browse files
committed
feat: 전체 장르 목록 API 구현
1 parent fadbf70 commit 1752808

3 files changed

Lines changed: 51 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.back.web7_9_codecrete_be.domain.artists.controller;
2+
3+
import com.back.web7_9_codecrete_be.domain.artists.dto.response.GenreResponse;
4+
import com.back.web7_9_codecrete_be.domain.artists.service.GenreService;
5+
import com.back.web7_9_codecrete_be.global.rsData.RsData;
6+
import lombok.RequiredArgsConstructor;
7+
import org.springframework.web.bind.annotation.GetMapping;
8+
import org.springframework.web.bind.annotation.RequestMapping;
9+
import org.springframework.web.bind.annotation.RestController;
10+
11+
import java.util.List;
12+
13+
@RestController
14+
@RequestMapping("/api/v1/genre")
15+
@RequiredArgsConstructor
16+
public class GenreController {
17+
18+
private final GenreService genreService;
19+
20+
@GetMapping()
21+
public RsData<List<GenreResponse>> genreList() {
22+
return RsData.success("전체 장르 조회 성공", genreService.genreList());
23+
}
24+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.back.web7_9_codecrete_be.domain.artists.dto.response;
2+
3+
import com.back.web7_9_codecrete_be.domain.artists.entity.Genre;
4+
5+
public record GenreResponse(
6+
Long genreId,
7+
String genreName
8+
) {
9+
public static GenreResponse from(Genre genre) {
10+
return new GenreResponse(
11+
genre.getId(),
12+
genre.getGenreName()
13+
);
14+
}
15+
}

src/main/java/com/back/web7_9_codecrete_be/domain/artists/service/GenreService.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package com.back.web7_9_codecrete_be.domain.artists.service;
22

3+
import com.back.web7_9_codecrete_be.domain.artists.dto.response.ConcertListByArtistResponse;
4+
import com.back.web7_9_codecrete_be.domain.artists.dto.response.GenreResponse;
35
import com.back.web7_9_codecrete_be.domain.artists.entity.Genre;
46
import com.back.web7_9_codecrete_be.domain.artists.repository.GenreRepository;
7+
import com.back.web7_9_codecrete_be.domain.concerts.entity.Concert;
58
import com.back.web7_9_codecrete_be.global.error.code.GenreErrorCode;
69
import com.back.web7_9_codecrete_be.global.error.exception.BusinessException;
710
import lombok.RequiredArgsConstructor;
811
import org.springframework.stereotype.Service;
912

13+
import java.util.List;
14+
1015
@Service
1116
@RequiredArgsConstructor
1217
public class GenreService {
@@ -19,4 +24,11 @@ public Genre findByGenreName(String genreName) {
1924
.orElseThrow(() -> new BusinessException(GenreErrorCode.GENRE_NOT_FOUND));
2025
return genre;
2126
}
27+
28+
public List<GenreResponse> genreList() {
29+
List<Genre> genre = genreRepository.findAll();
30+
return genre.stream()
31+
.map(GenreResponse::from)
32+
.toList();
33+
}
2234
}

0 commit comments

Comments
 (0)