/** * Creates a {@link Builder} for executing a bulk {@code DELETE} request, and wrap the * X-result-count header as a integer response. * * @param apiKey the authorization token for accessing the EVRYTHNG API * @param uri the {@link URI} holding the absolute URL * @param responseStatus the expected {@link HttpResponse} status * @return an EVRYTHNG API-ready {@link Builder} */ public static Builder<Long> deleteMultiple( final String apiKey, final URI uri, final Status responseStatus) { return new CheckedBuilder<Long>( apiKey, HttpMethodBuilder.httpDelete(), uri, responseStatus, new TypeReference<Long>() {}) { @Override public Long execute() throws EvrythngException { // Perform request (response status code will be automatically checked): HttpResponse response = request(); Header header = response.getFirstHeader(ApiConfiguration.HTTP_HEADER_RESULT_COUNT); Long result = null; if (header != null) { try { result = Long.parseLong(header.getValue()); } catch (NumberFormatException ex) { logger.warn( "Invalid numeric value in header {} : {}", ApiConfiguration.HTTP_HEADER_RESULT_COUNT, header.getValue()); } } return result; } }; }
/** * Creates a {@link Builder} for executing a {@code DELETE} request. * * @param apiKey the authorization token for accessing the EVRYTHNG API * @param uri the {@link URI} holding the absolute URL * @param responseStatus the expected {@link HttpResponse} status * @return an EVRYTHNG API-ready {@link Builder} */ public static Builder<Boolean> delete( final String apiKey, final URI uri, final Status responseStatus) { return new CheckedBuilder<Boolean>( apiKey, HttpMethodBuilder.httpDelete(), uri, responseStatus, new TypeReference<Boolean>() {}) { /** * {@code true} if the request has been successfully executed (i.e. returned response status * code equals {@link Status#OK}), {@code false} otherwise */ @Override public Boolean execute() throws EvrythngException { // Perform request (response status code will be automatically checked): return request() != null; } }; }