use of com.google.cloud.dialogflow.cx.v3beta1.EventHandler in project java-dialogflow-cx by googleapis.
the class CreateFlow method createFlow.
// Create a flow in the specified agent.
public static Flow createFlow(String displayName, String projectId, String locationId, String agentId, Map<String, String> eventsToFulfillmentMessages) throws IOException, ApiException {
FlowsSettings.Builder flowsSettingsBuilder = FlowsSettings.newBuilder();
if (locationId.equals("global")) {
flowsSettingsBuilder.setEndpoint("dialogflow.googleapis.com:443");
} else {
flowsSettingsBuilder.setEndpoint(locationId + "-dialogflow.googleapis.com:443");
}
FlowsSettings flowsSettings = flowsSettingsBuilder.build();
// Instantiates a client
try (FlowsClient flowsClient = FlowsClient.create(flowsSettings)) {
// Set the project agent name using the projectID (my-project-id), locationID (global), and
// agentID (UUID).
AgentName parent = AgentName.of(projectId, locationId, agentId);
// Build the EventHandlers for the flow using the mapping from events to fulfillment messages.
List<EventHandler> eventHandlers = new ArrayList<>();
for (Map.Entry<String, String> item : eventsToFulfillmentMessages.entrySet()) {
eventHandlers.add(EventHandler.newBuilder().setEvent(// Event (sys.no-match-default)
item.getKey()).setTriggerFulfillment(Fulfillment.newBuilder().addMessages(ResponseMessage.newBuilder().setText(Text.newBuilder().addText(item.getValue()).build()).build()).build()).build());
}
// Build the flow.
Flow flow = Flow.newBuilder().setDisplayName(displayName).addAllEventHandlers(eventHandlers).build();
// Performs the create flow request.
Flow response = flowsClient.createFlow(parent, flow);
// TODO : Uncomment if you want to print response
// System.out.format("Flow created: %s\n", response.toString());
flowsClient.shutdown();
return response;
}
}
Aggregations