Search in sources :

Example 1 with Diagnostic

use of org.folio.rest.jaxrs.model.Diagnostic in project raml-module-builder by folio-org.

the class PgUtil method streamGetResult.

private static <T> void streamGetResult(PostgresClientStreamResult<T> result, String element, HttpServerResponse response) {
    response.setStatusCode(200);
    response.setChunked(true);
    response.putHeader(HttpHeaders.CONTENT_TYPE, "application/json");
    response.write("{\n");
    response.write(String.format("  \"%s\": [%n", element));
    AtomicBoolean first = new AtomicBoolean(true);
    result.exceptionHandler(res -> {
        String message = res.getMessage();
        List<Diagnostic> diag = new ArrayList<>();
        diag.add(new Diagnostic().withCode("500").withMessage(message));
        result.resultInfo().setDiagnostics(diag);
        streamTrailer(response, result.resultInfo());
    });
    result.endHandler(res -> streamTrailer(response, result.resultInfo()));
    result.handler(res -> {
        String itemString = null;
        try {
            itemString = OBJECT_MAPPER.writeValueAsString(res);
        } catch (JsonProcessingException ex) {
            logger.error(ex.getMessage(), ex);
            throw new IllegalArgumentException(ex.getCause());
        }
        if (first.get()) {
            first.set(false);
        } else {
            response.write(String.format(",%n"));
        }
        response.write(itemString);
    });
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ArrayList(java.util.ArrayList) Diagnostic(org.folio.rest.jaxrs.model.Diagnostic) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException)

Aggregations

JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 ArrayList (java.util.ArrayList)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 Diagnostic (org.folio.rest.jaxrs.model.Diagnostic)1