http.onRequest("ontologies/<ontology>/documents/", "GET", function (req, res) { console.say("elycite API - Document GET ALL (summaries)"); var params = restf.requireParams(req, res, "ontology"); if(params === null) { return; } var store = stores.requireExists(res, params.ontology); if(store === null) { return; } documents.getDocuments(req, res, store); });
function (req, res) { console.say("elycite API - Document <did> GET"); var params = restf.requireParams(req, res, "ontology", "did"); if(params === null) { return; } var store = stores.requireExists(res, params.ontology); if(store === null) { return; } var docId = restf.requireInt(res, "did", params.did); if(docId === null) { return; } documents.getDocument(res, store, params.ontology, docId); });
function (req, res) { console.say("elycite API - Concept/Query"); var params = restf.requireParams(req, res, "ontology", "cid"); if(params === null) { return; } var store = stores.requireExists(res, params.ontology); if(store === null) { return; } var conceptId = restf.requireInt(res, "conceptId", params.cid); if(conceptId === null) { return; } var concept = stores.requireRecord(res, store, "concept", conceptId); if(concept === null) { return; } concept = restf.requireNotDeleted(res, concept, "concept"); if(concept === null) { return; } var args = restf.requireArgs(req, res, "docIds"); if(args === null) { return; } //concepts.getConceptDocsFromSearch(res, concept, store, args.docIds, params); documents.getSpecificDocuments(res, store, params.ontology, args.docIds) });
exports.getConceptDocuments = function(req, res, concept, store) { // doc ids for concept var rSet = concept.docs; // concept documents var result; var docs; var ii = 0; var queryStr; var args = req.args || {}; if(args.hasOwnProperty("query")) { queryStr = args.query[0]; result = documents.query(rSet, queryStr, store); } else { // No Query result = rSet; } // Nothing - send empty array if(result.length === 0) { res.send([]); return; } var fullDocs = false; // reply with the full document object if(args.hasOwnProperty("full")) { fullDocs = Boolean(args.full[0]); } if(fullDocs) { var pargs = restf.paginationArguments(req); docs = restf.paginatedDocuments(result, store.name, pargs.page, pargs.per_page, pargs.summarize); } else { docs = []; for(ii = 0; ii < result.length; ii++) { docs.push(result[ii].$id); } } res.send(docs); };