addsearch-js-client
Version:
AddSearch API JavaScript client
136 lines • 4.93 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.deleteDocumentsBatch = exports.deleteDocument = exports.saveDocumentsBatch = exports.saveDocument = exports.getDocument = void 0;
const axios_1 = __importDefault(require("axios"));
const util_1 = require("./util");
const getHeaders = (sitekey, privatekey) => {
return {
'Authorization': 'Basic ' + (0, util_1.base64)(sitekey + ':' + privatekey),
'Content-Type': 'application/json'
};
};
/**
* Fetch document
*/
const getDocument = (apiHostname, sitekey, privatekey, id) => {
return new Promise((resolve, reject) => {
axios_1.default
.get(`https://${apiHostname}/v2/indices/${sitekey}/documents/${id}`, {
headers: getHeaders(sitekey, privatekey)
})
.then((response) => {
if (response.status === 200) {
resolve(response.data);
}
else {
reject(new Error(JSON.stringify({ status: response.status, text: response.statusText })));
}
})
.catch((error) => {
reject(new Error(JSON.stringify({ status: 400, text: error })));
});
});
};
exports.getDocument = getDocument;
/**
* Add document
*/
const saveDocument = (apiHostname, sitekey, privatekey, document) => {
const isPut = Boolean(document.id || document.url);
return new Promise((resolve, reject) => {
(0, axios_1.default)({
url: `https://${apiHostname}/v2/indices/${sitekey}/documents/`,
method: isPut ? 'put' : 'post',
headers: getHeaders(sitekey, privatekey),
data: document
})
.then((response) => {
if (response.status === 202) {
resolve({ status: response.status, text: response.statusText });
}
else {
reject(new Error(JSON.stringify({ status: response.status, text: response.statusText })));
}
})
.catch((error) => {
reject(new Error(JSON.stringify({ status: 400, text: error })));
});
});
};
exports.saveDocument = saveDocument;
/**
* Batch add documents
*/
const saveDocumentsBatch = (apiHostname, sitekey, privatekey, documents) => {
return new Promise((resolve, reject) => {
(0, axios_1.default)({
method: 'put',
url: `https://${apiHostname}/v2/indices/${sitekey}/documents:batch`,
headers: getHeaders(sitekey, privatekey),
data: documents
})
.then((response) => {
if (response.status === 202) {
resolve({ status: response.status, text: response.statusText });
}
else {
reject(new Error(JSON.stringify({ status: response.status, text: response.statusText })));
}
})
.catch((error) => {
reject(new Error(JSON.stringify({ status: 400, text: error })));
});
});
};
exports.saveDocumentsBatch = saveDocumentsBatch;
/**
* Delete document
*/
const deleteDocument = (apiHostname, sitekey, privatekey, id) => {
return new Promise((resolve, reject) => {
axios_1.default
.delete(`https://${apiHostname}/v2/indices/${sitekey}/documents/${id}`, {
headers: getHeaders(sitekey, privatekey)
})
.then((response) => {
if (response.status === 202) {
resolve({ status: response.status, text: response.statusText });
}
else {
reject(new Error(JSON.stringify({ status: response.status, text: response.statusText })));
}
})
.catch((error) => {
reject(new Error(JSON.stringify({ status: 400, text: error })));
});
});
};
exports.deleteDocument = deleteDocument;
/**
* Batch delete documents
*/
const deleteDocumentsBatch = (apiHostname, sitekey, privatekey, batch) => {
return new Promise((resolve, reject) => {
axios_1.default
.delete(`https://${apiHostname}/v2/indices/${sitekey}/documents:batch`, {
headers: getHeaders(sitekey, privatekey),
data: batch
})
.then((response) => {
if (response.status === 202) {
resolve({ status: response.status, text: response.statusText });
}
else {
reject(new Error(JSON.stringify({ status: response.status, text: response.statusText })));
}
})
.catch((error) => {
reject(new Error(JSON.stringify({ status: 400, text: error })));
});
});
};
exports.deleteDocumentsBatch = deleteDocumentsBatch;
//# sourceMappingURL=indexingapi.js.map
;