Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BG-342]: notification 도메인 세팅 (5h / 3h) #73

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
Next Next commit
refactor: 서비스 계층 어플리케이션 레이어로 분리
  • Loading branch information
Dltmd202 committed Aug 8, 2024
commit 9171d992aef565caa5ed0db2a6a0b0cd56474b23
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.backgu.amaker.api.auth.config.AuthConfig
import com.backgu.amaker.api.auth.dto.response.JwtTokenResponse
import com.backgu.amaker.api.auth.dto.response.OAuthUrlResponse
import com.backgu.amaker.api.auth.service.AuthFacadeService
import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiResult
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.backgu.amaker.api.auth.dto.oauth.google

import com.backgu.amaker.api.common.service.IdPublisher
import com.backgu.amaker.common.id.IdPublisher
import com.backgu.amaker.domain.user.User
import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package com.backgu.amaker.api.auth.service

import com.backgu.amaker.api.auth.dto.JwtTokenDto
import com.backgu.amaker.api.auth.dto.oauth.google.GoogleUserInfoDto
import com.backgu.amaker.api.common.service.IdPublisher
import com.backgu.amaker.api.user.service.UserService
import com.backgu.amaker.application.user.service.UserService
import com.backgu.amaker.common.id.IdPublisher
import com.backgu.amaker.common.security.jwt.component.JwtComponent
import com.backgu.amaker.domain.user.User
import org.springframework.stereotype.Service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.backgu.amaker.api.auth.dto.oauth.google.GoogleOAuth2AccessTokenDto
import com.backgu.amaker.api.auth.dto.oauth.google.GoogleUserInfoDto
import com.backgu.amaker.api.auth.infra.GoogleApiClient
import com.backgu.amaker.api.auth.infra.GoogleOAuthClient
import com.backgu.amaker.api.common.exception.BusinessException
import com.backgu.amaker.common.exception.BusinessException
import com.backgu.amaker.common.status.StatusCode
import org.springframework.stereotype.Service

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.backgu.amaker.api.chat.config

import com.backgu.amaker.application.chat.service.ChatRoomService
import com.backgu.amaker.application.chat.service.ChatRoomUserService
import com.backgu.amaker.application.chat.service.ChatService
import com.backgu.amaker.infra.jpa.chat.repository.ChatRepository
import com.backgu.amaker.infra.jpa.chat.repository.ChatRoomRepository
import com.backgu.amaker.infra.jpa.chat.repository.ChatRoomUserRepository
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

@Configuration
class ChatServiceConfig(
val chatRepository: ChatRepository,
val chatRoomUserRepository: ChatRoomUserRepository,
val chatRoomRepository: ChatRoomRepository,
) {
@Bean
fun chatService() = ChatService(chatRepository)

@Bean
fun chatRoomUserService() = ChatRoomUserService(chatRoomUserRepository)

@Bean
fun chatRoomService() = ChatRoomService(chatRoomRepository)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import com.backgu.amaker.api.chat.dto.request.FileChatCreateRequest
import com.backgu.amaker.api.chat.dto.response.ChatListResponse
import com.backgu.amaker.api.chat.dto.response.ChatWithUserResponse
import com.backgu.amaker.api.chat.service.ChatFacadeService
import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiResult
import com.backgu.amaker.common.security.jwt.authentication.JwtAuthentication
import com.backgu.amaker.domain.chat.ChatType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.backgu.amaker.api.chat.dto.response.BriefChatRoomResponse
import com.backgu.amaker.api.chat.dto.response.ChatRoomResponse
import com.backgu.amaker.api.chat.dto.response.ChatRoomsViewResponse
import com.backgu.amaker.api.chat.service.ChatRoomFacadeService
import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiResult
import com.backgu.amaker.common.security.jwt.authentication.JwtAuthentication
import jakarta.validation.Valid
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@ import com.backgu.amaker.api.chat.dto.ChatQuery
import com.backgu.amaker.api.chat.dto.ChatWithUserDto
import com.backgu.amaker.api.chat.dto.DefaultChatWithUserDto
import com.backgu.amaker.api.chat.dto.EventChatWithUserDto
import com.backgu.amaker.api.common.exception.BusinessException
import com.backgu.amaker.api.chat.service.query.ChatQueryService
import com.backgu.amaker.api.event.dto.EventWithUserDto
import com.backgu.amaker.api.event.service.EventAssignedUserService
import com.backgu.amaker.api.event.service.EventService
import com.backgu.amaker.api.user.service.UserService
import com.backgu.amaker.application.chat.service.ChatRoomService
import com.backgu.amaker.application.chat.service.ChatRoomUserService
import com.backgu.amaker.application.chat.service.ChatService
import com.backgu.amaker.application.event.service.EventAssignedUserService
import com.backgu.amaker.application.event.service.EventService
import com.backgu.amaker.application.user.service.UserService
import com.backgu.amaker.common.exception.BusinessException
import com.backgu.amaker.common.status.StatusCode
import com.backgu.amaker.domain.chat.Chat
import com.backgu.amaker.domain.chat.ChatRoom
Expand All @@ -30,6 +34,7 @@ class ChatFacadeService(
private val chatService: ChatService,
private val userService: UserService,
private val eventService: EventService,
private val chatQueryService: ChatQueryService,
private val eventAssignedUserService: EventAssignedUserService,
) {
@Transactional
Expand All @@ -54,7 +59,7 @@ class ChatFacadeService(
chatQuery: ChatQuery,
): ChatListDto {
markMostRecentChatAsRead(chatQuery.chatRoomId, userId)
val chatList = chatService.findPreviousChatList(chatQuery.chatRoomId, chatQuery.cursor, chatQuery.size)
val chatList = chatQueryService.findPreviousChatList(chatQuery.chatRoomId, chatQuery.cursor, chatQuery.size)

val eventMap =
eventService.findEventByIdsToMap(chatList.filter { ChatType.isEventChat(it.chatType) }.map { it.id })
Expand All @@ -73,7 +78,7 @@ class ChatFacadeService(
chatQuery: ChatQuery,
): ChatListDto {
markMostRecentChatAsRead(chatQuery.chatRoomId, userId)
val chatList = chatService.findAfterChatList(chatQuery.chatRoomId, chatQuery.cursor, chatQuery.size)
val chatList = chatQueryService.findAfterChatList(chatQuery.chatRoomId, chatQuery.cursor, chatQuery.size)

val eventMap =
eventService.findEventByIdsToMap(chatList.filter { ChatType.isEventChat(it.chatType) }.map { it.id })
Expand All @@ -92,7 +97,7 @@ class ChatFacadeService(
chatRoomId: Long,
): ChatWithUserDto<*> {
val chatRoomUser = markMostRecentChatAsRead(chatRoomId, userId)
val chat = chatService.getOneWithUser(chatRoomUser.lastReadChatId)
val chat = chatQueryService.getOneWithUser(chatRoomUser.lastReadChatId)

if (!ChatType.isEventChat(chat.chatType)) return chat

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@ import com.backgu.amaker.api.chat.dto.ChatRoomCreateDto
import com.backgu.amaker.api.chat.dto.ChatRoomDto
import com.backgu.amaker.api.chat.dto.ChatRoomWithUserDto
import com.backgu.amaker.api.chat.dto.ChatRoomsViewDto
import com.backgu.amaker.api.user.service.UserService
import com.backgu.amaker.api.workspace.service.WorkspaceService
import com.backgu.amaker.api.workspace.service.WorkspaceUserService
import com.backgu.amaker.application.chat.service.ChatRoomService
import com.backgu.amaker.application.chat.service.ChatRoomUserService
import com.backgu.amaker.application.chat.service.ChatService
import com.backgu.amaker.application.user.service.UserService
import com.backgu.amaker.application.workspace.WorkspaceService
import com.backgu.amaker.application.workspace.WorkspaceUserService
import com.backgu.amaker.domain.chat.Chat
import com.backgu.amaker.domain.chat.ChatRoom
import com.backgu.amaker.domain.chat.ChatRoomUser
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.backgu.amaker.api.chat.service.query

import com.backgu.amaker.api.chat.dto.DefaultChatWithUserDto
import com.backgu.amaker.common.exception.BusinessException
import com.backgu.amaker.common.status.StatusCode
import com.backgu.amaker.infra.jpa.chat.repository.ChatRepository
import org.springframework.stereotype.Service

@Service
class ChatQueryService(
private val chatRepository: ChatRepository,
) {
fun findPreviousChatList(
chatRoomId: Long,
cursor: Long,
size: Int,
): List<DefaultChatWithUserDto> =
chatRepository
.findTopByChatRoomIdLittleThanCursorLimitCountWithUser(chatRoomId, cursor, size)
.asReversed()
.map { DefaultChatWithUserDto.of(it) }

fun findAfterChatList(
chatRoomId: Long,
cursor: Long,
size: Int,
): List<DefaultChatWithUserDto> =
chatRepository
.findTopByChatRoomIdGreaterThanCursorLimitCountWithUser(chatRoomId, cursor, size)
.map { DefaultChatWithUserDto.of(it) }

fun getOneWithUser(chatId: Long?): DefaultChatWithUserDto =
DefaultChatWithUserDto.of(
chatId?.let { chatRepository.findByIdWithUser(it) }
?: throw BusinessException(StatusCode.CHAT_NOT_FOUND),
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.backgu.amaker.api.common.config

import com.backgu.amaker.common.clock.ClockHolder
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.id.IdPublisher
import com.backgu.amaker.infra.common.clock.SystemClockHolder
import com.backgu.amaker.infra.common.id.UUIDIdPublisher
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

@Configuration
class CommonAppConfig {
@Bean
fun clockHolder(): ClockHolder = SystemClockHolder()

@Bean
fun idPublisher(): IdPublisher = UUIDIdPublisher()

@Bean
fun apiHandler(
request: HttpServletRequest,
response: HttpServletResponse,
clockHolder: ClockHolder,
): ApiHandler = ApiHandler(request, response, clockHolder)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.backgu.amaker.api.common.exception

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.common.exception.BusinessException
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiError
import com.backgu.amaker.common.status.StatusCode
import io.github.oshai.kotlinlogging.KotlinLogging
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.backgu.amaker.api.event.config

import com.backgu.amaker.application.event.service.EventAssignedUserService
import com.backgu.amaker.application.event.service.EventService
import com.backgu.amaker.application.event.service.ReplyCommentService
import com.backgu.amaker.application.event.service.ReplyEventService
import com.backgu.amaker.infra.jpa.event.repository.EventAssignedUserRepository
import com.backgu.amaker.infra.jpa.event.repository.EventRepository
import com.backgu.amaker.infra.jpa.event.repository.ReplyCommentRepository
import com.backgu.amaker.infra.jpa.event.repository.ReplyEventRepository
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

@Configuration
class EventServiceConfig {
@Bean
fun replyEventService(replyEventRepository: ReplyEventRepository): ReplyEventService = ReplyEventService(replyEventRepository)

@Bean
fun eventAssignedUserService(eventAssignedUserRepository: EventAssignedUserRepository): EventAssignedUserService =
EventAssignedUserService(eventAssignedUserRepository)

@Bean
fun replyCommentService(replyCommentRepository: ReplyCommentRepository): ReplyCommentService =
ReplyCommentService(replyCommentRepository)

@Bean
fun eventService(eventRepository: EventRepository): EventService = EventService(eventRepository)
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.backgu.amaker.api.event.controller

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.api.event.dto.query.ReplyQueryRequest
import com.backgu.amaker.api.event.dto.request.ReplyCommentCreateRequest
import com.backgu.amaker.api.event.dto.response.ReplyCommentWithUserResponse
import com.backgu.amaker.api.event.dto.response.ReplyCommentsViewResponse
import com.backgu.amaker.api.event.service.EventCommentFacadeService
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiResult
import com.backgu.amaker.common.http.response.PageResponse
import com.backgu.amaker.common.security.jwt.authentication.JwtAuthentication
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.backgu.amaker.api.event.controller

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.api.event.dto.request.ReplyEventCreateRequest
import com.backgu.amaker.api.event.dto.response.ReplyEventDetailResponse
import com.backgu.amaker.api.event.service.EventFacadeService
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiResult
import com.backgu.amaker.common.security.jwt.authentication.JwtAuthentication
import jakarta.validation.Valid
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package com.backgu.amaker.api.event.service

import com.backgu.amaker.api.chat.service.ChatRoomService
import com.backgu.amaker.api.chat.service.ChatService
import com.backgu.amaker.api.common.exception.BusinessException
import com.backgu.amaker.api.event.dto.ReplyCommentCreateDto
import com.backgu.amaker.api.event.dto.ReplyCommentDto
import com.backgu.amaker.api.event.dto.ReplyCommentWithUserDto
import com.backgu.amaker.api.user.service.UserService
import com.backgu.amaker.api.workspace.service.WorkspaceUserService
import com.backgu.amaker.application.chat.service.ChatRoomService
import com.backgu.amaker.application.chat.service.ChatService
import com.backgu.amaker.application.event.service.EventAssignedUserService
import com.backgu.amaker.application.event.service.ReplyCommentService
import com.backgu.amaker.application.event.service.ReplyEventService
import com.backgu.amaker.application.user.service.UserService
import com.backgu.amaker.application.workspace.WorkspaceUserService
import com.backgu.amaker.common.exception.BusinessException
import com.backgu.amaker.common.status.StatusCode
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package com.backgu.amaker.api.event.service

import com.backgu.amaker.api.chat.service.ChatRoomService
import com.backgu.amaker.api.chat.service.ChatRoomUserService
import com.backgu.amaker.api.chat.service.ChatService
import com.backgu.amaker.api.common.exception.BusinessException
import com.backgu.amaker.api.event.dto.ReplyEventCreateDto
import com.backgu.amaker.api.event.dto.ReplyEventDetailDto
import com.backgu.amaker.api.event.dto.ReplyEventDto
import com.backgu.amaker.api.user.dto.UserDto
import com.backgu.amaker.api.user.service.UserService
import com.backgu.amaker.application.chat.service.ChatRoomService
import com.backgu.amaker.application.chat.service.ChatRoomUserService
import com.backgu.amaker.application.chat.service.ChatService
import com.backgu.amaker.application.event.service.EventAssignedUserService
import com.backgu.amaker.application.event.service.ReplyEventService
import com.backgu.amaker.application.user.service.UserService
import com.backgu.amaker.common.exception.BusinessException
import com.backgu.amaker.common.status.StatusCode
import com.backgu.amaker.domain.chat.Chat
import com.backgu.amaker.domain.chat.ChatType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.backgu.amaker.api.file.controller

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.api.file.service.FileFacadeService
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiResult
import com.backgu.amaker.common.security.jwt.authentication.JwtAuthentication
import org.springframework.http.ResponseEntity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.backgu.amaker.api.file.service

import com.backgu.amaker.api.common.service.IdPublisher
import com.backgu.amaker.common.id.IdPublisher
import org.springframework.stereotype.Service

@Service
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.backgu.amaker.api.security.config

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.api.security.handler.AuthAccessDeniedHandler
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.security.jwt.component.JwtComponent
import com.backgu.amaker.common.security.jwt.utils.JwtAuthenticationTokenExtractor
import com.backgu.amaker.common.security.jwt.web.JwtAuthenticationTokenFilter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.backgu.amaker.api.security.handler

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.status.StatusCode
import com.fasterxml.jackson.databind.ObjectMapper
import jakarta.servlet.http.HttpServletRequest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.backgu.amaker.api.security.handler

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.status.StatusCode
import com.fasterxml.jackson.databind.ObjectMapper
import jakarta.servlet.http.HttpServletRequest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.backgu.amaker.api.security.jwt

import com.backgu.amaker.api.user.service.UserService
import com.backgu.amaker.application.user.service.UserService
import com.backgu.amaker.common.security.jwt.authentication.JwtAuthentication
import com.backgu.amaker.common.security.jwt.authentication.JwtAuthenticationToken
import com.backgu.amaker.domain.user.User
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.backgu.amaker.api.user.config

import com.backgu.amaker.application.user.service.UserService
import com.backgu.amaker.infra.jpa.user.reposotory.UserRepository
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

@Configuration
class UserServiceConfig {
@Bean
fun userService(userRepository: UserRepository): UserService = UserService(userRepository)
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.backgu.amaker.api.user.controller

import com.backgu.amaker.api.common.infra.ApiHandler
import com.backgu.amaker.api.user.dto.request.EmailExistsRequest
import com.backgu.amaker.api.user.dto.response.EmailExistsResponse
import com.backgu.amaker.api.user.service.UserFacadeService
import com.backgu.amaker.common.http.ApiHandler
import com.backgu.amaker.common.http.response.ApiResult
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
Expand Down
Loading
Loading