| Current Path : /proc/thread-self/root/home/deltalab/PMS/ims-connector/rest/queries/ |
| Current File : //proc/thread-self/root/home/deltalab/PMS/ims-connector/rest/queries/category.js |
const axios = require('axios');
const { dotenv } = require('dotenv').config();
const auth = require('./auth');
const restUrl = process.env.MAGENTO_REST_HOST;
/**
* Return a list of products given a partner ID
* @param {string} partnerId
* @returns products
*/
async function readAllCategories(storeName = 'all') {
const method = 'get';
const url = `${restUrl}/${storeName}/V1/categories`;
const token = await auth.getOAuthToken(method, url);
// const token = await auth.getBearerToken(storeName);
const config = {
method,
url,
headers: {
Authorization: `OAuth ${token}`,
},
};
const result = await axios(config);
return result.data;
}
async function readCategoryById(storeName = 'all', id) {
const method = 'get';
const url = `${restUrl}/${storeName}/V1/categories/${id}`;
const token = await auth.getOAuthToken(method, url);
// const token = await auth.getBearerToken(storeName);
const config = {
method,
url,
headers: {
Authorization: `OAuth ${token}`,
},
};
const result = await axios(config);
return result.data;
}
async function readCategoryByName(storeName = 'all', name) {
const method = 'get';
const url = `${restUrl}/${storeName}/V1/categories/list`;
const criteria = {
'searchCriteria[filterGroups][0][filters][0][conditionType]': 'eq',
'searchCriteria[filterGroups][0][filters][0][field]': 'name',
'searchCriteria[filterGroups][0][filters][0][value]': name,
};
const strCriteria = [];
for (const key in criteria) {
if (Object.prototype.hasOwnProperty.call(criteria, key)) {
strCriteria.push(`${key}=${criteria[key]}`);
}
}
const token = await auth.getOAuthToken(method, url, criteria);
// const token = await auth.getBearerToken(storeName);
const config = {
method,
url: `${url}?${strCriteria.join('&')}`,
headers: {
Authorization: `OAuth ${token}`,
},
};
const result = await axios(config);
return result.data;
}
module.exports = {
readAllCategories,
readCategoryById,
readCategoryByName,
};