Test plugin + custom condition types
unknown
javascript
4 years ago
2.6 kB
11
Indexable
const SearchCriteria = require('magento-searchcriteria-builder');
/**
*
* API url:
/V1/store-locator/employees
*
*
searchCriteria[filterGroups][0][filters][0][field] = location_ids
searchCriteria[filterGroups][0][filters][0][value] = null
searchCriteria[filterGroups][0][filters][0][conditionType] = neq
*
*
* API response interface:
* {
"items": [
{
"entity_id": 0,
"created_at": "string",
"first_name": "string",
"last_name": "string",
"position_id": "string",
"email": "string",
"phone": "string",
"brand_ids": "string",
"location_ids": "string",
"image": "string",
"sort_order": 0,
"extension_attributes": {}
}
]
}
* Magento condition types
*
"eq" => equalValue
"neq" => notEqualValue
"like" => likeValue
"nlike" => notLikeValue
"is" => isValue
"in" => inValues
"nin" => notInValues
"notnull" => valueIsNotNull
"null" => valueIsNull
"moreq" => moreOrEqualValue
"gt" => greaterValue
"lt" => lessValue
"gteq" => greaterOrEqualValue
"lteq" => lessOrEqualValue
"finset" => valueInSet
"from" => fromValue, "to" => toValue
*
*
*/
module.exports = ({ config, db, router, cache, apiStatus, apiError, getRestApiClient }) => {
const url = '/store-locator/employees';
const createRestClient = () => {
const client = getRestApiClient();
client.addMethods('storeLocator', (restClient) => {
const module = {};
module.getAllEmployees = (lastName) => {
const searchCriteria = new SearchCriteria();
searchCriteria.applyFilter('created_at', '2021-06-16', 'from');
searchCriteria.applyFilter('created_at', '2021-06-18', 'to');
// if (lastName) searchCriteria.applyFilter('last_name', lastName, 'eq');
searchCriteria.applySort('last_name', 'ASC');
searchCriteria.setPageSize(4);
const stringifiedQuery = searchCriteria.build();
console.log('Stringified query: ', stringifiedQuery);
return restClient.get(url + '?' + stringifiedQuery);
};
return module;
});
return client;
};
router.get('', async (req, res) => {
const { last_name } = req.query;
const client = createRestClient();
client.storeLocator.getAllEmployees(last_name)
.then(response => {
apiStatus(res, response, 200);
})
.catch(err => {
console.error('Magento error: ', err);
apiError(res, err);
});
});
return {
domainName: '@grupakmk',
pluginName: 'test-plugin',
route: '/test',
router
};
};
Editor is loading...