![JAR search and dependency download from the Maven repository](/logo.png)
com.jk.services.client.workflow.JKWorkflowServiceClient Maven / Gradle / Ivy
package com.jk.services.client.workflow;
import java.util.List;
import com.jk.core.config.JKConstants;
import com.jk.core.http.JKHttpStatus;
import com.jk.core.util.JK;
import com.jk.core.util.JKObjectUtil;
import com.jk.services.client.JKMatureServiceClient;
import com.jk.services.client.JKServiceClientException;
import com.jk.services.client.workflow.models.NewPayloadRequestModel;
import com.jk.services.client.workflow.models.PayloadModel;
import com.jk.services.client.workflow.models.SystemModel;
import com.jk.services.client.workflow.models.WorkflowEntityModel;
/**
* @author Jalal
*/
public class JKWorkflowServiceClient extends JKMatureServiceClient {
/**
* @author Jalal
*/
public enum UserAction {
CREATE, MODIFY, DELETE
}
/**
*
* @author Jalal
*
*/
public enum WorkflowAction {
APPROVE, REJECT
}
@Override
/**
*
*/
public String getServiceUrlPropertyName() {
return JKConstants.Microservices.WORKFLOW_URL;
}
@Override
public NewPayloadRequestModel insert(NewPayloadRequestModel model) {
String json = callJsonWithPost("/services/payloads/", model);
return (NewPayloadRequestModel) JKObjectUtil.jsonToObject(json, model.getClass());
}
/**
* @param code
* @return
*/
public SystemModel getSystem(String code) {
return callSingleJson(SystemModel.class, "/services/workflow/" + code);
}
/**
* @param system
* @param code
* @return
*/
public WorkflowEntityModel getWorkflowEntity(String system, String code, String className) {
try {
return callSingleJson(WorkflowEntityModel.class, String.format("/services/workflow/%s/%s/%s", system, code,className));
} catch (JKServiceClientException e) {
if (e.isNotFound() && e.getResponseMessage().contains("Entity with name")) {
return null;
}
throw e;
}
}
/**
* @param system
* @return
*/
public List getPayLoads(String system, String role) {
List list = callJsonAsListOfObjects(PayloadModel.class,
"/services/payloads/" + system + "/" + role);
return list;
}
/**
* @param system
* @return
*/
public List getPayLoads(String system, String entity, String role) {
List list = callJsonAsListOfObjects(PayloadModel.class,
"/services/payloads/" + system + "/" + entity + "/" + role);
return list;
}
/**
*
* @param payloadId
* @return
*/
public String processWorkflow(int payloadId, String userAction) {
return callJsonWithPut(String.format("/services/payloads/%s/%s", payloadId, userAction), null);
}
/**
* @param payloadId
* @return
*/
public String approveWorkflowEntity(Integer payloadId) {
return processWorkflow(payloadId, WorkflowAction.APPROVE.toString());
}
/**
* @param payloadId
* @return
*/
public String rejectWorkflowEntity(Integer payloadId) {
return processWorkflow(payloadId, WorkflowAction.REJECT.toString());
}
/**
* @param args
*/
public static void main(String[] args) {
JKWorkflowServiceClient c = new JKWorkflowServiceClient();
NewPayloadRequestModel p = c.insert(new NewPayloadRequestModel().withEntity("Contacts")
.withAction(UserAction.CREATE.toString()).withBody("{'name': 'Ata'}").withSystem("CMON"));
List payLoads = c.getPayLoads("CMON","");
System.out.println("......");
for (PayloadModel payloadModel : payLoads) {
if (payloadModel.isActive()) {
JK.print(payloadModel);
}
}
String action = c.rejectWorkflowEntity(p.getId());
System.out.println("Next action: " + action);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy