UNPKG

addsearch-js-client

Version:

AddSearch API JavaScript client

136 lines 4.93 kB
"use strict"; 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