크리에이터 관리자 API
- 기존 콘텐츠를 시리즈에 추가하는 API 추가
This commit is contained in:
		| @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.creator.admin.content.series | ||||
|  | ||||
| import kr.co.vividnext.sodalive.common.ApiResponse | ||||
| import kr.co.vividnext.sodalive.common.SodaException | ||||
| import kr.co.vividnext.sodalive.creator.admin.content.series.content.AddingContentToTheSeriesRequest | ||||
| import kr.co.vividnext.sodalive.member.Member | ||||
| import org.springframework.data.domain.Pageable | ||||
| import org.springframework.lang.Nullable | ||||
| @@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping | ||||
| import org.springframework.web.bind.annotation.PathVariable | ||||
| import org.springframework.web.bind.annotation.PostMapping | ||||
| import org.springframework.web.bind.annotation.PutMapping | ||||
| import org.springframework.web.bind.annotation.RequestBody | ||||
| import org.springframework.web.bind.annotation.RequestMapping | ||||
| import org.springframework.web.bind.annotation.RequestPart | ||||
| import org.springframework.web.bind.annotation.RestController | ||||
| @@ -87,4 +89,17 @@ class CreatorAdminContentSeriesController(private val service: CreatorAdminConte | ||||
|             ) | ||||
|         ) | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/add/content") | ||||
|     fun addingContentToTheSeries( | ||||
|         @RequestBody request: AddingContentToTheSeriesRequest, | ||||
|         @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? | ||||
|     ) = run { | ||||
|         if (member == null) throw SodaException("로그인 정보를 확인해주세요.") | ||||
|  | ||||
|         ApiResponse.ok( | ||||
|             service.addingContentToTheSeries(request, memberId = member.id!!), | ||||
|             "콘텐츠가 추가되었습니다." | ||||
|         ) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -4,8 +4,10 @@ import com.amazonaws.services.s3.model.ObjectMetadata | ||||
| import com.fasterxml.jackson.databind.ObjectMapper | ||||
| import kr.co.vividnext.sodalive.aws.s3.S3Uploader | ||||
| import kr.co.vividnext.sodalive.common.SodaException | ||||
| import kr.co.vividnext.sodalive.content.AudioContentRepository | ||||
| import kr.co.vividnext.sodalive.content.hashtag.HashTag | ||||
| import kr.co.vividnext.sodalive.content.hashtag.HashTagRepository | ||||
| import kr.co.vividnext.sodalive.creator.admin.content.series.content.AddingContentToTheSeriesRequest | ||||
| import kr.co.vividnext.sodalive.creator.admin.content.series.genre.CreatorAdminContentSeriesGenreRepository | ||||
| import kr.co.vividnext.sodalive.creator.admin.content.series.keyword.SeriesKeyword | ||||
| import kr.co.vividnext.sodalive.member.Member | ||||
| @@ -20,6 +22,7 @@ class CreatorAdminContentSeriesService( | ||||
|     private val repository: CreatorAdminContentSeriesRepository, | ||||
|     private val genreRepository: CreatorAdminContentSeriesGenreRepository, | ||||
|     private val hashTagRepository: HashTagRepository, | ||||
|     private val audioContentRepository: AudioContentRepository, | ||||
|  | ||||
|     private val s3Uploader: S3Uploader, | ||||
|     private val objectMapper: ObjectMapper, | ||||
| @@ -195,4 +198,28 @@ class CreatorAdminContentSeriesService( | ||||
|  | ||||
|         return GetCreatorAdminContentSeriesContentResponse(totalCount, seriesContentList) | ||||
|     } | ||||
|  | ||||
|     @Transactional | ||||
|     fun addingContentToTheSeries(request: AddingContentToTheSeriesRequest, memberId: Long) { | ||||
|         val series = repository.findByIdAndCreatorId(id = request.seriesId, creatorId = memberId) | ||||
|             ?: throw SodaException("잘못된 접근입니다.") | ||||
|  | ||||
|         val seriesContentList = mutableListOf<SeriesContent>() | ||||
|  | ||||
|         for (contentId in request.contentIdList) { | ||||
|             val content = audioContentRepository.findByIdAndCreatorId(contentId = contentId, creatorId = memberId) | ||||
|                 ?: continue | ||||
|  | ||||
|             val seriesContent = SeriesContent() | ||||
|             seriesContent.series = series | ||||
|             seriesContent.content = content | ||||
|             seriesContentList.add(seriesContent) | ||||
|         } | ||||
|  | ||||
|         if (seriesContentList.size > 0) { | ||||
|             series.contentList.addAll(seriesContentList) | ||||
|         } else { | ||||
|             throw SodaException("추가된 콘텐츠가 없습니다.") | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,6 @@ | ||||
| package kr.co.vividnext.sodalive.creator.admin.content.series.content | ||||
|  | ||||
| data class AddingContentToTheSeriesRequest( | ||||
|     val seriesId: Long, | ||||
|     val contentIdList: List<Long> | ||||
| ) | ||||
		Reference in New Issue
	
	Block a user