package org.xmx0632.deliciousfruit.api.v1;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.xmx0632.deliciousfruit.api.v1.bo.CheckUsernameRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.CheckUsernameResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.Result;
import org.xmx0632.deliciousfruit.service.UserAccountService;
/**
* UserAccount的API的Controller.
*
* @author xmx0632
*/
@Controller
@RequestMapping(value = "/api/v1")
public class UserAccountCheckUsernameApiController {
private static Logger log = LoggerFactory
.getLogger(UserAccountCheckUsernameApiController.class);
@Autowired
private UserAccountService userAccountService;
@RequestMapping(value = "/checkUsername", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<CheckUsernameResponse> checkUsername(
@RequestBody CheckUsernameRequest request) {
log.debug("Request:{}", request);
long count = userAccountService.countByUsername(request.getLoginName());
CheckUsernameResponse response = new CheckUsernameResponse();
Result result = getResult(count);
response.setResult(result);
log.debug("response:{}", response);
return new ResponseEntity<CheckUsernameResponse>(response,
HttpStatus.OK);
}
private Result getResult(long count) {
if (count == 0) {
return new Result(Result.SUCCESS, "username available");
}
return new Result(Result.FAIL, "username unavailable");
}
}