overleaf/services/docstore/test/acceptance/coffee/helpers/DocstoreClient.js

84 lines
2.8 KiB
JavaScript

/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
let DocstoreClient;
const request = require("request").defaults({jar: false});
const {db, ObjectId} = require("../../../../app/js/mongojs");
const settings = require("settings-sharelatex");
const DocArchiveManager = require("../../../../app/js/DocArchiveManager.js");
module.exports = (DocstoreClient = {
createDoc(project_id, doc_id, lines, version, ranges, callback) {
if (callback == null) { callback = function(error) {}; }
return DocstoreClient.updateDoc(project_id, doc_id, lines, version, ranges, callback);
},
getDoc(project_id, doc_id, qs, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
return request.get({
url: `http://localhost:${settings.internal.docstore.port}/project/${project_id}/doc/${doc_id}`,
json: true,
qs
}, callback);
},
getAllDocs(project_id, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
return request.get({
url: `http://localhost:${settings.internal.docstore.port}/project/${project_id}/doc`,
json: true
}, callback);
},
getAllRanges(project_id, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
return request.get({
url: `http://localhost:${settings.internal.docstore.port}/project/${project_id}/ranges`,
json: true
}, callback);
},
updateDoc(project_id, doc_id, lines, version, ranges, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
return request.post({
url: `http://localhost:${settings.internal.docstore.port}/project/${project_id}/doc/${doc_id}`,
json: {
lines,
version,
ranges
}
}, callback);
},
deleteDoc(project_id, doc_id, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
return request.del({
url: `http://localhost:${settings.internal.docstore.port}/project/${project_id}/doc/${doc_id}`
}, callback);
},
archiveAllDoc(project_id, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
return request.post({
url: `http://localhost:${settings.internal.docstore.port}/project/${project_id}/archive`
}, callback);
},
destroyAllDoc(project_id, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
return request.post({
url: `http://localhost:${settings.internal.docstore.port}/project/${project_id}/destroy`
}, callback);
},
getS3Doc(project_id, doc_id, callback) {
if (callback == null) { callback = function(error, res, body) {}; }
const options = DocArchiveManager.buildS3Options(project_id+"/"+doc_id);
options.json = true;
return request.get(options, callback);
}
});