private static String name(final ConnectorAction action) { return trimToNull(action.getName()); } }
protected final Step newSimpleEndpointStep(String scheme, Consumer<ConnectorDescriptor.Builder> consumer) { ConnectorDescriptor.Builder builder = new ConnectorDescriptor.Builder().componentScheme(scheme); consumer.accept(builder); return new Step.Builder() .stepKind(StepKind.endpoint) .action(new ConnectorAction.Builder() .descriptor(builder.build()) .build()) .build(); }
@Override ConnectorDescriptor.Builder createDescriptor(final String specification, final Swagger swagger, final Operation operation) { return new ConnectorDescriptor.Builder(); } };
public ConnectionActionHandlerTest() { createOrUpdateSalesforceObjectDescriptor = new ConnectorDescriptor.Builder() .withActionDefinitionStep("Select Salesforce object", "Select Salesforce object type to create", b -> b.putProperty("sObjectName", new ConfigurationProperty.Builder()// .kind("parameter")// .description("Salesforce object type to create")// .build())) .withActionDefinitionStep("Select Identifier property", "Select Salesforce property that will hold the uniquely identifying value of this object", b -> b.putProperty("sObjectIdName", new ConfigurationProperty.Builder()// .kind("parameter")// .description("Unique field to hold the identifier value")// .build())) .build(); .addAction(new ConnectorAction.Builder() .id(SALESFORCE_CREATE_OR_UPDATE) .addTag("dynamic") .descriptor(createOrUpdateSalesforceObjectDescriptor) .build()) .addAction(new ConnectorAction.Builder() .id(SALESFORCE_LIMITS) .descriptor(new ConnectorDescriptor.Builder().build()) .build()) .build();
private static ConnectorAction newActionBy(final Connector connector) { return new ConnectorAction.Builder()// .descriptor(// new ConnectorDescriptor.Builder()// .connectorId(connector.getId().get())// .build())// .build(); }
@Test public void testConnectorSummary() { ConnectorSummary summary = new ConnectorSummary.Builder().createFrom( new Connector.Builder().addAction( new ConnectorAction.Builder().addTag("1", "2", "3").build(), new ConnectorAction.Builder().addTag("2", "3", "4").build(), new ConnectorAction.Builder().addTag("2").build(), new ConnectorAction.Builder().build() ).build() ).build(); Assertions.assertThat(summary.getActionsSummary().getTotalActions()).isEqualTo(4); Map<String, Integer> actionCountByTags = summary.getActionsSummary().getActionCountByTags(); Assertions.assertThat(actionCountByTags).containsEntry("1", 1); Assertions.assertThat(actionCountByTags).containsEntry("2", 3); Assertions.assertThat(actionCountByTags).containsEntry("3", 2); Assertions.assertThat(actionCountByTags).containsEntry("4", 1); }
@Override ConnectorDescriptor.Builder createDescriptor(final String specification, final Swagger swagger, final Operation operation) { final ConnectorDescriptor.Builder actionDescriptor = new ConnectorDescriptor.Builder(); final DataShape inputDataShape = dataShapeGenerator.createShapeFromRequest(specification, swagger, operation); actionDescriptor.inputDataShape(inputDataShape); final DataShape outputDataShape = dataShapeGenerator.createShapeFromResponse(specification, swagger, operation); actionDescriptor.outputDataShape(outputDataShape); actionDescriptor.putConfiguredProperty("operationId", operation.getOperationId()); return actionDescriptor; }
@Test public void shouldNotContactVerifierForNonDynamicActions() { final ConnectorDescriptor defaultDefinition = new ConnectorDescriptor.Builder().build(); assertThat(handler.enrichWithMetadata(SALESFORCE_LIMITS, null)).isEqualTo(defaultDefinition); }
@Override public boolean canHandle(Step step) { if (!"endpoint".equals(step.getStepKind()) && !"connector".equals(step.getStepKind())) { return false; } if (step.getConnection().isPresent()) { return false; } if (!step.getAction().filter(ConnectorAction.class::isInstance).isPresent()) { return false; } ConnectorAction action = step.getAction().filter(ConnectorAction.class::isInstance).map(ConnectorAction.class::cast).get(); if (action.getDescriptor() == null) { return false; } return action.getDescriptor().getComponentScheme().isPresent(); }
@Override public ConnectorAction get(String id) { ConnectorAction result = Getter.super.get(id); if (result == null) { throw new WebApplicationException(Response.Status.NOT_FOUND); } if (result.getDescriptor().getConnectorId().equals(connectorId)){ return result; } throw new WebApplicationException(Response.Status.NOT_FOUND); }
private static String allTags(final ConnectorAction left) { return trimToNull(left.getTags().stream().collect(Collectors.joining())); }
public final ConnectorAction mandatoryLookupAction(Connector connector, String actionId) { for (ConnectorAction action : connector.getActions()) { if (action.getId().isPresent() && action.getId().get().equals(actionId)) { return action; } } throw new IllegalArgumentException("Unable to find action: " + actionId); }
public ConnectionActionHandlerTest() { createOrUpdateSalesforceObjectDescriptor = new ConnectorDescriptor.Builder() .withActionDefinitionStep("Select Salesforce object", "Select Salesforce object type to create", b -> b.putProperty("sObjectName", new ConfigurationProperty.Builder()// .kind("parameter")// .description("Salesforce object type to create")// .build())) .withActionDefinitionStep("Select Identifier property", "Select Salesforce property that will hold the uniquely identifying value of this object", b -> b.putProperty("sObjectIdName", new ConfigurationProperty.Builder()// .kind("parameter")// .description("Unique field to hold the identifier value")// .build())) .build(); .addAction(new ConnectorAction.Builder() .id(SALESFORCE_CREATE_OR_UPDATE) .addTag("dynamic") .descriptor(createOrUpdateSalesforceObjectDescriptor) .build()) .addAction(new ConnectorAction.Builder() .id(SALESFORCE_LIMITS) .descriptor(new ConnectorDescriptor.Builder().build()) .build()) .build();
private static ConnectorAction newActionBy(final Connector connector) { return new ConnectorAction.Builder()// .descriptor(// new ConnectorDescriptor.Builder()// .connectorId(connector.getId().get())// .build())// .build(); }
@Test public void shouldNotContactVerifierForNonDynamicActions() { final ConnectorDescriptor defaultDefinition = new ConnectorDescriptor.Builder().build(); assertThat(handler.enrichWithMetadata(SALESFORCE_LIMITS, null)).isEqualTo(defaultDefinition); }
@Override public boolean canHandle(Step step) { if (!"endpoint".equals(step.getStepKind()) && !"connector".equals(step.getStepKind())) { return false; } if (!step.getConnection().isPresent()) { return false; } if (!step.getConnection().get().getConnector().isPresent()) { return false; } if (!step.getAction().filter(ConnectorAction.class::isInstance).isPresent()) { return false; } return !Optionals.first( step.getAction().filter(ConnectorAction.class::isInstance).map(ConnectorAction.class::cast).get().getDescriptor().getComponentScheme(), step.getConnection().get().getConnector().get().getComponentScheme() ).isPresent(); }
@Override public ListResult<ConnectorAction> list(UriInfo uriInfo) { return getDataManager().fetchAll( ConnectorAction.class, new PredicateFilter<>(o -> o.getDescriptor().getConnectorId().equals(connectorId)), new ReflectiveSorter<>(ConnectorAction.class, new SortOptionsFromQueryParams(uriInfo)), new PaginationFilter<>(new PaginationOptionsFromQueryParams(uriInfo)) ); } }
private static String allTags(final ConnectorAction left) { return trimToNull(left.getTags().stream().collect(Collectors.joining())); }
private static String name(final ConnectorAction action) { return trimToNull(action.getName()); } }
@Override public boolean canHandle(Step step) { if (!"endpoint".equals(step.getStepKind()) && !"connector".equals(step.getStepKind())) { return false; } if (!step.getConnection().isPresent()) { return false; } if (!step.getConnection().get().getConnector().isPresent()) { return false; } if (!step.getAction().filter(ConnectorAction.class::isInstance).isPresent()) { return false; } return Optionals.first( step.getAction().filter(ConnectorAction.class::isInstance).map(ConnectorAction.class::cast).get().getDescriptor().getComponentScheme(), step.getConnection().get().getConnector().get().getComponentScheme() ).isPresent(); }