Search in sources :

Example 71 with WorkflowResponse

use of org.wso2.carbon.apimgt.core.api.WorkflowResponse in project carbon-apimgt by wso2.

the class UserSignUpApprovalWorkflowExecutor method complete.

/**
 * Complete the Approval workflow executor for User self sign up.
 *
 * @param workflowDTO
 */
@Override
public WorkflowResponse complete(WorkflowDTO workflowDTO) throws WorkflowException {
    workflowDTO.setUpdatedTime(System.currentTimeMillis());
    if (log.isDebugEnabled()) {
        log.debug("User Sign Up [Complete] Workflow Invoked. Workflow ID : " + workflowDTO.getExternalWorkflowReference() + " Workflow State : " + workflowDTO.getStatus());
    }
    super.complete(workflowDTO);
    String tenantDomain = workflowDTO.getTenantDomain();
    try {
        UserRegistrationConfigDTO signupConfig = SelfSignUpUtil.getSignupConfiguration(tenantDomain);
        String tenantAwareUserName = MultitenantUtils.getTenantAwareUsername(workflowDTO.getWorkflowReference());
        if (WorkflowStatus.APPROVED.equals(workflowDTO.getStatus())) {
            try {
                updateRolesOfUser(tenantAwareUserName, SelfSignUpUtil.getRoleNames(signupConfig), tenantDomain);
            } catch (Exception e) {
                // updateRolesOfUser throws generic Exception. Therefore generic Exception is caught
                throw new WorkflowException("Error while assigning role to user", e);
            }
        } else {
            try {
                /* Remove created user */
                deleteUser(tenantDomain, tenantAwareUserName);
            } catch (Exception e) {
                throw new WorkflowException("Error while deleting the user", e);
            }
        }
    } catch (APIManagementException e1) {
        throw new WorkflowException("Error while accessing signup configuration", e1);
    }
    return new GeneralWorkflowResponse();
}
Also used : APIManagementException(org.wso2.carbon.apimgt.api.APIManagementException) UserRegistrationConfigDTO(org.wso2.carbon.apimgt.impl.dto.UserRegistrationConfigDTO) APIManagementException(org.wso2.carbon.apimgt.api.APIManagementException)

Example 72 with WorkflowResponse

use of org.wso2.carbon.apimgt.core.api.WorkflowResponse in project carbon-apimgt by wso2.

the class APIStateChangeSimpleWorkflowExecutor method execute.

@Override
public WorkflowResponse execute(WorkflowDTO workflowDTO) throws WorkflowException {
    workflowDTO.setStatus(WorkflowStatus.APPROVED);
    WorkflowResponse workflowResponse = complete(workflowDTO);
    return workflowResponse;
}
Also used : WorkflowResponse(org.wso2.carbon.apimgt.api.WorkflowResponse)

Example 73 with WorkflowResponse

use of org.wso2.carbon.apimgt.core.api.WorkflowResponse in project carbon-apimgt by wso2.

the class ApplicationCreationApprovalWorkflowExecutor method execute.

/**
 * Execute the Application Creation workflow approval process.
 *
 * @param workflowDTO
 */
@Override
public WorkflowResponse execute(WorkflowDTO workflowDTO) throws WorkflowException {
    if (log.isDebugEnabled()) {
        log.debug("Executing Application creation Workflow.");
    }
    ApplicationWorkflowDTO appWorkFlowDTO = (ApplicationWorkflowDTO) workflowDTO;
    Application application = appWorkFlowDTO.getApplication();
    String message = "Approve application " + application.getName() + " creation request from application creator -" + appWorkFlowDTO.getUserName() + " with throttling tier - " + application.getTier();
    workflowDTO.setWorkflowDescription(message);
    workflowDTO.setProperties("applicationName", application.getName());
    workflowDTO.setProperties("userName", appWorkFlowDTO.getUserName());
    workflowDTO.setProperties("applicationTier", application.getTier());
    super.execute(workflowDTO);
    return new GeneralWorkflowResponse();
}
Also used : ApplicationWorkflowDTO(org.wso2.carbon.apimgt.impl.dto.ApplicationWorkflowDTO) Application(org.wso2.carbon.apimgt.api.model.Application)

Example 74 with WorkflowResponse

use of org.wso2.carbon.apimgt.core.api.WorkflowResponse in project carbon-apimgt by wso2.

the class ApplicationCreationWSWorkflowExecutor method execute.

@Override
public WorkflowResponse execute(WorkflowDTO workflowDTO) throws WorkflowException {
    if (log.isDebugEnabled()) {
        log.debug("Executing Application creation Workflow.");
    }
    super.execute(workflowDTO);
    try {
        String action = WorkflowConstants.CREATE_APPLICATION_WS_ACTION;
        ServiceClient client = getClient(action);
        String payload = "<wor:ApplicationApprovalWorkFlowProcessRequest xmlns:wor=\"http://workflow.application.apimgt" + ".carbon.wso2.org\">\n" + "        <wor:applicationName>$1</wor:applicationName>\n" + "        <wor:applicationTier>$2</wor:applicationTier>\n" + "        <wor:applicationCallbackUrl>$3</wor:applicationCallbackUrl>\n" + "        <wor:applicationDescription>$4</wor:applicationDescription>\n" + "        <wor:tenantDomain>$5</wor:tenantDomain>\n" + "        <wor:userName>$6</wor:userName>\n" + "        <wor:workflowExternalRef>$7</wor:workflowExternalRef>\n" + "        <wor:callBackURL>$8</wor:callBackURL>\n" + "      </wor:ApplicationApprovalWorkFlowProcessRequest>";
        ApplicationWorkflowDTO appWorkFlowDTO = (ApplicationWorkflowDTO) workflowDTO;
        Application application = appWorkFlowDTO.getApplication();
        String callBackURL = appWorkFlowDTO.getCallbackUrl();
        payload = payload.replace("$1", application.getName());
        payload = payload.replace("$2", application.getTier());
        payload = payload.replace("$3", application.getCallbackUrl() == null ? "" : application.getCallbackUrl());
        payload = payload.replace("$4", application.getDescription() == null ? "" : application.getDescription());
        payload = payload.replace("$5", appWorkFlowDTO.getTenantDomain());
        payload = payload.replace("$6", appWorkFlowDTO.getUserName());
        payload = payload.replace("$7", appWorkFlowDTO.getExternalWorkflowReference());
        payload = payload.replace("$8", callBackURL != null ? callBackURL : "?");
        client.fireAndForget(AXIOMUtil.stringToOM(payload));
    } catch (AxisFault axisFault) {
        log.error("Error sending out message", axisFault);
        throw new WorkflowException("Error sending out message", axisFault);
    } catch (XMLStreamException e) {
        log.error("Error converting String to OMElement", e);
        throw new WorkflowException("Error converting String to OMElement", e);
    }
    return new GeneralWorkflowResponse();
}
Also used : AxisFault(org.apache.axis2.AxisFault) XMLStreamException(javax.xml.stream.XMLStreamException) ApplicationWorkflowDTO(org.wso2.carbon.apimgt.impl.dto.ApplicationWorkflowDTO) ServiceClient(org.apache.axis2.client.ServiceClient) Application(org.wso2.carbon.apimgt.api.model.Application)

Example 75 with WorkflowResponse

use of org.wso2.carbon.apimgt.core.api.WorkflowResponse in project carbon-apimgt by wso2.

the class ApplicationCreationWSWorkflowExecutor method complete.

/**
 * Complete the external process status.
 * Based on the workflow , we will update the status column of the
 * Application table
 *
 * @param workFlowDTO object
 */
@Override
public WorkflowResponse complete(WorkflowDTO workFlowDTO) throws WorkflowException {
    workFlowDTO.setUpdatedTime(System.currentTimeMillis());
    ApiMgtDAO dao = ApiMgtDAO.getInstance();
    try {
        if (dao.getApplicationById(Integer.parseInt(workFlowDTO.getWorkflowReference())) != null) {
            super.complete(workFlowDTO);
            log.info("Application Creation [Complete] Workflow Invoked. Workflow ID : " + workFlowDTO.getExternalWorkflowReference() + "Workflow State : " + workFlowDTO.getStatus());
            String status = null;
            if (WorkflowStatus.CREATED.equals(workFlowDTO.getStatus())) {
                status = APIConstants.ApplicationStatus.APPLICATION_CREATED;
            } else if (WorkflowStatus.REJECTED.equals(workFlowDTO.getStatus())) {
                status = APIConstants.ApplicationStatus.APPLICATION_REJECTED;
            } else if (WorkflowStatus.APPROVED.equals(workFlowDTO.getStatus())) {
                status = APIConstants.ApplicationStatus.APPLICATION_APPROVED;
            }
            try {
                dao.updateApplicationStatus(Integer.parseInt(workFlowDTO.getWorkflowReference()), status);
            } catch (APIManagementException e) {
                String msg = "Error occurred when updating the status of the Application creation " + "process";
                log.error(msg, e);
                throw new WorkflowException(msg, e);
            }
        } else {
            String msg = "Application does not exist";
            throw new WorkflowException(msg);
        }
    } catch (APIManagementException e) {
        String msg = "Error occurred when retrieving the Application creation with workflow ID :" + workFlowDTO.getWorkflowReference();
        log.error(msg, e);
        throw new WorkflowException(msg, e);
    }
    return new GeneralWorkflowResponse();
}
Also used : APIManagementException(org.wso2.carbon.apimgt.api.APIManagementException) ApiMgtDAO(org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO)

Aggregations

WorkflowResponse (org.wso2.carbon.apimgt.core.api.WorkflowResponse)37 APIManagementException (org.wso2.carbon.apimgt.api.APIManagementException)20 GeneralWorkflowResponse (org.wso2.carbon.apimgt.core.workflow.GeneralWorkflowResponse)15 APIManagementException (org.wso2.carbon.apimgt.core.exception.APIManagementException)14 ApiMgtDAO (org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO)14 Application (org.wso2.carbon.apimgt.core.models.Application)13 HashMap (java.util.HashMap)11 APIStore (org.wso2.carbon.apimgt.core.api.APIStore)11 Test (org.junit.Test)10 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)10 WorkflowResponse (org.wso2.carbon.apimgt.api.WorkflowResponse)10 WorkflowExecutor (org.wso2.carbon.apimgt.core.api.WorkflowExecutor)9 SubscriptionWorkflowDTO (org.wso2.carbon.apimgt.impl.dto.SubscriptionWorkflowDTO)9 Response (javax.ws.rs.core.Response)8 Test (org.testng.annotations.Test)8 ApplicationRegistrationWorkflowDTO (org.wso2.carbon.apimgt.impl.dto.ApplicationRegistrationWorkflowDTO)8 Application (org.wso2.carbon.apimgt.api.model.Application)7 URI (java.net.URI)6 Map (java.util.Map)6 APIMgtDAOException (org.wso2.carbon.apimgt.core.exception.APIMgtDAOException)6