package com.clouck.rest;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.clouck.exception.CloudVersionException;
import com.clouck.model.User;
import com.clouck.service.UserService;
import com.clouck.webapp.controller.AbstractController;
@Controller
@RequestMapping(value = "/rest/accounts")
public class AccountsRestController extends AbstractController {
private static final Logger log = LoggerFactory.getLogger(AccountsRestController.class);
@Autowired
private UserService userService;
@RequestMapping(value = "/{accountId}", method = RequestMethod.DELETE)
public void delete(@PathVariable String accountId) {
log.debug("received call from account id:{}", accountId);
User currentUser = findCurrentUser();
List<String> accountIds = currentUser.getAccountIds();
if (accountIds.contains(accountId)) {
currentUser.getAccountIds().remove(accountId);
userService.save(currentUser);
accountService.delete(accountId);
} else {
throw new CloudVersionException("invalid request, user:" + currentUser.getEmail() +
" don't have authority to access account id:" + accountId);
}
}
}