MCPcopy Index your code
hub / github.com/scality/cloudserver / validateSearchParams

Function validateSearchParams

lib/api/apiUtils/bucket/validateSearch.js:65–94  ·  view source on GitHub ↗

* validateSearchParams - validate value of ?search= in request * @param {string} searchParams - value of search params in request * which should be jsu sql where clause * For metadata: x-amz-meta-color=\"blue\" * For tags: tags.x-amz-meta-color=\"blue\" * For replication status : replication-

(searchParams)

Source from the content-addressed store, hash-verified

63 * @return {undefined | error} undefined if validates or arsenal error if not
64 */
65function validateSearchParams(searchParams) {
66 let ast;
67 try {
68 // allow using 'replicationStatus' as search param to increase
69 // ease of use, pending metadata search rework
70 // eslint-disable-next-line no-param-reassign
71 searchParams = searchParams.replace(
72 'replication-status', 'replicationInfo.status');
73 ast = parser.parse(searchParams);
74 } catch (e) {
75 if (e) {
76 return {
77 error: errorInstances.InvalidArgument
78 .customizeDescription('Invalid sql where clause ' +
79 'sent as search query'),
80 };
81 }
82 }
83 const possibleAttributes = objModel.getAttributes();
84 const invalidAttribute = _validateTree(ast, possibleAttributes);
85 if (invalidAttribute) {
86 return {
87 error: errorInstances.InvalidArgument
88 .customizeDescription('Search param ' +
89 `contains unknown attribute: ${invalidAttribute}`) };
90 }
91 return {
92 ast,
93 };
94}
95
96module.exports = validateSearchParams;

Callers 1

metadataSearchFunction · 0.85

Calls 1

_validateTreeFunction · 0.85

Tested by

no test coverage detected