public void updateTrigger()

in src/main/java/org/apache/openwhisk/intellij/explorer/dialog/trigger/ui/TriggerManagerDialogForm.java [152:201]


    public void updateTrigger() {
        try {
            /**
             * Update default parameters
             */
            Optional<String> params = ParameterUtils.validateParams(defaultParameterJTextArea.getText());
            if (!params.isPresent()) {
                NOTIFIER.notify(project, "The json format of the parameter is incorrect.", NotificationType.ERROR);
                return;
            }
            // parameters
            List<Map<String, Object>> validParams = ParameterUtils.mapToListMap(JsonParserUtils.parseMap(params.get()));
            // payload
            Map<String, Object> payload = new LinkedHashMap<>();
            payload.put("name", cachedTrigger.getName());
            payload.put("parameters", validParams);
            whiskTriggerService.updateWhiskTrigger(auth, cachedTrigger.getName(), payload);

            /**
             * Update rules
             */
            for (LinkedActionsForm linkedActionsForm : cachedRules.values()) {
                String ruleName = linkedActionsForm.getRule();
                String actionName = linkedActionsForm.getAction();
                // payload
                Map<String, Object> rulePayload = new LinkedHashMap<>();
                rulePayload.put("name", ruleName);
                rulePayload.put("trigger", "/_/" + cachedTrigger.getName());
                rulePayload.put("action", "/_/" + actionName);
                rulePayload.put("status", "");
                whiskRuleService.updateWhiskRule(auth, ruleName, rulePayload).ifPresent(rule ->
                        LOG.info("Updated rule: " + rule.getName()));
            }

            /**
             * Remove rules
             */
            for (LinkedActionsForm linkedActionsForm : removedRules.values()) {
                whiskRuleService.deleteWhiskRule(auth, linkedActionsForm.getRule()).ifPresent(rule ->
                        LOG.info("Deleted rule: " + rule.getName()));
            }

            NOTIFIER.notify(project, cachedTrigger.getName() + " updated", NotificationType.INFORMATION);
            EventUtils.publish(project, RefreshActionOrTriggerListener.TOPIC, RefreshActionOrTriggerListener::fetchActionMetadata);
        } catch (IOException e) {
            String msg = "Failed to update trigger: " + cachedTrigger.getName();
            LOG.error(msg, e);
            NOTIFIER.notify(project, msg, NotificationType.ERROR);
        }
    }