package net.techreadiness.customer.action.task.org.create;
import static net.techreadiness.security.CorePermissionCodes.CORE_CUSTOMER_ORG_CREATE;
import java.util.List;
import net.techreadiness.annotation.CoreSecured;
import net.techreadiness.service.common.ValidationError;
import net.techreadiness.service.exception.ValidationServiceException;
import net.techreadiness.service.object.Org;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.Action;
@Results({
@Result(name = Action.SUCCESS, type = "redirectAction", params = { "actionName", "add", "namespace",
"/task/org/create" }),
@Result(name = Action.INPUT, type = "lastAction", params = { "fieldName", "organization", "actionName", "add" }) })
public class SaveAction extends BaseOrgAction {
private static final long serialVersionUID = 1L;
@Override
@CoreSecured({ CORE_CUSTOMER_ORG_CREATE })
public String execute() {
try {
List<Org> orgSelection = getOrgSelectionHandler().getSelection();
if (orgSelection.size() > 0) {
parentOrganizationId = orgSelection.get(0).getOrgId();
organization.setParentOrgId(parentOrganizationId);
}
organization = organizationService.create(getServiceContext(), organization);
} catch (ValidationServiceException e) {
getSession().put("parentOrganizationId", parentOrganizationId);
for (ValidationError error : e.getFaultInfo().getAttributeErrors()) {
addFieldError("organization." + error.getFieldName(), error.getOnlineMessage());
}
}
if (hasErrors()) {
return INPUT;
}
// if successful add to task flow data
getTaskFlowData().getOrgs().add(organization);
return SUCCESS;
}
}