public Response buildResponse(final CloseableHttpResponse httpResponse) throws UnsupportedOperationException, IOException { final Response response = new Response(); response.setResponseCode(httpResponse.getStatusLine().getStatusCode()); final HttpEntity entity = httpResponse.getEntity(); if (entity != null && entity.getContent() != null) { if (contentType == Protocol.HTTP_VPACK) { final byte[] content = IOUtils.toByteArray(entity.getContent()); if (content.length > 0) { response.setBody(new VPackSlice(content)); } } else { final String content = IOUtils.toString(entity.getContent()); if (!content.isEmpty()) { response.setBody( util.serialize(content, new Options().stringAsJson(true).serializeNullValues(true))); } } } final Header[] headers = httpResponse.getAllHeaders(); final Map<String, String> meta = response.getMeta(); for (final Header header : headers) { meta.put(header.getName(), header.getValue()); } return response; }
protected <T> Request updateDocumentsRequest(final Collection<T> values, final DocumentUpdateOptions params) { final Request request = request(db.name(), RequestType.PATCH, PATH_API_DOCUMENT, name); final Boolean keepNull = params.getKeepNull(); request.putHeaderParam(ArangoRequestParam.IF_MATCH, params.getIfMatch()); request.putQueryParam(ArangoRequestParam.KEEP_NULL, keepNull); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putQueryParam(MERGE_OBJECTS, params.getMergeObjects()); request.putQueryParam(IGNORE_REVS, params.getIgnoreRevs()); request.putQueryParam(RETURN_NEW, params.getReturnNew()); request.putQueryParam(RETURN_OLD, params.getReturnOld()); request.putQueryParam(SILENT, params.getSilent()); request.setBody(util(Serializer.CUSTOM).serialize(values, new ArangoSerializer.Options() .serializeNullValues(params.getSerializeNull() == null || params.getSerializeNull()) .stringAsJson(true))); return request; }
protected <T> Request updateDocumentRequest(final String key, final T value, final DocumentUpdateOptions options) { final Request request = request(db.name(), RequestType.PATCH, PATH_API_DOCUMENT, DocumentUtil.createDocumentHandle(name, key)); final DocumentUpdateOptions params = (options != null ? options : new DocumentUpdateOptions()); request.putHeaderParam(ArangoRequestParam.IF_MATCH, params.getIfMatch()); request.putQueryParam(ArangoRequestParam.KEEP_NULL, params.getKeepNull()); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putQueryParam(MERGE_OBJECTS, params.getMergeObjects()); request.putQueryParam(IGNORE_REVS, params.getIgnoreRevs()); request.putQueryParam(RETURN_NEW, params.getReturnNew()); request.putQueryParam(RETURN_OLD, params.getReturnOld()); request.putQueryParam(SILENT, params.getSilent()); request.setBody(util(Serializer.CUSTOM).serialize(value, new ArangoSerializer.Options() .serializeNullValues(params.getSerializeNull() == null || params.getSerializeNull()))); return request; }
protected Request importDocumentsRequest(final Collection<?> values, final DocumentImportOptions options) { return importDocumentsRequest(options).putQueryParam("type", ImportType.list).setBody(util(Serializer.CUSTOM) .serialize(values, new ArangoSerializer.Options().serializeNullValues(false).stringAsJson(true))); }
@Override public VPackSlice serialize(final Object entity) throws ArangoDBException { return serialize(entity, new ArangoSerializer.Options()); }
@Override public VPackSlice serialize(final Object entity) throws ArangoDBException { return serialize(entity, new ArangoSerializer.Options()); }
protected Request queryRequest( final String query, final Map<String, Object> bindVars, final AqlQueryOptions options) { final AqlQueryOptions opt = options != null ? options : new AqlQueryOptions(); final Request request = request(name, RequestType.POST, PATH_API_CURSOR).setBody( util().serialize(OptionsBuilder.build(opt, query, bindVars != null ? util().serialize(bindVars, new ArangoSerializer.Options().serializeNullValues(true)) : null))); if (opt.getAllowDirtyRead() == Boolean.TRUE) { RequestUtils.allowDirtyRead(request); } return request; }
protected <T> Request updateEdgeRequest(final String key, final T value, final EdgeUpdateOptions options) { final Request request; request = request(graph.db().name(), RequestType.PATCH, PATH_API_GHARIAL, graph.name(), EDGE, DocumentUtil.createDocumentHandle(name, key)); final EdgeUpdateOptions params = (options != null ? options : new EdgeUpdateOptions()); request.putQueryParam(ArangoRequestParam.KEEP_NULL, params.getKeepNull()); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putHeaderParam(ArangoRequestParam.IF_MATCH, params.getIfMatch()); request.setBody( util(Serializer.CUSTOM).serialize(value, new ArangoSerializer.Options().serializeNullValues(true))); return request; }
protected <T> Request insertDocumentsRequest(final Collection<T> values, final DocumentCreateOptions params) { final Request request = request(db.name(), RequestType.POST, PATH_API_DOCUMENT, name); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putQueryParam(RETURN_NEW, params.getReturnNew()); request.putQueryParam(RETURN_OLD, params.getReturnOld()); request.putQueryParam(SILENT, params.getSilent()); request.putQueryParam(OVERWRITE, params.getOverwrite()); request.setBody(util(Serializer.CUSTOM).serialize(values, new ArangoSerializer.Options().serializeNullValues(false).stringAsJson(true))); return request; }
protected <T> Request updateVertexRequest(final String key, final T value, final VertexUpdateOptions options) { final Request request; request = request(graph.db().name(), RequestType.PATCH, PATH_API_GHARIAL, graph.name(), VERTEX, DocumentUtil.createDocumentHandle(name, key)); final VertexUpdateOptions params = (options != null ? options : new VertexUpdateOptions()); request.putQueryParam(ArangoRequestParam.KEEP_NULL, params.getKeepNull()); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putHeaderParam(ArangoRequestParam.IF_MATCH, params.getIfMatch()); request.setBody( util(Serializer.CUSTOM).serialize(value, new ArangoSerializer.Options().serializeNullValues(true))); return request; }
protected <T> Request replaceDocumentsRequest(final Collection<T> values, final DocumentReplaceOptions params) { final Request request = request(db.name(), RequestType.PUT, PATH_API_DOCUMENT, name); request.putHeaderParam(ArangoRequestParam.IF_MATCH, params.getIfMatch()); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putQueryParam(IGNORE_REVS, params.getIgnoreRevs()); request.putQueryParam(RETURN_NEW, params.getReturnNew()); request.putQueryParam(RETURN_OLD, params.getReturnOld()); request.putQueryParam(SILENT, params.getSilent()); request.setBody(util(Serializer.CUSTOM).serialize(values, new ArangoSerializer.Options().serializeNullValues(false).stringAsJson(true))); return request; }