package kr.co.vividnext.sodalive.menu import kr.co.vividnext.sodalive.common.ApiResponse import kr.co.vividnext.sodalive.common.SodaException import kr.co.vividnext.sodalive.member.Member import org.springframework.security.access.prepost.PreAuthorize import org.springframework.security.core.annotation.AuthenticationPrincipal import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController @RequestMapping("/menu") class MenuController(private val service: MenuService) { @GetMapping @PreAuthorize("hasAnyRole('AGENT', 'ADMIN', 'CREATOR')") fun getMenus( @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? ) = run { if (member == null) { throw SodaException(messageKey = "common.error.bad_credentials") } ApiResponse.ok(service.getMenus(member)) } }