-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparse_response.js
More file actions
33 lines (30 loc) · 1005 Bytes
/
parse_response.js
File metadata and controls
33 lines (30 loc) · 1005 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function buildObject(key_values) {
let result = {}
for (let i in key_values) {
result[key_values[i][0]] = key_values[i][1];
}
return result
}
function RSM_ParseResponse(property_names, response) {
return Array.from(response.getElementsByTagName("row")).map(function (row) {
const properties = Array.from(row.getElementsByTagName("column")).map(function (column) {
let value = "";
if (0 in column.childNodes) {
value = column.childNodes[0].data;
}
if (column.getAttribute("name") === "ID") {
return ["ID", value]
} else {
if (column.getAttribute("name") in property_names) {
return [property_names[column.getAttribute("name")], value]
} else if (Object.keys(property_names).length === 0) {
return [column.getAttribute("name"), value]
} else {
return null
}
}
}).filter(x => x !== null);
return buildObject(properties);
});
}
module.exports = RSM_ParseResponse;