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

관리자, 동행 마이그레이션 #6

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
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
9 changes: 9 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ plugins {
id 'java'
id 'org.springframework.boot' version '3.4.0'
id 'io.spring.dependency-management' version '1.1.6'
id 'org.jetbrains.kotlin.jvm' version '2.1.0'
id 'org.jetbrains.kotlin.plugin.spring' version '2.1.0'
}

group = 'com.example'
Expand Down Expand Up @@ -62,6 +64,13 @@ dependencies {
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.2'
// 로깅
implementation 'org.slf4j:slf4j-api'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

implementation 'ch.qos.logback:logback-classic'
//코틀린
implementation "org.jetbrains.kotlin:kotlin-reflect"
implementation "com.fasterxml.jackson.module:jackson-module-kotlin"

}

tasks.named('test') {
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
pluginManagement {
plugins {
id 'org.jetbrains.kotlin.jvm' version '2.1.0'
}
}
rootProject.name = 'festimo'

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package com.example.festimo.domain.admin.controller

import jakarta.validation.Valid

import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*

import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag

import com.example.festimo.domain.admin.dto.AdminUpdateUserDTO
import com.example.festimo.domain.admin.service.AdminService

@RestController
@RequestMapping("/api/admin")
@Tag(name = "관리자 API", description = "관리자가 회원 정보를 관리하는 API")
class AdminController(private val adminService: AdminService) {


/**
* 모든 회원 조회
* @param page 조회할 페이지
* @param size 페이지 사이즈
*/
@GetMapping("/users")
@Operation(summary = "관리자의 회원 조회", description = "모든 회원 정보")
fun getAllUsers(
@RequestParam(defaultValue = "0") page: Int,
@RequestParam(defaultValue = "10") size: Int
) = ResponseEntity.ok(adminService.getAllUsers(page, size))

/**
* 회원 정보 수정
* @param userId 수정할 회원의 ID
* @param adminUpdateUserDTO 수정할 회원 정보
* @return 수정된 회원의 정보
*/
@PutMapping("/users/{userId}")
@Operation(summary = "관리자의 회원 수정", description = "회원 정보 수정")
fun updateUser(
@PathVariable userId: Long,
@Valid @RequestBody adminUpdateUserDTO: AdminUpdateUserDTO
) = ResponseEntity.ok(adminService.updateUser(userId, adminUpdateUserDTO))

/**
* 회원 삭제
* @param userId 삭제할 회원의 ID
*/
@DeleteMapping("/users/{userId}")
@Operation(summary = "관리자의 회원 삭제", description = "회원 정보 삭제")
fun deleteUser(@PathVariable userId: Long) =
adminService.deleteUser(userId).let { ResponseEntity.noContent().build<Void>() }
}


This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.example.festimo.domain.admin.controller


import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*

import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag

import com.example.festimo.domain.admin.service.AdminPostService

@RestController
@RequestMapping("/api/admin/posts")
@Tag(name = "관리자 API", description = "관리자가 게시글을 관리하는 API")
class AdminPostController(private val adminPostService: AdminPostService) {
/**
* 관리자의 게시글 삭제
* @param postId 삭제할 게시글 ID
*/
@DeleteMapping("/{postId}")
@Operation(summary = "관리자의 게시글 삭제", description = "특정 게시글 삭제")
fun deletePost(@PathVariable postId: Long): ResponseEntity<Void> {
adminPostService.deletePostById(postId)
return ResponseEntity.noContent().build()
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.example.festimo.domain.admin.controller


import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import org.springframework.data.domain.Page
import org.springframework.data.domain.PageRequest
import org.springframework.data.domain.Pageable
import org.springframework.data.domain.Sort

import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag

import com.example.festimo.domain.admin.service.AdminReviewService
import com.example.festimo.domain.review.dto.ReviewResponseDTO

@RestController
@RequestMapping("/api/admin/reviews")
@Tag(name = "관리자 API", description = "관리자가 리뷰를 관리하는 API")
class AdminReviewController(private val adminReviewService: AdminReviewService) {
/**
* 관리자의 리뷰 조회 (최신순)
*
* @param page 조회할 페이지 번호 (기본값: 0)
* @param size 한 페이지에 표시할 리뷰 개수 (기본값: 10)
* @return 페이지네이션된 최신순 리뷰 목록
*/
@GetMapping
@Operation(summary = "관리자의 리뷰 조회 (최신순)", description = "모든 리뷰를 최신순으로 조회")
fun getReviews(
@RequestParam(defaultValue = "0") page: Int,
@RequestParam(defaultValue = "10") size: Int
): ResponseEntity<Page<ReviewResponseDTO>> {
val pageable: Pageable = PageRequest.of(page, size, Sort.by("createdAt").descending())
val reviews = adminReviewService.getAllReviews(pageable)
return ResponseEntity.ok(reviews)
}

/**
* 관리자의 리뷰 삭제
*
* @param reviewId 삭제할 리뷰의 ID
* @return 성공적인 삭제 응답
*/
@DeleteMapping("/{reviewId}")
@Operation(summary = "관리자의 리뷰 삭제", description = "특정 리뷰 삭제")
fun deleteReview(@PathVariable reviewId: Long): ResponseEntity<Void> {
adminReviewService.deleteReview(reviewId)
return ResponseEntity.noContent().build()
}
}
22 changes: 0 additions & 22 deletions src/main/java/com/example/festimo/domain/admin/dto/AdminDTO.java

This file was deleted.

14 changes: 14 additions & 0 deletions src/main/java/com/example/festimo/domain/admin/dto/AdminDTO.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.festimo.domain.admin.dto

import java.time.LocalDateTime

data class AdminDTO(
var userId: Long = 0,
var userName: String = "",
var nickname: String = "",
var email: String = "",
var role: String = "",
var createdDate: LocalDateTime = LocalDateTime.now(),
var gender: String = "",
var ratingAvg: Float = 0f
)
Loading