Search in sources :

Example 1 with ActiveWebHooks

use of org.finos.symphony.webhookbot.domain.ActiveWebHooks in project spring-bot by finos.

the class ReceiveController method receiveWebhook.

@PostMapping(path = "/hook/{streamId}/{hookId}")
public ResponseEntity<Void> receiveWebhook(@PathVariable(name = "streamId") String streamId, @PathVariable(name = "hookId") String hookId, @RequestBody JsonNode body) throws JsonProcessingException {
    Room r = rooms.loadRoomById(streamId);
    ActiveWebHooks ho = history.getLastFromHistory(ActiveWebHooks.class, r).orElse(new ActiveWebHooks());
    WebHook hook = getHook(ho, hookId);
    if ((hook != null) && (hook.isActive())) {
        // ok, we've found the webhook for this call.
        Template template = hook.getTemplate();
        if (template == null) {
            template = createDefaultTemplate(body, hook.getDisplayName());
            hook.setTemplate(template);
        }
        EntityJson out = createEntityJson(body, ho, hook);
        MessageResponse mr = new MessageResponse(wf, r, out, "", "", template.getContents());
        handler.accept(mr);
        return new ResponseEntity<Void>(HttpStatus.OK);
    }
    throw new ResponseStatusException(HttpStatus.NOT_FOUND);
}
Also used : ActiveWebHooks(org.finos.symphony.webhookbot.domain.ActiveWebHooks) ResponseEntity(org.springframework.http.ResponseEntity) EntityJson(org.finos.symphony.toolkit.json.EntityJson) MessageResponse(org.finos.symphony.toolkit.workflow.response.MessageResponse) WebHook(org.finos.symphony.webhookbot.domain.WebHook) Room(org.finos.symphony.toolkit.workflow.content.Room) ResponseStatusException(org.springframework.web.server.ResponseStatusException) Template(org.finos.symphony.webhookbot.domain.Template) PostMapping(org.springframework.web.bind.annotation.PostMapping)

Example 2 with ActiveWebHooks

use of org.finos.symphony.webhookbot.domain.ActiveWebHooks in project spring-bot by finos.

the class UpdateTemplateConsumer method apply.

@Override
public List<Response> apply(ElementsAction t) {
    if (t.getAction().equals(WebHookOps.TEMPLATE_UPDATE)) {
        try {
            Template template = (Template) t.getFormData();
            EntityJson workflow = t.getData();
            ActiveWebHooks awh = (ActiveWebHooks) workflow.get(EntityJsonConverter.WORKFLOW_001);
            WebHook active = (WebHook) workflow.get(ReceiveController.INVOKED_WEBHOOK);
            WebHook wh = ReceiveController.getHook(awh, active.getHookId().getId());
            wh.setTemplate(template);
            WebhookPayload payload = (WebhookPayload) workflow.get(ReceiveController.PAYLOAD);
            EntityJson out = ReceiveController.createEntityJson(payload.getContents(), awh, wh);
            MessageResponse mr = new MessageResponse(t.getWorkflow(), t.getAddressable(), out, "", "", template.getContents());
            return Collections.singletonList(mr);
        } catch (JsonProcessingException e) {
            return Collections.singletonList(new ErrorResponse(t.getWorkflow(), t.getAddressable(), e.getMessage()));
        }
    } else {
        return Collections.emptyList();
    }
}
Also used : ActiveWebHooks(org.finos.symphony.webhookbot.domain.ActiveWebHooks) EntityJson(org.finos.symphony.toolkit.json.EntityJson) WebhookPayload(org.finos.symphony.webhookbot.domain.WebhookPayload) MessageResponse(org.finos.symphony.toolkit.workflow.response.MessageResponse) WebHook(org.finos.symphony.webhookbot.domain.WebHook) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) Template(org.finos.symphony.webhookbot.domain.Template) ErrorResponse(org.finos.symphony.toolkit.workflow.response.ErrorResponse)

Aggregations

EntityJson (org.finos.symphony.toolkit.json.EntityJson)2 MessageResponse (org.finos.symphony.toolkit.workflow.response.MessageResponse)2 ActiveWebHooks (org.finos.symphony.webhookbot.domain.ActiveWebHooks)2 Template (org.finos.symphony.webhookbot.domain.Template)2 WebHook (org.finos.symphony.webhookbot.domain.WebHook)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 Room (org.finos.symphony.toolkit.workflow.content.Room)1 ErrorResponse (org.finos.symphony.toolkit.workflow.response.ErrorResponse)1 WebhookPayload (org.finos.symphony.webhookbot.domain.WebhookPayload)1 ResponseEntity (org.springframework.http.ResponseEntity)1 PostMapping (org.springframework.web.bind.annotation.PostMapping)1 ResponseStatusException (org.springframework.web.server.ResponseStatusException)1