CoyoteCredit/src/main/java/nl/andrewl/coyotecredit/ctl/exchange/TradePage.java

42 lines
1.2 KiB
Java

package nl.andrewl.coyotecredit.ctl.exchange;
import lombok.RequiredArgsConstructor;
import nl.andrewl.coyotecredit.ctl.exchange.dto.TradePayload;
import nl.andrewl.coyotecredit.model.User;
import nl.andrewl.coyotecredit.service.ExchangeService;
import nl.andrewl.coyotecredit.service.TradeService;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@Controller
@RequestMapping(path = "/trade/{accountId}")
@RequiredArgsConstructor
public class TradePage {
private final TradeService tradeService;
private final ExchangeService exchangeService;
@GetMapping
public String get(
Model model,
@PathVariable long accountId,
@AuthenticationPrincipal User user
) {
model.addAttribute("data", tradeService.getTradeData(accountId, user));
return "account/trade";
}
@PostMapping
public String doTrade(
@PathVariable long accountId,
@AuthenticationPrincipal User user,
@ModelAttribute @Valid TradePayload payload
) {
exchangeService.doTrade(accountId, payload, user);
return "redirect:/accounts/" + accountId;
}
}