public LocalDocument getDocument(LocalQuery query, boolean recurring) throws IOException { HttpResponse response; if (recurring) { response = core.post(getRecurringUrl, query.toJson()); } else { response = core.post(getUrl, query.toJson()); } if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { LocalDocument ld; try { ld = new LocalDocument(EntityUtils.toString(response.getEntity())); } catch (JsonException e) { throw new IOException(e); } InternalLogger.debug("Received document with ID " + ld.getID()); currentDocument = ld; return ld; } else if (response.getStatusLine().getStatusCode() == HttpStatus.SC_NOT_FOUND) { InternalLogger.debug("No document found matching query"); EntityUtils.consume(response.getEntity()); return null; } else { logUnexpected(response); return null; } }
private boolean save(LocalDocument d, boolean partialUpdate) throws IOException, JsonException { boolean hasId = d.getID() != null; String s; if (partialUpdate) { s = d.modifiedFieldsToJson(); } else { s = d.toJson(); } HttpResponse response = core.post(getWriteUrl(partialUpdate), s); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { if (!hasId) { LocalDocument updated = new LocalDocument(EntityUtils.toString(response.getEntity())); d.putAll(updated); } else { EntityUtils.consume(response.getEntity()); } return true; } logUnexpected(response); return false; }