Search in sources :

Example 1 with ViewQueryParamsBuilder

use of me.retrodaredevil.couchdbjava.request.ViewQueryParamsBuilder in project solarthing by wildmountainfarms.

the class CouchDbAlterDatabase method queryAll.

@Override
@NotNull
public List<VersionedPacket<StoredAlterPacket>> queryAll(String sourceId) throws SolarThingDatabaseException {
    final ViewResponse allDocs;
    try {
        allDocs = database.allDocs(new ViewQueryParamsBuilder().includeDocs(true).build());
    } catch (CouchDbException e) {
        throw ExceptionUtil.createFromCouchDbException(e);
    }
    List<ViewResponse.DocumentEntry> rows = allDocs.getRows();
    List<VersionedPacket<StoredAlterPacket>> r = new ArrayList<>(rows.size());
    for (ViewResponse.DocumentEntry row : rows) {
        if (row.getId().startsWith("_")) {
            // ignore design documents
            continue;
        }
        // Since we're using _all_docs with include_docs=true, we have to use the doc, since the value is just the ID for _all_docs
        JsonData jsonData = row.getDoc();
        final JsonNode jsonNode;
        try {
            jsonNode = CouchDbJacksonUtil.getNodeFrom(jsonData);
        } catch (JsonProcessingException e) {
            throw new SolarThingDatabaseException("We couldn't parse some of the data into JSON. This should never happen", e);
        }
        if (!jsonNode.isObject()) {
            throw new SolarThingDatabaseException("Something must be wrong with _all_docs!");
        }
        ObjectNode objectNode = (ObjectNode) jsonNode;
        final StoredAlterPacket storedAlterPacket;
        try {
            storedAlterPacket = mapper.treeToValue(objectNode, StoredAlterPacket.class);
            ;
        } catch (JsonProcessingException e) {
            throw new SolarThingDatabaseException("Could not parse. JsonData: " + jsonData.getJson(), e);
        }
        // String documentId = objectNode.get("_id").asText();
        String documentRevision = objectNode.get("_rev").asText();
        VersionedPacket<StoredAlterPacket> versionedPacket = new VersionedPacket<>(storedAlterPacket, new RevisionUpdateToken(documentRevision));
        r.add(versionedPacket);
    }
    return r;
}
Also used : CouchDbException(me.retrodaredevil.couchdbjava.exception.CouchDbException) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) StoredAlterPacket(me.retrodaredevil.solarthing.type.alter.StoredAlterPacket) VersionedPacket(me.retrodaredevil.solarthing.database.VersionedPacket) ArrayList(java.util.ArrayList) JsonNode(com.fasterxml.jackson.databind.JsonNode) JsonData(me.retrodaredevil.couchdbjava.json.JsonData) StringJsonData(me.retrodaredevil.couchdbjava.json.StringJsonData) NotFoundSolarThingDatabaseException(me.retrodaredevil.solarthing.database.exception.NotFoundSolarThingDatabaseException) UnauthorizedSolarThingDatabaseException(me.retrodaredevil.solarthing.database.exception.UnauthorizedSolarThingDatabaseException) UpdateConflictSolarThingDatabaseException(me.retrodaredevil.solarthing.database.exception.UpdateConflictSolarThingDatabaseException) SolarThingDatabaseException(me.retrodaredevil.solarthing.database.exception.SolarThingDatabaseException) ViewResponse(me.retrodaredevil.couchdbjava.response.ViewResponse) ViewQueryParamsBuilder(me.retrodaredevil.couchdbjava.request.ViewQueryParamsBuilder) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) NotNull(me.retrodaredevil.solarthing.annotations.NotNull)

Example 2 with ViewQueryParamsBuilder

use of me.retrodaredevil.couchdbjava.request.ViewQueryParamsBuilder in project solarthing by wildmountainfarms.

the class CouchDbQueryUtil method createMillisNullParams.

public static ViewQueryParams createMillisNullParams(MillisQuery millisQuery) {
    ViewQueryParamsBuilder builder = new ViewQueryParamsBuilder().includeDocs(true);
    if (millisQuery.getStartKey() != null) {
        builder.startKey(millisQuery.getStartKey());
    }
    if (millisQuery.getEndKey() != null) {
        builder.endKey(millisQuery.getEndKey());
    }
    if (!millisQuery.isInclusiveEnd()) {
        builder.inclusiveEnd(false);
    }
    builder.limit(millisQuery.getLimit());
    if (millisQuery.isDescending()) {
        builder.descending();
    }
    // .update(ViewQueryParamsBuilder.Update.FALSE);
    return builder.build();
}
Also used : ViewQueryParamsBuilder(me.retrodaredevil.couchdbjava.request.ViewQueryParamsBuilder)

Aggregations

ViewQueryParamsBuilder (me.retrodaredevil.couchdbjava.request.ViewQueryParamsBuilder)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 ArrayList (java.util.ArrayList)1 CouchDbException (me.retrodaredevil.couchdbjava.exception.CouchDbException)1 JsonData (me.retrodaredevil.couchdbjava.json.JsonData)1 StringJsonData (me.retrodaredevil.couchdbjava.json.StringJsonData)1 ViewResponse (me.retrodaredevil.couchdbjava.response.ViewResponse)1 NotNull (me.retrodaredevil.solarthing.annotations.NotNull)1 VersionedPacket (me.retrodaredevil.solarthing.database.VersionedPacket)1 NotFoundSolarThingDatabaseException (me.retrodaredevil.solarthing.database.exception.NotFoundSolarThingDatabaseException)1 SolarThingDatabaseException (me.retrodaredevil.solarthing.database.exception.SolarThingDatabaseException)1 UnauthorizedSolarThingDatabaseException (me.retrodaredevil.solarthing.database.exception.UnauthorizedSolarThingDatabaseException)1 UpdateConflictSolarThingDatabaseException (me.retrodaredevil.solarthing.database.exception.UpdateConflictSolarThingDatabaseException)1 StoredAlterPacket (me.retrodaredevil.solarthing.type.alter.StoredAlterPacket)1