Пример #1
0
  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;
    }
  }
Пример #2
0
  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;
  }