Skip to content

Commit 77794f0

Browse files
committed
add sanitize placeholder function and reverted queries to use labels
1 parent 16c431a commit 77794f0

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

src/NeptuneSchema.js

+12-24
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ function consoleOut(text) {
5757
loggerLog(text, VERBOSE);
5858
}
5959

60+
function sanitize(text) {
61+
// TODO implement sanitization logic
62+
return text;
63+
}
64+
6065
/**
6166
* Executes a neptune query
6267
* @param query the query to execute
@@ -158,8 +163,7 @@ async function getEdgesNames() {
158163

159164

160165
async function findFromAndToLabels(edgeStructure) {
161-
let query = `MATCH (from)-[r]->(to) WHERE type(r) = $edge RETURN DISTINCT labels(from) as fromLabel, labels(to) as toLabel`;
162-
let parameters = `{"edge": "${edgeStructure.label}"}`;
166+
let query = `MATCH (from)-[r:${sanitize(edgeStructure.label)}]->(to) RETURN DISTINCT labels(from) as fromLabel, labels(to) as toLabel`;
163167
let response = await queryNeptune(query, parameters);
164168
for (let result of response.results) {
165169
for (let fromLabel of result.fromLabel) {
@@ -216,9 +220,8 @@ function addUpdateEdgeProperty(edgeName, name, value) {
216220

217221

218222
async function getEdgeProperties(edge) {
219-
let query = `MATCH ()-[n]->() WHERE type(n) = $label RETURN properties(n) as properties LIMIT $sample`;
220-
let parameters = `{"label": "${edge.label}", "sample": ${SAMPLE}}`;
221-
loggerLog(`Getting properties for edge: ${query}`);
223+
let query = `MATCH ()-[n:${sanitize(edge.label)}]->() RETURN properties(n) as properties LIMIT $sample`;
224+
let parameters = `{"sample": ${SAMPLE}}`;
222225
try {
223226
let response = await queryNeptune(query, parameters);
224227
let result = response.results;
@@ -244,8 +247,8 @@ async function getEdgesProperties() {
244247

245248

246249
async function getNodeProperties(node) {
247-
let query = `MATCH (n) WHERE $label in labels(n) RETURN properties(n) as properties LIMIT $sample`;
248-
let parameters = `{"label": "${node.label}", "sample": ${SAMPLE}}`;
250+
let query = `MATCH (n:${sanitize(node.label)}) RETURN properties(n) as properties LIMIT $sample`;
251+
let parameters = `{"sample": ${SAMPLE}}`;
249252
try {
250253
let response = await queryNeptune(query, parameters);
251254
let result = response.results;
@@ -271,25 +274,10 @@ async function getNodesProperties() {
271274

272275

273276
async function checkEdgeDirectionCardinality(d) {
274-
let parameters = `{"from": "${d.from}", "edge": "${d.edge.label}", "to": "${d.to}"}`;
275-
let queryFrom = `MATCH(from)-[r]->(to)
276-
WHERE $from in labels(from)
277-
AND type(r) = $edge
278-
AND $to in labels(to)
279-
WITH to, count(from) as rels
280-
WHERE rels > 1
281-
RETURN rels LIMIT 1`;
282-
loggerLog(`Checking edge direction cardinality: ${queryFrom}`);
277+
let queryFrom = `MATCH (from:${sanitize(d.from)})-[r:${sanitize(d.edge.label)}]->(to:${sanitize(d.to)}) WITH to, count(from) as rels WHERE rels > 1 RETURN rels LIMIT 1`;
283278
let responseFrom = await queryNeptune(queryFrom, parameters);
284279
let resultFrom = responseFrom.results[0];
285-
let queryTo = `MATCH(from)-[r]->(to)
286-
WHERE $from in labels(from)
287-
AND type(r) = $edge
288-
AND $to in labels(to)
289-
WITH from, count(to) as rels
290-
WHERE rels > 1
291-
RETURN rels LIMIT 1`;
292-
loggerLog(`Checking edge direction cardinality: ${queryTo}`);
280+
let queryTo = `MATCH (from:${sanitize(d.from)})-[r:${sanitize(d.edge.label)}]->(to:${sanitize(d.to)}) WITH from, count(to) as rels WHERE rels > 1 RETURN rels LIMIT 1`;
293281
let responseTo = await queryNeptune(queryTo, parameters);
294282
let resultTo = responseTo.results[0];
295283
let c = '';

0 commit comments

Comments
 (0)