Due to a ransomware attack, the wiki was reverted to a July 2022 version. . We apologize for the lack of a more recent valid backup.
...
Code Block | ||
---|---|---|
| ||
private static final String SAMPLE_DETAIL_RESP = "sampleDetailsResponse"; private static final String DETAILS = "details"; ... private static final String COMMENT = "comment"; private static final String RESULT = "result"; ... @Override public void process(long sid, ObjectNode payload) { String id = string(payload, ID, "(none)"); // SomeService ss = get(SomeService.class); // Item item = ss.getItemDetails(id) // fake data for demonstration purposes... Item item = getItem(id); ObjectNode rootNode = MAPPER.createObjectNode(); ObjectNode data = MAPPER.createObjectNode(); rootNode.set(DETAILS, data); if (item == null) { rootNode.put(RESULT, "Item with id '" + id + "' not found"); log.warn("attempted to get item detail for id '{}'", id); } else { rootNode.put(RESULT, "Found item with id '" + id + "'"); data.put(ID, item.id()); data.put(LABEL, item.label()); data.put(CODE, item.code()); data.put(COMMENT, "Some arbitrary comment"); } sendMessage(SAMPLE_DETAIL_RESP, 0, rootNode); } |
The sample code extracts an item identifier (id) from the payload, and uses that to look up the corresponding item. With the data in hand, it then constructs a JSON object node equivalent to the following structure:
Code Block | ||
---|---|---|
| ||
{ "details": { "id": "item-1", "label": "foo", "code": 42, "comment": "Some arbitrary comment" }, } "result": "Found item with id 'item-1'" } |
After which, it sends the message on its way by invoking sendMessage(...).