Skip to content

Commit 362ebf3

Browse files
authored
v0.1.6
v0.1.6
2 parents 376ed62 + 5450498 commit 362ebf3

27 files changed

+286
-54
lines changed

sseudam-admin/src/main/kotlin/com/sseudam/admin/application/AdminFacade.kt

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.sseudam.report.UpdateReport
1818
import com.sseudam.suggestion.SpotSuggestion
1919
import com.sseudam.suggestion.SuggestionService
2020
import com.sseudam.suggestion.SuggestionStatus
21+
import com.sseudam.suggestion.UpdateSuggestionCommand
2122
import com.sseudam.suggestion.event.SuggestionEventPublisher
2223
import com.sseudam.support.CacheRepository
2324
import com.sseudam.support.cursor.OffsetPageRequest
@@ -97,9 +98,9 @@ class AdminFacade(
9798
fun findSuggestions(
9899
offsetPageRequest: OffsetPageRequest,
99100
searchStatus: SuggestionStatus?,
100-
): Page<SpotSuggestion.Info> = suggestionService.findSuggestionsBy(offsetPageRequest, searchStatus)
101+
): Page<SpotSuggestion.Detail> = suggestionService.findSuggestionsBy(offsetPageRequest, searchStatus)
101102

102-
fun findSuggestionDetails(suggestionId: Long): SpotSuggestion.Info = suggestionService.findSpotSuggestionById(suggestionId)
103+
fun findSuggestionDetails(suggestionId: Long): SpotSuggestion.Detail = suggestionService.findSpotSuggestionById(suggestionId)
103104

104105
fun findReports(
105106
offsetPageRequest: OffsetPageRequest,
@@ -108,25 +109,30 @@ class AdminFacade(
108109

109110
fun findReportDetails(reportId: Long): SpotReport.Detail = reportFacade.findReportDetails(reportId)
110111

111-
fun updateSpotSuggestionStatus(
112-
suggestionId: Long,
113-
status: SuggestionStatus,
114-
): SpotSuggestion.UpdateResult =
112+
fun updateSpotSuggestionStatus(command: UpdateSuggestionCommand): SpotSuggestion.UpdateResult =
115113
txAdvice.write {
116-
val suggestion = suggestionService.updateStatus(suggestionId, status)
114+
val suggestion = suggestionService.updateStatus(command.suggestionId, command.status)
117115
val spotId: Long =
118-
if (suggestion.status == SuggestionStatus.APPROVE) {
119-
val trashSpot = trashSpotService.createTrashSpotBySuggestion(suggestion)
120-
trashSpotImageService.append(
121-
TrashSpotImage.Create(trashSpot.id, suggestion.imageUrl),
122-
)
123-
petEventPublisher.publish(suggestion.userId, PetPointAction.SUGGESTION_APPROVED)
124-
cacheRepository.delete(SPOT_DETAIL_CACHE_KEY_PREFIX + trashSpot.id)
125-
trashSpot.id
126-
} else {
127-
0L
116+
when (suggestion.status) {
117+
SuggestionStatus.APPROVE -> {
118+
val trashSpot = trashSpotService.createTrashSpotBySuggestion(suggestion)
119+
trashSpotImageService.append(
120+
TrashSpotImage.Create(trashSpot.id, suggestion.imageUrl),
121+
)
122+
petEventPublisher.publish(suggestion.userId, PetPointAction.SUGGESTION_APPROVED)
123+
cacheRepository.delete(SPOT_DETAIL_CACHE_KEY_PREFIX + trashSpot.id)
124+
trashSpot.id
125+
}
126+
SuggestionStatus.REJECT -> {
127+
if (!command.reason.isNullOrBlank()) {
128+
suggestionService.appendReject(command.suggestionId, command.reason)
129+
}
130+
0L
131+
}
132+
else -> {
133+
0L
134+
}
128135
}
129-
130136
suggestionEventPublisher.publish(suggestion)
131137
return@write SpotSuggestion.UpdateResult.of(suggestion, spotId)
132138
}

sseudam-admin/src/main/kotlin/com/sseudam/admin/presentation/request/report/UpdateReportRequest.kt renamed to sseudam-admin/src/main/kotlin/com/sseudam/admin/presentation/request/report/AdminUpdateReportRequest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import com.sseudam.report.UpdateReport
55
import io.swagger.v3.oas.annotations.media.Schema
66

77
@Schema(description = "신고 반영 요청 Json")
8-
data class UpdateReportRequest(
8+
data class AdminUpdateReportRequest(
99
@Schema(description = "장소 id", example = "1")
1010
val spotId: Long,
1111
@Schema(description = "신고 상태", example = "APPROVE")
1212
val status: ReportStatus,
1313
@Schema(description = "반려 사유", example = "장소가 다름.")
14-
val reason: String?,
14+
val reason: String? = null,
1515
) {
1616
fun toCommand(reportId: Long) =
1717
UpdateReport(
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.sseudam.admin.presentation.request.suggestion
2+
3+
import com.sseudam.suggestion.SuggestionStatus
4+
import com.sseudam.suggestion.UpdateSuggestionCommand
5+
import io.swagger.v3.oas.annotations.media.Schema
6+
7+
data class AdminUpdateSuggestionRequest(
8+
@Schema(description = "반려 사유", example = "장소가 다름.")
9+
val reason: String? = null,
10+
@Schema(description = "제보 상태", example = "APPROVE")
11+
val status: SuggestionStatus,
12+
) {
13+
fun toCommand(suggestionId: Long) =
14+
UpdateSuggestionCommand(
15+
suggestionId = suggestionId,
16+
reason = reason,
17+
status = status,
18+
)
19+
}

sseudam-admin/src/main/kotlin/com/sseudam/admin/presentation/response/suggestion/SpotSuggestionAdminResponse.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,13 @@ data class SpotSuggestionAdminResponse(
2727
val imageUrl: String,
2828
@Schema(description = "제보 상태")
2929
val status: SuggestionStatus,
30+
@Schema(description = "거절 사유")
31+
val rejectReason: String? = null,
3032
@Schema(description = "제보 시간")
3133
val createdAt: LocalDateTime,
3234
) {
3335
companion object {
34-
fun of(suggestion: SpotSuggestion.Info) =
36+
fun of(suggestion: SpotSuggestion.Detail) =
3537
SpotSuggestionAdminResponse(
3638
id = suggestion.id,
3739
point = suggestion.point,
@@ -41,6 +43,7 @@ data class SpotSuggestionAdminResponse(
4143
trashType = suggestion.trashType,
4244
imageUrl = suggestion.imageUrl,
4345
status = suggestion.status,
46+
rejectReason = suggestion.rejectReason,
4447
createdAt = suggestion.createdAt,
4548
)
4649
}

sseudam-admin/src/main/kotlin/com/sseudam/admin/presentation/response/suggestion/SpotSuggestionAllAdminResponse.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ data class SpotSuggestionAllAdminResponse(
88
val totalCount: Long,
99
) {
1010
companion object {
11-
fun of(page: Page<SpotSuggestion.Info>) =
11+
fun of(page: Page<SpotSuggestion.Detail>) =
1212
SpotSuggestionAllAdminResponse(
1313
list = page.content.map { SpotSuggestionAdminResponse.of(it) },
1414
totalCount = page.totalCount,

sseudam-admin/src/main/kotlin/com/sseudam/admin/presentation/v1/report/AdminReportController.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.sseudam.admin.presentation.v1.report
22

33
import com.sseudam.admin.application.AdminFacade
4-
import com.sseudam.admin.presentation.request.report.UpdateReportRequest
4+
import com.sseudam.admin.presentation.request.report.AdminUpdateReportRequest
55
import com.sseudam.admin.presentation.response.report.SpotReportAdminResponse
66
import com.sseudam.admin.presentation.response.report.SpotReportAllAdminResponse
77
import com.sseudam.admin.presentation.v1.annotation.AdminTagDocs
@@ -42,6 +42,6 @@ class AdminReportController(
4242
@PutMapping("/reports/{reportId}")
4343
fun updateReportStatus(
4444
@PathVariable reportId: Long,
45-
@RequestBody request: UpdateReportRequest,
45+
@RequestBody request: AdminUpdateReportRequest,
4646
) = adminFacade.updateSpotReportStatus(request.toCommand(reportId))
4747
}

sseudam-admin/src/main/kotlin/com/sseudam/admin/presentation/v1/suggestion/AdminSuggestionController.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.sseudam.admin.presentation.v1.suggestion
22

33
import com.sseudam.admin.application.AdminFacade
4+
import com.sseudam.admin.presentation.request.suggestion.AdminUpdateSuggestionRequest
45
import com.sseudam.admin.presentation.response.suggestion.SpotSuggestionAdminResponse
56
import com.sseudam.admin.presentation.response.suggestion.SpotSuggestionAllAdminResponse
67
import com.sseudam.admin.presentation.v1.annotation.AdminTagDocs
@@ -11,6 +12,7 @@ import io.swagger.v3.oas.annotations.Operation
1112
import org.springframework.web.bind.annotation.GetMapping
1213
import org.springframework.web.bind.annotation.PathVariable
1314
import org.springframework.web.bind.annotation.PutMapping
15+
import org.springframework.web.bind.annotation.RequestBody
1416
import org.springframework.web.bind.annotation.RequestParam
1517

1618
@AdminTagDocs
@@ -41,5 +43,6 @@ class AdminSuggestionController(
4143
fun updateSuggestionStatus(
4244
@PathVariable suggestionId: Long,
4345
@RequestParam status: SuggestionStatus,
44-
) = adminFacade.updateSpotSuggestionStatus(suggestionId, status)
46+
@RequestBody request: AdminUpdateSuggestionRequest,
47+
) = adminFacade.updateSpotSuggestionStatus(request.toCommand(suggestionId))
4548
}

sseudam-core/core-domain/src/main/kotlin/com/sseudam/auth/AuthenticationFacade.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.sseudam.auth
22

33
import com.sseudam.auth.token.Token
4-
import com.sseudam.pet.UserPetFacade
54
import com.sseudam.user.NewUser
65
import com.sseudam.user.SocialUser
76
import com.sseudam.user.UserService
@@ -10,7 +9,6 @@ import org.springframework.stereotype.Service
109
@Service
1110
class AuthenticationFacade(
1211
private val userService: UserService,
13-
private val userPetFacade: UserPetFacade,
1412
private val authenticationService: AuthenticationService,
1513
) {
1614
fun socialLogin(
@@ -34,8 +32,6 @@ class AuthenticationFacade(
3432
socialUser = socialUser,
3533
)
3634

37-
userPetFacade.findPetInfo(socialUser.id)
38-
3935
return isNewUser to token
4036
}
4137

sseudam-core/core-domain/src/main/kotlin/com/sseudam/report/ReportService.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ class ReportService(
4949
reportDeleter.deleteBy(updateReport.reportId)
5050
petEventPublisher.publish(report.userId, PetPointAction.REPORT_APPROVED)
5151
}
52-
ReportStatus.REJECT -> reportAppender.appendReject(report.id, updateReport.reason)
52+
ReportStatus.REJECT -> {
53+
if (!updateReport.reason.isNullOrBlank()) {
54+
reportAppender.appendReject(report.id, updateReport.reason)
55+
}
56+
}
5357
else -> {}
5458
}
5559

sseudam-core/core-domain/src/main/kotlin/com/sseudam/report/SpotReport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class SpotReport {
6262
val createdAt: LocalDateTime,
6363
)
6464

65-
/** SpotReport Info
65+
/** SpotReport Detail
6666
* @property id 쓰레기통 신고 id
6767
* @property spotId 쓰레기통 위치 id
6868
* @property userId 신고자 id
@@ -74,7 +74,7 @@ class SpotReport {
7474
* @property trashType 쓰레기통 타입
7575
* @property imageUrl 신고된 S3 imageUrl
7676
* @property status 신고 상태
77-
* @property rejectReason 신고 사유
77+
* @property rejectReason 거절 사유
7878
* @property createdAt 신고 시간
7979
*/
8080
data class Detail(

0 commit comments

Comments
 (0)