Skip to content

Commit

Permalink
패키지 구조 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
gidskql6671 committed May 27, 2024
1 parent 3422c1e commit 82b5571
Show file tree
Hide file tree
Showing 42 changed files with 149 additions and 111 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.config
package knu.dong.onedayonebaek.common.config

import knu.dong.onedayonebaek.oauth.OAuth2SuccessHandler
import knu.dong.onedayonebaek.oauth.filter.JwtAuthFilter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.config
package knu.dong.onedayonebaek.common.config

import io.swagger.v3.oas.models.Components
import io.swagger.v3.oas.models.OpenAPI
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package knu.dong.onedayonebaek.dto
package knu.dong.onedayonebaek.common.dto

enum class DateUnit { DAY, MONTH, RANGE }
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package knu.dong.onedayonebaek.exception
package knu.dong.onedayonebaek.common.exception

class AccessTokenExpiredException(message: String = "Access token expired"): RuntimeException(message)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception
package knu.dong.onedayonebaek.common.exception

class ConflictException(
val code: String = "conflict",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package knu.dong.onedayonebaek.exception
package knu.dong.onedayonebaek.common.exception

class ForbiddenException(message: String = "Forbidden"): RuntimeException(message)
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package knu.dong.onedayonebaek.exception
package knu.dong.onedayonebaek.common.exception

import io.github.oshai.kotlinlogging.KotlinLogging
import knu.dong.onedayonebaek.common.exception.response.*
import knu.dong.onedayonebaek.exception.response.*
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package knu.dong.onedayonebaek.exception
package knu.dong.onedayonebaek.common.exception

class InvalidReqParamException(message: String = "Refresh token expired"): RuntimeException(message)
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package knu.dong.onedayonebaek.exception
package knu.dong.onedayonebaek.common.exception

class NotFoundException(message: String = "Not Found"): RuntimeException(message)
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package knu.dong.onedayonebaek.exception
package knu.dong.onedayonebaek.common.exception

class RefreshTokenExpiredException(message: String = "Refresh token expired"): RuntimeException(message)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception.response
package knu.dong.onedayonebaek.common.exception.response

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception.response
package knu.dong.onedayonebaek.common.exception.response

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception.response
package knu.dong.onedayonebaek.common.exception.response

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception.response
package knu.dong.onedayonebaek.common.exception.response

interface ErrorResponse {
val code: String
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception.response
package knu.dong.onedayonebaek.common.exception.response

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception.response
package knu.dong.onedayonebaek.common.exception.response

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.exception.response
package knu.dong.onedayonebaek.common.exception.response

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package knu.dong.onedayonebaek.domain
package knu.dong.onedayonebaek.containgroup.domain

import jakarta.persistence.*
import knu.dong.onedayonebaek.group.domain.Group
import knu.dong.onedayonebaek.user.domain.User
import org.hibernate.annotations.OnDelete
import org.hibernate.annotations.OnDeleteAction

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package knu.dong.onedayonebaek.repository
package knu.dong.onedayonebaek.containgroup.repository

import knu.dong.onedayonebaek.domain.ContainGroup
import knu.dong.onedayonebaek.domain.Group
import knu.dong.onedayonebaek.domain.User
import knu.dong.onedayonebaek.containgroup.domain.ContainGroup
import knu.dong.onedayonebaek.group.domain.Group
import knu.dong.onedayonebaek.user.domain.User
import org.springframework.data.jpa.repository.EntityGraph
import org.springframework.data.jpa.repository.JpaRepository
import java.util.*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.controller
package knu.dong.onedayonebaek.group.controller

import io.github.oshai.kotlinlogging.KotlinLogging
import io.swagger.v3.oas.annotations.Operation
Expand All @@ -7,13 +7,19 @@ import io.swagger.v3.oas.annotations.media.ExampleObject
import io.swagger.v3.oas.annotations.media.Schema
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
import knu.dong.onedayonebaek.domain.User
import knu.dong.onedayonebaek.common.dto.DateUnit
import knu.dong.onedayonebaek.dto.*
import knu.dong.onedayonebaek.exception.InvalidReqParamException
import knu.dong.onedayonebaek.exception.response.BadRequestResponse
import knu.dong.onedayonebaek.exception.response.ForbiddenResponse
import knu.dong.onedayonebaek.exception.response.NotFoundResponse
import knu.dong.onedayonebaek.service.GroupService
import knu.dong.onedayonebaek.common.exception.InvalidReqParamException
import knu.dong.onedayonebaek.common.exception.response.BadRequestResponse
import knu.dong.onedayonebaek.common.exception.response.ForbiddenResponse
import knu.dong.onedayonebaek.common.exception.response.NotFoundResponse
import knu.dong.onedayonebaek.group.dto.CreateGroupRequest
import knu.dong.onedayonebaek.group.dto.GroupDetailDto
import knu.dong.onedayonebaek.group.dto.JoinGroupRequest
import knu.dong.onedayonebaek.group.dto.JoinGroupWithInviteCodeRequest
import knu.dong.onedayonebaek.group.service.GroupService
import knu.dong.onedayonebaek.problem.dto.ProblemsOfUser
import knu.dong.onedayonebaek.user.domain.User
import org.springframework.http.MediaType
import org.springframework.security.core.Authentication
import org.springframework.validation.annotation.Validated
Expand Down Expand Up @@ -91,22 +97,29 @@ class GroupController(
@PostMapping("/{groupId}/join")
@ApiResponses(
ApiResponse(responseCode = "200", description = "참가한 스터디 그룹의 상세 정보"),
ApiResponse(responseCode = "400", description = "잘못된 Request Parameter",
content = [Content(schema = Schema(implementation = BadRequestResponse::class))]),
ApiResponse(responseCode = "404", description = "존재하지 않는 스터디 그룹",
content = [Content(schema = Schema(implementation = NotFoundResponse::class))]),
ApiResponse(responseCode = "409", description = "- 비밀번호 불일치\n- 해당 스터디 그룹에 이미 속해있음",
ApiResponse(
responseCode = "400", description = "잘못된 Request Parameter",
content = [Content(schema = Schema(implementation = BadRequestResponse::class))]
),
ApiResponse(
responseCode = "404", description = "존재하지 않는 스터디 그룹",
content = [Content(schema = Schema(implementation = NotFoundResponse::class))]
),
ApiResponse(
responseCode = "409", description = "- 비밀번호 불일치\n- 해당 스터디 그룹에 이미 속해있음",
content = [Content(
examples = [
ExampleObject(
name = "비밀 그룹 비밀번호 불일치",
value = "{\"code\": \"incorrect_password\", \"message\":\"비밀번호가 다릅니다.\"}"
),ExampleObject(
), ExampleObject(
name = "이미 가입된 그룹",
value = "{\"code\": \"already_joined\", \"message\":\"이미 가입된 스터디 그룹입니다.\"}"
)
],
mediaType = MediaType.APPLICATION_JSON_VALUE)])
mediaType = MediaType.APPLICATION_JSON_VALUE
)]
)
)
fun joinGroup(
@PathVariable groupId: Long,
Expand All @@ -125,19 +138,26 @@ class GroupController(
@PostMapping("/invited")
@ApiResponses(
ApiResponse(responseCode = "200", description = "참가한 스터디 그룹의 상세 정보"),
ApiResponse(responseCode = "400", description = "잘못된 Request Parameter",
content = [Content(schema = Schema(implementation = BadRequestResponse::class))]),
ApiResponse(responseCode = "404", description = "존재하지 않는 스터디 그룹",
content = [Content(schema = Schema(implementation = NotFoundResponse::class))]),
ApiResponse(responseCode = "409", description = "- 해당 스터디 그룹에 이미 속해있음",
ApiResponse(
responseCode = "400", description = "잘못된 Request Parameter",
content = [Content(schema = Schema(implementation = BadRequestResponse::class))]
),
ApiResponse(
responseCode = "404", description = "존재하지 않는 스터디 그룹",
content = [Content(schema = Schema(implementation = NotFoundResponse::class))]
),
ApiResponse(
responseCode = "409", description = "- 해당 스터디 그룹에 이미 속해있음",
content = [Content(
examples = [
ExampleObject(
name = "이미 가입된 그룹",
value = "{\"code\": \"already_joined\", \"message\":\"이미 가입된 스터디 그룹입니다.\"}"
)
],
mediaType = MediaType.APPLICATION_JSON_VALUE)])
mediaType = MediaType.APPLICATION_JSON_VALUE
)]
)
)
fun joinGroupWithInviteCode(
@Validated @RequestBody requestDto: JoinGroupWithInviteCodeRequest,
Expand All @@ -155,20 +175,25 @@ class GroupController(
@PostMapping("/{groupId}/leave")
@ApiResponses(
ApiResponse(responseCode = "200", description = "스터디 그룹 상세 정보"),
ApiResponse(responseCode = "404", description = "존재하지 않는 스터디 그룹",
content = [Content(schema = Schema(implementation = NotFoundResponse::class))]),
ApiResponse(responseCode = "409", description = "- 사용자가 그룹 장임\n- 해당 스터디 그룹에 속해있지 않음",
ApiResponse(
responseCode = "404", description = "존재하지 않는 스터디 그룹",
content = [Content(schema = Schema(implementation = NotFoundResponse::class))]
),
ApiResponse(
responseCode = "409", description = "- 사용자가 그룹 장임\n- 해당 스터디 그룹에 속해있지 않음",
content = [Content(
examples = [
ExampleObject(
name = "비밀 그룹 비밀번호 불일치",
value = "{\"code\": \"not_allowed_leave_group_owner\", \"message\":\"그룹 장은 나갈 수 없습니다.\"}"
),ExampleObject(
), ExampleObject(
name = "이미 가입된 그룹",
value = "{\"code\": \"already_leaved\", \"message\":\"해당 스터디 그룹에 속해있지 않습니다.\"}"
)
],
mediaType = MediaType.APPLICATION_JSON_VALUE)])
mediaType = MediaType.APPLICATION_JSON_VALUE
)]
)
)
fun leaveGroup(@PathVariable groupId: Long, authentication: Authentication) {
val user = authentication.principal as User
Expand Down Expand Up @@ -218,16 +243,19 @@ class GroupController(
return when (type) {
DateUnit.DAY -> {
groupService.getProblems(user, groupId,
date ?: throw InvalidReqParamException("date 필드가 비어있습니다."))
date ?: throw InvalidReqParamException("date 필드가 비어있습니다.")
)
}
DateUnit.MONTH -> {
groupService.getProblems(user, groupId,
yearMonth ?: throw InvalidReqParamException("yearMonth 필드가 비어있습니다."))
yearMonth ?: throw InvalidReqParamException("yearMonth 필드가 비어있습니다.")
)
}
else -> {
groupService.getProblems(user, groupId,
startDate ?: throw InvalidReqParamException("startDate 필드가 비어있습니다."),
endDate ?: throw InvalidReqParamException("endDate 필드가 비어있습니다."))
endDate ?: throw InvalidReqParamException("endDate 필드가 비어있습니다.")
)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package knu.dong.onedayonebaek.domain
package knu.dong.onedayonebaek.group.domain

import jakarta.persistence.*
import knu.dong.onedayonebaek.containgroup.domain.ContainGroup
import knu.dong.onedayonebaek.user.domain.User
import org.hibernate.annotations.ColumnDefault
import org.hibernate.annotations.Fetch
import org.hibernate.annotations.FetchMode

@Entity
@Table(name = "study_groups")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package knu.dong.onedayonebaek.dto
package knu.dong.onedayonebaek.group.dto

import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.Size
import knu.dong.onedayonebaek.domain.Group
import knu.dong.onedayonebaek.domain.User
import knu.dong.onedayonebaek.group.domain.Group
import knu.dong.onedayonebaek.user.domain.User

@Schema(description = "그룹 생성 요청 DTO")
data class CreateGroupRequest(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package knu.dong.onedayonebaek.dto
package knu.dong.onedayonebaek.group.dto

import io.swagger.v3.oas.annotations.media.Schema
import knu.dong.onedayonebaek.domain.Group
import knu.dong.onedayonebaek.user.dto.UserDto
import knu.dong.onedayonebaek.user.dto.toUserDto
import knu.dong.onedayonebaek.group.domain.Group

@Schema(description = "그룹 생성 응답 DTO")
data class GroupDetailDto(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package knu.dong.onedayonebaek.dto
package knu.dong.onedayonebaek.group.dto

import io.swagger.v3.oas.annotations.media.Schema
import knu.dong.onedayonebaek.domain.Group
import knu.dong.onedayonebaek.group.domain.Group

data class GroupOfListDto(
@Schema(description = "그룹 ID", nullable = false, example = "1")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.dto
package knu.dong.onedayonebaek.group.dto

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package knu.dong.onedayonebaek.dto
package knu.dong.onedayonebaek.group.dto

import io.swagger.v3.oas.annotations.media.Schema

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package knu.dong.onedayonebaek.repository
package knu.dong.onedayonebaek.group.repository

import knu.dong.onedayonebaek.domain.Group
import knu.dong.onedayonebaek.group.domain.Group
import org.springframework.data.jpa.repository.JpaRepository
import java.util.*

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
package knu.dong.onedayonebaek.service
package knu.dong.onedayonebaek.group.service

import io.github.oshai.kotlinlogging.KotlinLogging
import knu.dong.onedayonebaek.domain.ContainGroup
import knu.dong.onedayonebaek.domain.Problem
import knu.dong.onedayonebaek.domain.User
import knu.dong.onedayonebaek.containgroup.domain.ContainGroup
import knu.dong.onedayonebaek.problem.domain.Problem
import knu.dong.onedayonebaek.user.domain.User
import knu.dong.onedayonebaek.dto.*
import knu.dong.onedayonebaek.exception.ConflictException
import knu.dong.onedayonebaek.exception.ForbiddenException
import knu.dong.onedayonebaek.exception.NotFoundException
import knu.dong.onedayonebaek.repository.ContainGroupRepository
import knu.dong.onedayonebaek.repository.GroupRepository
import knu.dong.onedayonebaek.repository.ProblemRepository
import knu.dong.onedayonebaek.repository.UserRepository
import knu.dong.onedayonebaek.common.exception.ConflictException
import knu.dong.onedayonebaek.common.exception.ForbiddenException
import knu.dong.onedayonebaek.common.exception.NotFoundException
import knu.dong.onedayonebaek.group.repository.GroupRepository
import knu.dong.onedayonebaek.containgroup.repository.ContainGroupRepository
import knu.dong.onedayonebaek.group.dto.*
import knu.dong.onedayonebaek.problem.dto.ProblemsOfUser
import knu.dong.onedayonebaek.problem.dto.toProblemDto
import knu.dong.onedayonebaek.problem.repository.ProblemRepository
import knu.dong.onedayonebaek.user.repository.UserRepository
import org.springframework.security.crypto.password.PasswordEncoder
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package knu.dong.onedayonebaek.oauth
import io.github.oshai.kotlinlogging.KotlinLogging
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
import knu.dong.onedayonebaek.dto.UserDto
import knu.dong.onedayonebaek.dto.toEntity
import knu.dong.onedayonebaek.user.dto.UserDto
import knu.dong.onedayonebaek.group.dto.toEntity
import knu.dong.onedayonebaek.oauth.dto.Token
import knu.dong.onedayonebaek.oauth.service.TokenService
import knu.dong.onedayonebaek.repository.UserRepository
import knu.dong.onedayonebaek.user.repository.UserRepository
import org.springframework.beans.factory.annotation.Value
import org.springframework.security.core.Authentication
import org.springframework.security.oauth2.core.user.OAuth2User
Expand Down
Loading

0 comments on commit 82b5571

Please sign in to comment.