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

Refactor | CAKK-84 | listener 및 테스트 kt 전환 #212

Merged
merged 8 commits into from
Sep 21, 2024
Merged
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

This file was deleted.

This file was deleted.

128 changes: 128 additions & 0 deletions cakk-api/src/main/java/com/cakk/api/controller/cake/CakeController.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
package com.cakk.api.controller.cake

import jakarta.validation.Valid

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

import lombok.RequiredArgsConstructor

import com.cakk.api.annotation.SignInUser
import com.cakk.api.dto.request.cake.*
import com.cakk.api.dto.response.cake.CakeDetailResponse
import com.cakk.api.dto.response.cake.CakeImageListResponse
import com.cakk.api.dto.response.like.HeartResponse
import com.cakk.api.mapper.CakeMapper
import com.cakk.api.service.cake.CakeService
import com.cakk.api.service.like.HeartService
import com.cakk.common.response.ApiResponse
import com.cakk.domain.mysql.entity.user.User

@RestController
@RequiredArgsConstructor
@RequestMapping("/cakes")
class CakeController(
private val cakeService: CakeService,
private val heartService: HeartService
) {

@GetMapping("/search/categories")
fun listByCategory(
@ModelAttribute @Valid request: CakeSearchByCategoryRequest
): ApiResponse<CakeImageListResponse> {
val param = CakeMapper.supplyCakeSearchByCategoryParamBy(request)
val response = cakeService.findCakeImagesByCursorAndCategory(param)

return ApiResponse.success(response)
}

@GetMapping("/search/shops")
fun listByShop(
@ModelAttribute @Valid request: CakeSearchByShopRequest
): ApiResponse<CakeImageListResponse> {
val param = CakeMapper.supplyCakeSearchByShopParamBy(request)
val response = cakeService.findCakeImagesByCursorAndCakeShopId(param)

return ApiResponse.success(response)
}

@GetMapping("/search/cakes")
fun listByKeywordAndLocation(
@ModelAttribute @Valid request: CakeSearchByLocationRequest
): ApiResponse<CakeImageListResponse> {
val param = CakeMapper.supplyCakeSearchParamBy(request)
val response = cakeService.findCakeImagesByCursorAndSearch(param)

return ApiResponse.success(response)
}

@GetMapping("/search/views")
fun listByViews(
@ModelAttribute @Valid request: CakeSearchByViewsRequest
): ApiResponse<CakeImageListResponse> {
val param = CakeMapper.supplyCakeSearchByViewsParamBy(request)
val response = cakeService.searchCakeImagesByCursorAndViews(param)

return ApiResponse.success(response)
}

@GetMapping("/{cakeId}")
fun details(@PathVariable cakeId: Long): ApiResponse<CakeDetailResponse> {
val response = cakeService.findCakeDetailById(cakeId)

return ApiResponse.success(response)
}

@PostMapping("/{cakeShopId}")
fun create(
@SignInUser user: User,
@PathVariable cakeShopId: Long,
@RequestBody @Valid request: CakeCreateRequest
): ApiResponse<Unit> {
val param = CakeMapper.supplyCakeCreateParamBy(request, user, cakeShopId)
cakeService.createCake(param)

return ApiResponse.success()
}

@GetMapping("/{cakeId}/heart")
fun isHeart(
@SignInUser user: User,
@PathVariable cakeId: Long
): ApiResponse<HeartResponse> {
val response = heartService.isHeartCake(user, cakeId)

return ApiResponse.success(response)
}

@PutMapping("/{cakeId}/heart")
fun heart(
@SignInUser user: User,
@PathVariable cakeId: Long
): ApiResponse<Unit> {
heartService.heartCake(user, cakeId)

return ApiResponse.success()
}

@PutMapping("/{cakeId}")
fun update(
@SignInUser user: User,
@PathVariable cakeId: Long,
@RequestBody request: @Valid CakeUpdateRequest
): ApiResponse<Unit> {
val param = CakeMapper.supplyCakeUpdateParamBy(request, user, cakeId)
cakeService.updateCake(param)

return ApiResponse.success()
}

@DeleteMapping("/{cakeId}")
fun delete(
@SignInUser user: User,
@PathVariable cakeId: Long
): ApiResponse<Unit> {
cakeService.deleteCake(user, cakeId)

return ApiResponse.success()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
import com.cakk.api.service.like.HeartService;
import com.cakk.api.service.like.LikeService;
import com.cakk.api.service.shop.ShopService;
import com.cakk.api.service.views.ViewsService;
import com.cakk.common.response.ApiResponse;
import com.cakk.core.service.views.ViewsService;
import com.cakk.domain.mysql.entity.user.User;

@RestController
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,12 @@
import com.cakk.api.dto.request.user.UserSignUpRequest;
import com.cakk.api.dto.request.user.VerifyEmailRequest;
import com.cakk.api.dto.response.user.JwtResponse;
import com.cakk.api.service.user.EmailVerificationService;
import com.cakk.api.mapper.UserMapper;
import com.cakk.api.service.user.SignService;
import com.cakk.common.response.ApiResponse;
import com.cakk.core.dto.param.user.GenerateCodeParam;
import com.cakk.core.dto.param.user.VerifyEmailParam;
import com.cakk.core.service.user.EmailVerificationService;

@RestController
@RequiredArgsConstructor
Expand Down Expand Up @@ -62,7 +65,8 @@ public ApiResponse<JwtResponse> recreate(
public ApiResponse<Void> sendEmailForVerification(
@Valid @RequestBody GenerateCodeRequest request
) {
emailVerificationService.sendEmailForVerification(request);
final GenerateCodeParam param = UserMapper.supplyGenerateCodeParamBy(request);
emailVerificationService.sendEmailForVerification(param);

return ApiResponse.success();
}
Expand All @@ -71,7 +75,8 @@ public ApiResponse<Void> sendEmailForVerification(
public ApiResponse<Void> verifyEmail(
@Valid @RequestBody VerifyEmailRequest request
) {
emailVerificationService.checkEmailVerificationCode(request);
final VerifyEmailParam param = UserMapper.supplyVerifyEmailParamBy(request);
emailVerificationService.checkEmailVerificationCode(param);

return ApiResponse.success();
}
Expand Down
Loading
Loading