Skip to content

Commit

Permalink
🔧 Add chattingUsers into ArticleResponse
Browse files Browse the repository at this point in the history
  • Loading branch information
wonseok committed Jan 21, 2025
1 parent 9a1b395 commit 41c122c
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,21 @@ class ArticleController(
fun postArticle(
@RequestBody request: PostArticleRequest,
@AuthUser user: User,
): ResponseEntity<Article> {
): ResponseEntity<ArticleResponse> {
val article = articleService.postArticle(request, user.id)
return ResponseEntity.ok(article)
val chattingUsers = articleService.getChattingUsersByArticle(article)
return ResponseEntity.ok(ArticleResponse(article, chattingUsers))
}

@PutMapping("/item/edit/{articleId}")
fun editArticle(
@RequestBody request: PostArticleRequest,
@PathVariable articleId: Long,
@AuthUser user: User,
): ResponseEntity<Article> {
): ResponseEntity<ArticleResponse> {
val article = articleService.editArticle(articleId, request, user.id)
return ResponseEntity.ok(article)
val chattingUsers = articleService.getChattingUsersByArticle(article)
return ResponseEntity.ok(ArticleResponse(article, chattingUsers))
}

@DeleteMapping("/item/delete/{articleId}")
Expand Down Expand Up @@ -80,9 +82,10 @@ class ArticleController(
fun getArticle(
@PathVariable articleId: Long,
@AuthUser user: User,
): ResponseEntity<Article> {
): ResponseEntity<ArticleResponse> {
val article = articleService.getArticle(articleId, user.id)
return ResponseEntity.ok(article)
val chattingUsers = articleService.getChattingUsersByArticle(article)
return ResponseEntity.ok(ArticleResponse(article, chattingUsers))
}

@GetMapping("/home")
Expand Down Expand Up @@ -149,3 +152,8 @@ data class PostArticleRequest(
data class UpdateStatusRequest(
val status: Int,
)

data class ArticleResponse(
val article: Article,
val chattingUsers: List<User>,
)
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@ import com.toyProject7.karrot.article.persistence.ArticleEntity
import com.toyProject7.karrot.article.persistence.ArticleLikesEntity
import com.toyProject7.karrot.article.persistence.ArticleLikesRepository
import com.toyProject7.karrot.article.persistence.ArticleRepository
import com.toyProject7.karrot.chatRoom.controller.ChatRoom
import com.toyProject7.karrot.chatRoom.persistence.ChatRoomEntity
import com.toyProject7.karrot.chatRoom.persistence.ChatRoomRepository
import com.toyProject7.karrot.image.persistence.ImageUrlEntity
import com.toyProject7.karrot.image.service.ImageService
import com.toyProject7.karrot.user.controller.User
import com.toyProject7.karrot.user.service.UserService
import org.springframework.context.annotation.Lazy
import org.springframework.data.repository.findByIdOrNull
Expand All @@ -25,6 +29,7 @@ class ArticleService(
private val articleLikesRepository: ArticleLikesRepository,
private val userService: UserService,
@Lazy private val imageService: ImageService,
private val chatRoomRepository: ChatRoomRepository,
) {
@Transactional
fun postArticle(
Expand Down Expand Up @@ -249,4 +254,12 @@ class ArticleService(
fun getArticleEntityById(articleId: Long): ArticleEntity {
return articleRepository.findByIdOrNull(articleId) ?: throw ArticleNotFoundException()
}

@Transactional
fun getChattingUsersByArticle(article: Article): List<User> {
val chatRoomEntities: List<ChatRoomEntity> = chatRoomRepository.findAllByArticleId(article.id)
return chatRoomEntities
.map { chatRoomEntity -> ChatRoom.fromEntity(chatRoomEntity, "") }
.map { chatRoom -> chatRoom.buyer }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ interface ChatRoomRepository : JpaRepository<ChatRoomEntity, Long> {
buyerId: String,
updatedAt: Instant,
): List<ChatRoomEntity>

fun findAllByArticleId(articleId: Long): List<ChatRoomEntity>
}

0 comments on commit 41c122c

Please sign in to comment.