public void store(String jsonRaw)
throws IOException {
if (jsonEventDeserializer == null) {
throw new RakamException("Event store is not supported.", BAD_REQUEST);
}
JsonParser jp = JsonHelper.getMapper().getFactory().createParser(jsonRaw);
JsonToken t = jp.nextToken();
if (t != JsonToken.START_ARRAY) {
throw new RakamException("The script didn't return an array", BAD_REQUEST);
}
t = jp.nextToken();
List<Event> list = new ArrayList<>();
for (; t == START_OBJECT; t = jp.nextToken()) {
list.add(jsonEventDeserializer.deserializeWithProject(jp, project, Event.EventContext.empty(), true));
}
EventCollectionHttpService.mapEvent(eventMapperSet,
eventMapper -> eventMapper.mapAsync(new EventList(Event.EventContext.empty(), list),
EMPTY_PARAMS, localhost, HttpHeaders.EMPTY_HEADERS));
int[] ints = eventStore.storeBatch(list);
if (ints.length > 0) {
logger.error(format("Failed to save events: %s", Arrays.stream(ints).boxed().map(i -> i + "").collect(Collectors.joining(", "))));
}
}
}