| Current Path : /home/deltalab/PMS/ims-connector/rest/queries/ |
| Current File : //home/deltalab/PMS/ims-connector/rest/queries/attribute-set.js |
/* eslint-disable no-restricted-syntax */
require('dotenv').config();
const axios = require('axios');
const auth = require('./auth');
const restUrl = process.env.MAGENTO_REST_HOST;
/**
* Return a list of products given a partner ID
* @param {string} partnerIdS
* @returns products
*/
async function readAllAttributeSets(storeName = 'all') {
const method = 'get';
const url = `${restUrl}/${storeName}/V1/products/attribute-sets/sets/list`;
const criteria = {
searchCriteria: 0,
};
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;
}
async function readAttributeSetById(storeName = 'all', id) {
const method = 'get';
const url = `${restUrl}/${storeName}/V1/products/attribute-sets/${id}/attributes`;
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 readAttributeSetByName(storeName = 'all', name) {
const method = 'get';
const url = `${restUrl}/${storeName}/V1/products/attribute-sets/sets/list`;
const criteria = {
'searchCriteria[filterGroups][0][filters][0][conditionType]': 'eq',
'searchCriteria[filterGroups][0][filters][0][field]': 'attribute_set_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 = {
readAllAttributeSets,
readAttributeSetById,
readAttributeSetByName,
};