package com.monkeyk.sos.web.controller;
import com.monkeyk.sos.domain.dto.OauthClientDetailsDto;
import com.monkeyk.sos.service.OauthService;
import com.monkeyk.sos.web.oauth.OauthClientDetailsDtoValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
/**
* Handle 'client_details' management
*
* @author Shengzhao Li
*/
@Controller
public class ClientDetailsController {
@Autowired
private OauthService oauthService;
@Autowired
private OauthClientDetailsDtoValidator clientDetailsDtoValidator;
@RequestMapping("client_details")
public String clientDetails(Model model) {
List<OauthClientDetailsDto> clientDetailsDtoList = oauthService.loadAllOauthClientDetailsDtos();
model.addAttribute("clientDetailsDtoList", clientDetailsDtoList);
return "clientdetails/client_details";
}
/*
* Logic delete
* */
@RequestMapping("archive_client/{clientId}")
public String archiveClient(@PathVariable("clientId") String clientId) {
oauthService.archiveOauthClientDetails(clientId);
return "redirect:../client_details";
}
/*
* Test client
* */
@RequestMapping("test_client/{clientId}")
public String testClient(@PathVariable("clientId") String clientId, Model model) {
OauthClientDetailsDto clientDetailsDto = oauthService.loadOauthClientDetailsDto(clientId);
model.addAttribute("clientDetailsDto", clientDetailsDto);
return "clientdetails/test_client";
}
/*
* Register client
* */
@RequestMapping(value = "register_client", method = RequestMethod.GET)
public String registerClient(Model model) {
model.addAttribute("formDto", new OauthClientDetailsDto());
return "clientdetails/register_client";
}
/*
* Submit register client
* */
@RequestMapping(value = "register_client", method = RequestMethod.POST)
public String submitRegisterClient(@ModelAttribute("formDto") OauthClientDetailsDto formDto, BindingResult result) {
clientDetailsDtoValidator.validate(formDto, result);
if (result.hasErrors()) {
return "clientdetails/register_client";
}
oauthService.registerClientDetails(formDto);
return "redirect:client_details";
}
}